Fusion des doublons

Résolu
alex777771 Messages postés 5 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 29 avril 2011 - 28 avril 2011 à 17:30
alex777771 Messages postés 5 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 29 avril 2011 - 29 avril 2011 à 10:12
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

Utilisateur anonyme
29 avril 2011 à 09:29
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...
3
alex777771 Messages postés 5 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 29 avril 2011
29 avril 2011 à 10:12
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
0
Rejoignez-nous