Macro somme doublons n'opère plus

  • Initiateur de la discussion Initiateur de la discussion argaz01
  • Date de début Date de début

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 !

A

argaz01

Guest
Bonjour tout le monde,


J'ai réalisé une macro (avec l'aide de la communauté) la semaine dernière, cependant cette dernière ne s'applique sur tout mon tableau! La macro en question est censée trier et faire la somme des doublons présents dans mon tableau, le but étant de faire un graphique à la fin. Voici la macro ainsi que le tableau en question en pièce jointe:
Code:
Sub TriSommeAMF()
Dim ligne As Integer
ligne = 2
Do
 
  If Cells(ligne, 1) = Cells(ligne + 1, 1) And Cells(ligne, 2) = Cells(ligne + 1, 2) Then
  Cells(ligne, 3) = Cells(ligne, 3) + Cells(ligne + 1, 3)
    Cells(ligne + 1, 3).EntireRow.Delete Shift:=xlUp
  Else
    ligne = ligne + 1
  End If
Loop While Cells(ligne, 1) <> ""

End Sub
 
Re : Macro somme doublons n'opère plus

Bonjour le fil,

La macro dans le code de Feuil1 (clic droit sur l'onglet et visualiser le code) :

Code:
Private Sub CommandButton1_Click()
Dim i&, j&
Application.ScreenUpdating = False
[A:B].Copy [E:F]
For i = Range("E65536").End(xlUp).Row To 3 Step -1
  For j = i - 1 To 2 Step -1
    If Cells(i, "E") = Cells(j, "E") Then
      Cells(j, "F") = Cells(j, "F") + Cells(i, "F")
      Cells(i, "E").Resize(, 2).Delete xlUp
      Exit For
    End If
  Next
Next
End Sub

Fichier joint.

Edit : j'avais oublié Exit For...

A+
 

Pièces jointes

Dernière édition:
Re : Macro somme doublons n'opère plus

Bonjour Job,
Super maitrise, j'ai quand même du mal à tout comprendre le fonctionnement,
je me la mets derrière l'oreille pour l'analyser plus tard.

J'ai écrit plus conventionnellement, et comme j'ai fais je poste :


Sub TriSomme()
Dim Pointeur As Long
Dim Lecture As String, Mem As String
'Tri l'ensemble du tableau
Range("A1:B" & Range("A65536").End(xlUp).Row).Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
'Regroupe et additionne
Pointeur = 2
Mem = ""
'Boucle de scrutation
Do
Lecture = Range("A" & Pointeur)
If Lecture = Mem Then
Range("B" & Pointeur - 1) = Range("B" & Pointeur - 1) + Range("B" & Pointeur)
Rows(Pointeur).Delete
Else
Mem = Lecture
Pointeur = Pointeur + 1
End If
Loop Until Lecture = ""
End Sub
 
Re : Macro somme doublons n'opère plus

Bonjour argaz01
Salut GBI
Salut Job
Salut camarchepas (Qu'est-ce que le conventionnel ?)

ma version:
Code:
Sub modifie()
For n = Range("A65536").End(xlUp).Row To 2 Step -1
 For m = n - 1 To 1 Step -1
   If Range("A" & m) = Range("A" & n) Then
      Range("B" & m) = Range("B" & m) + Range("B" & n)
     Rows(n).Delete
   End If
 Next m
Next n
End Sub
 
Re : Macro somme doublons n'opère plus

Bonjour Jean Pierre,

Oui tu as raison , tout est une histoire de cadre de référence, en programmation heureusement , il existe mille façons de faire la même chose .
Bon , je vois que la double boucle est de rigueur .
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
908
Réponses
1
Affichages
323
Réponses
8
Affichages
778
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
15
Affichages
778
Retour