XL 2013 somme a partir d'une sélection

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

RomainPOIRET

XLDnaute Occasionnel
Bonjour à tous,

Sur mon tableau de droite j'ai plusieurs références (lait, noisette ...) et sur la colonne de gauche la quantité PAR BARQUETTE,
La BARQUETTE est la zone de droite, je cherche à automatiser la somme de cette zone dans mon tableau en fonction des références (ex : 10 LAIT = 10 référence de LAIT),

1673444305715.png


Dans mon tableau je dois avoir la quantité de LAIT présent dans la zone,

Voici le fichier joint,

Cordialement,

Romain
 

Pièces jointes

Solution
Bonjour,
Fonction à mettre dans un module :
Nota, la fonction Find n'a pas été utilisée car ne donne pas le résultat escompté sur des cellules mergées.
VB:
Function Get_Pack(ToFind As String, Plage As Range)
Dim Cell As Range
Dim Dic: Set Dic = CreateObject("Scripting.Dictionary")
    For Each Cell In Plage.Cells
        If InStr(Cell, vbLf) Then
            V = Split(Cell, vbLf)
            If Dic.Exists(V(1)) _
             Then Dic(V(1)) = Dic(V(1)) + Val(V(0)) _
             Else Dic.Add V(1), Val(V(0))
        End If
    Next
    If Dic.Exists(ToFind) Then Get_Pack = Dic(ToFind) Else Get_Pack = ""
End Function
Formule à mettre dans le tableau de droite (DF6) et à tirer vers le bas :
Code:
=Get_Pack($DE6;$D$5:$DB$19)
Bonjour,
Fonction à mettre dans un module :
Nota, la fonction Find n'a pas été utilisée car ne donne pas le résultat escompté sur des cellules mergées.
VB:
Function Get_Pack(ToFind As String, Plage As Range)
Dim Cell As Range
Dim Dic: Set Dic = CreateObject("Scripting.Dictionary")
    For Each Cell In Plage.Cells
        If InStr(Cell, vbLf) Then
            V = Split(Cell, vbLf)
            If Dic.Exists(V(1)) _
             Then Dic(V(1)) = Dic(V(1)) + Val(V(0)) _
             Else Dic.Add V(1), Val(V(0))
        End If
    Next
    If Dic.Exists(ToFind) Then Get_Pack = Dic(ToFind) Else Get_Pack = ""
End Function
Formule à mettre dans le tableau de droite (DF6) et à tirer vers le bas :
Code:
=Get_Pack($DE6;$D$5:$DB$19)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
16
Affichages
532
Réponses
20
Affichages
680
Retour