Occurrences valeurs identiques et calculs

Bonjour,

Je me permets de vous solliciter à nouveau concernant un problème de calcul d'occurrences de valeurs identiques.

J'aimerais que la manipulation suivante puisse être effectuée de manière automatique en VBA à l'aide d'une macro.

J'ai une situation initiale comme suie (qui est générée par une macro)

capture d ecran 2021 04 05 a 12 39 14

J'aimerais maintenant aboutir à la situation suivante :

capture d ecran 2021 04 05 a 12 40 28

Autrement dit que ma macro vienne compter le nombre de fois où un code identique apparaît (dans mon exemple 24) et que cette dernière vienne ajouter les valeurs de la colonne nombre de chaque ligne et le synthétise sur une ligne.

J'ai une macro qui vient me compter le nombre d'occurence, mais je ne sais pas comment la modifier pour pouvoir réaliser la manipulation décrite ci-dessus...

Cordialement,

Ludo.

Bonjour,

Pourquoi passer par macro alors qu'un tableau croisé dynamique permet de faire les 2 d'un coup ?

Cdlt,

Bonjour,

Car le cahier des charges du projet oblige l'utilisation exclusive de VBA...

Cordialement,

Bonjour,

Peut être pas très conventionnel mais un test via table structurée, ce qu'il semble y avoir, nommée BDD. Merci de joindre éventuellement un fichier. Pour ce qui est des explications, il serait utile de préciser si la plage de destination doit être la même ou non.

Sub SUM()
With ActiveSheet
    .[D2].Formula = "=SUMIF([Code],[@Code],[Nombre])"
    .ListObjects("BDD").ListColumns(4).DataBodyRange.Copy
    .[C2].PasteSpecial Paste:=xlPasteValues
    .ListObjects("BDD").ListColumns(4).Delete
    .ListObjects("BDD").Range.RemoveDuplicates Columns:=Array(1), Header:=xlYes
End With
End Sub

Cdlt,

3classeur1.xlsm (16.36 Ko)

Ci-joint le fichier.

Je souhaite que la plage de destination soit la même.

Cordialement,

Bonjour,

Avec votre fichier :

Sub SUM()
With ActiveSheet
    .[E5].Formula = "=SUMIF([[Code ]],[@[Code ]],[Nombre])"
    .ListObjects("Tableau1").ListColumns(4).DataBodyRange.Copy
    .[D5].PasteSpecial Paste:=xlPasteValues
    .ListObjects("Tableau1").ListColumns(4).Delete
    .ListObjects("Tableau1").Range.RemoveDuplicates Columns:=Array(1), Header:=xlYes
End With
End Sub

Cdlt,

L'opération va seulement s'effectuer pour la premiere ligne de mon tableau ?

Car la tableau original comporte bien plus de lignes..

Cordialement,

Bonjour,

Une table structurée propage automatiquement la formule jusqu'à la dernière ligne du tableau. C'est l'un des intérêt majeur de la table structurée.

Cdlt,

Merci à toi.

Cordialement,

Rechercher des sujets similaires à "occurrences valeurs identiques calculs"