Additionner puis supprimer des doublons

Bonjour,

Il m’a été demandé de créer une macro qui permettrait de supprimer toutes les lignes ayant le même numéro d’affaire (colonne D). Mais avant de les supprimer, il faudrait additionner les cellules des colonnes F, G, H, I ayant le même numéro d’affaire.

J’ai donc mis en place, grâce aux forums qui m’ont beaucoup aidé, cette macro qui fonctionne très bien.

Private Sub Workbook_Open()

Dim ligne As Integer
ligne = 7

Do

If Cells(ligne, 4) = Cells(ligne + 2, 4) Then

Cells(ligne, 6) = Cells(ligne, 6) + Cells(ligne + 2, 6)
Cells(ligne, 7) = Cells(ligne, 7) + Cells(ligne + 2, 7)
Cells(ligne, 8) = Cells(ligne, 8) + Cells(ligne + 2, 8)
Cells(ligne, 9) = Cells(ligne, 9) + Cells(ligne + 2, 9)
Cells(ligne + 3, 4).EntireRow.Delete Shift:=xlUp
Cells(ligne + 2, 4).EntireRow.Delete Shift:=xlUp

Else

ligne = ligne + 2

End If

Loop While Cells(ligne, 2) <> “” And Cells(ligne + 2, 2) <> “”

End Sub

Cependant, le problème est que quelques numéros d’affaire ne sont pas dans l’ordre donc cela ne supprime et n’additionne pas une partie.
Je me suis donc renseigné pour trouver un bout de macro qui pourrait trier les lignes à partir des numéros d’affaire mais mes lignes sont fusionnées et cela est visiblement impossible.

J’ai donc cherché une macro qui additionnerait et supprimerait en cherchant les doublons sur toute la feuille au lieu de la ligne suivante.
Mais je n’ai pas trouvé, je ne sais pas si c’est possible.
Je voudrais savoir finalement si c’est possible d’incorporer un code de tri à ma macro ou de faire une macro qui rechercherait les doublons sur toute la feuille.

Merci d’avance.

Bonjour,

En principe sur un forum EXCEL, on joint un classeur EXCEL (pas des images)

Néanmoins
Un test

Sub Doublons()
  [D7].CurrentRegion.Sort , key1:=[D7], Header:=xlYes 'Tri de la colonne D
  ligne = 7
  Do While Cells(ligne, 4) <> "" 'boucle tant que la cellule en colonne D n'est pas vide
     If Cells(ligne, 4) = Cells(ligne + 1, 4) Then 'Si la cellule de la colonne D = cellule du dessous
        Cells(ligne, "f") = Cells(ligne, "f") + Cells(ligne + 1, "f") 'j'additionne les deux cellules de la colonne F
        Cells(ligne, "g") = Cells(ligne, "g") + Cells(ligne + 1, "g")
        Cells(ligne, "h") = Cells(ligne, "h") + Cells(ligne + 1, "h")
        Cells(ligne, "i") = Cells(ligne, "i") + Cells(ligne + 1, "i")
        Rows(ligne + 1).Delete 'Je supprime la ligne
     Else
        ligne = ligne + 1
     End If
  Loop
End Sub
1 J'aime

Bonjour,

Merci beaucoup Mimimathy d’avoir cherché une solution à mon problème et de m’avoir répondu.
En exécutant votre macro ça m’affiche un message d’erreur:

“Erreur d’exécution ‘1004’
Cette opération requiert que les cellules fusionnées soient de taille identique.”

Puisque mon Excel que fournit mon logiciel a des cellules fusionnées.
Je ne sais pas si c’est vraiment faisable ce que je demande.
Je vous ai mis mon fichier Excel ci-joint.

Exemple.xlsx (71,2 Ko)

Re,
Ben j’avais pas vu sur la belle image que les cellules étaient fusionnées :star_struck:

Mais fusionnées Pourquoi?

A savoir que les cellules fusionnées dans un tableur, c’est pour rendre une belle présentation, mais quand le fichier est fini
Là, les cellules servent à quoi?

A savoir que les hauteurs de lignes existent, tout comme ses largeurs
et que les cellules fusionnées sont à proscrire entièrement :rage:

Après explications, à voir, ce que l’on peut en tirer :face_with_raised_eyebrow:

1 J'aime

Il y a des cellules fusionnées puisqu’à partir de la colonne Y il y a deux lignes, celle d’en haut pour marquer les heures et celle d’en bas pour marquer les initiales.
Donc il ne faudrait pas les supprimer. :confused:

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.