Je souhaiterai faire une somme de valeurs qui correspondent chacune à un lot listé dans la colonne suivante. Il s’agit d’une forme de sous-total, mais j’aimerai que toutes les valeurs uniques de cette deuxième colonnes soient listées dans une autre colonne et que la somme des données soient dans la même cellule (concaténée).
De plus il faut que la somme ne se fasse qu’a condition qu’il n’y ai pas de date dans la dernière colonne.
J’ai mis un fichier en exemple
Ca commence à être trop complexe pour moi.
n’hésitez pas s’il manque d’infos
Mais je recherche une formule qui pourrait me donner le résultat dans les cellules jaunes car celà fait déjà partie d’un fichier et je souhaiterais que le calcul se fasse automatiquement sans manipulation de ma part.
Une fois les résultats affichés, il seront sélectionnés une fois semaines pour etre envoyés par mail via VBA
Si d’autres propositions ou au moins proches de ce que je recherche je suis preneur.
j’avais tenté aussi la même formule, mais pour le paramètre vide, j’avais mis un "=" "" de trop, du coup ça ne fonctionnait pas, comme quoi une simple petite erreur dans un argument fait capoté le tout…
Est-ce possible, c’est toujours mieux sans colonne cachée, mais dans ce cas tous les lots sont listés meme ceux à 0. est-ce possible sans de n’afficher que ceux pour lesquels la date n’est pas encore rentrée?
Le tableau permet une gestion de stock sous excel mais une fois semaine j’envoie un récap pour la déduction dans SAP. La date est celle à laquelle j’ai transmis les infos pour la déduction Je ne veux pas voir apparaitre tous les lots déjà encodés au moins une fois même si je comprends bien que si la date est remplie la valeur est 0 mais au fil du temps on va avoir une liste importante pour des lots qui n’existent plus et dont la valeur sera 0.
Avec la colonne cachée et la formule si on n’affiche les lots que si la date n’est pas remplie et donc il n’affiche dans le résumé que les lots présents là ou la date n’a pas été encodée.
Il y a peut etre moyen avec votre formule de ne faire apparaitre que les lots avec une valeur et pour laquelle la date n’a pas été encodée. Sinon il faudra reste sur l’idée de la colonne masquée.
Merci pour votre recherche
Xavier
si on utilise déjà VBA pour l’envoyer vers SAP, pourquoi tout en VBA ?
Sub Lots()
Dim Dict, aA, i, n
Set Dict = CreateObject("scripting.dictionary")
Dict.comparemode = vbTextCompare
With Sheets("feuil1")
aA = .Range("A1").CurrentRegion.Resize(, 3).Value2
For i = 1 To UBound(aA)
If Len(aA(i, 2)) > 0 And aA(i, 1) <> 0 And Len(aA(i, 3)) = 0 Then Dict(aA(i, 2)) = Dict(aA(i, 2)) + aA(i, 1) 'un code, Qte<>0, date = ""
Next
n = Dict.Count 'nombre de codes
With .Range("I2").Resize(n)
.Resize(100, 2).ClearContents 'vider cette plage
If n = 1 Then Dict.Add [Rnd], 0 'ajouter un "dummy s'il n'y a qu'un key
If n > 0 Then
For i = 1 To n
'Debug.Print dict.items()(i - 1), " de ", dict.keys()(i - 1)
Dict(Dict.keys()(i - 1)) = Dict.items()(i - 1) & " de " & Dict.keys()(i - 1) 'combiner key et item
Next
.Offset(, 1).Value = Application.Transpose(Dict.items) 'coller les items
End If
End With
End With
End Sub
Super boulot merci, mes connaissances en VBA ne sont pas aussi poussées. Juste pour l’explication ces fichiers comme d’autres sont pour le boulot et meme si j’ai confiance en ce que je fais, je veux que l’encodage reste accessible a tous en cas de problème avec mon codage ou tout ajout dans le fichier. L’envoi via VBA ne sera qu’un plus mais pourra etre fait via une sélection dans la fauille. Mais merci encore pour ton aide