Fusion des doublons [Résolu]

Signaler
Messages postés
5
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
29 avril 2011
-
alex777771
Messages postés
5
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
29 avril 2011
-
Bonjour,

Je cherche à fusionner des lignes de doublons:

J'ai un tableau comme ça:

référence-------Libel-------quantité
3244------------Casque------3
3244------------Casque------8
3244------------Casque------9
2478------------Chemise-----3
2478------------Chemise-----1
3920------------Feutre------5

J'espère pouvoir le faire devenir ça:

Référence-------Libel-------quantité
3244------------Casque------20
2478------------Chemise-----4
3920------------Feutre------5

J'utilise déjà un bon code pour supprimer les doublons mais il ne permet pas de fusionner les quantités:

Sub supdesdoub()
Application.ScreenUpdating = False
For Each o In UsedRange
o.Activate
Next
iR = ActiveCell.Row
iL = ActiveCell.Column
[J1].Select
i = 1
j = 1
Do While i < iR
If Cells(i, 1).Value = "" Then Exit Do
Do While Cells(i, 1).Value = Cells(i + 1, 1).Value
Do Until j = iL
If Cells(i, 1 + j).Value "" Then Cells(i, 1 + j).Value Cells(i + 1, 1 + j).Value
j = j + 1
Loop
Rows(i + 1).Delete
j = 1
Loop
i = i + 1
Loop
End Sub


Es-ce que quelqu'un sait comment m'aider? ( je débute encore en VBA et c'est pas toujours facile!)

Merci d'avance,

alex.

2 réponses

Messages postés
149
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
16 juillet 2013
2
Salut Alex,

Alors je ne comprend pas l'utilité de ce code :

For Each o In UsedRange
   o.Activate
Next 


et de celui ci:

Do Until j = iL
   If Cells(i, 1 + j).Value = "" Then 
      Cells(i, 1 + j).Value = Cells(i + 1, 1 + j).Value
   j = j + 1
Loop


C'est juste pour moi comprendre...

Pour la somme ajoute cette ligne :

Cells(i, 3).Value = Cells(i, 3).Value + Cells(i + 1, 3).Value


Ta boucle sera alors:
Do While i < iR
     If Cells(i, 1).Value = "" Then 
          Exit Do
     Do While Cells(i, 1).Value = Cells(i + 1, 1).Value
          Cells(i, 3).Value = Cells(i, 3).Value + Cells(i + 1, 3).Value
          Do Until j = iL
               If Cells(i, 1 + j).Value = "" Then 
                    Cells(i, 1 + j).Value = Cells(i + 1, 1 + j).Value
               j = j + 1
          Loop
          Rows(i + 1).Delete
          j = 1
     Loop
     i = i + 1
Loop


Cordialement...
Messages postés
5
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
29 avril 2011

Merci !

Pour les codes en trop, je t'avoue que je débute en VBA et c'est un collegue qui m'a filé le code.

Je comprend bien comment fonctionne la boucle mais pas toutes les fonctions donc ces deux morceaux de code sont peut être bien inutile! Je vais tester sans.

Merci beaucoup pour la ligne qui permet de faire la somme, ça marche parfaitement!

Alex