Dans mon tableau ci-joint,
En appuyant sur un bouton. j’ai besoin de reperer les doublons si
designation et description sont identique. (colonne C et D)
Si ils sont identique emputer la quantité (colonne B) à la ligne la plus
haute dans la colonne G, H ou I.
Et suprimer les doublons.
J’ai réussi avec des tutos à repérer les doublons, les supprimer et créer
un boutons pour lancer la macros.
Mais il me reste du chemin avant d’avoir ce que je recherche.
Dans le tableau feuille « final » c’est ce que je veux obtenir.
Cordialement,
Jérôme Bouvet
Product designer
Product Engineering & Development
Sub Regroupe()
Dim i%, j%, l%, Dl%
Dl = Range("A" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne A
l = 2 'N° ligne départ
For j = l To Dl 'boucle de la ligne 2 à la dernière
For i = l + 1 To Dl 'boucle de la ligne 3 à la dernière
'si la valeur des cellules ligne "X" colonne CD est égale la valeur des cellules ligne "X+1" colonne CD
If Cells(j, 3).Value & Cells(j, 4).Value = Cells(i, 3).Value & Cells(i, 4).Value Then
If IsEmpty(Cells(j, 7)) Then 'Si la cellule colonne G est vide
Cells(i, 7).Copy Cells(j, 7) 'copie la valeur de la ligne en double, colonne G
Rows(i).Delete Shift:=xlUp 'supprime la ligne en double
Dl = Range("A" & Rows.Count).End(xlUp).Row 'Recalcule la dernière ligne
ElseIf IsEmpty(Cells(j, 8)) Then 'Si la cellule colonne H est vide
Cells(i, 8).Copy Cells(j, 8) 'copie la valeur de la ligne en double, colonne H
Rows(i).Delete Shift:=xlUp 'supprime la ligne en double
Dl = Range("A" & Rows.Count).End(xlUp).Row 'Recalcule la dernière ligne
ElseIf IsEmpty(Cells(j, 9)) Then 'Si la cellule colonne I est vide
Cells(i, 9).Copy Cells(j, 9) 'copie la valeur de la ligne en double, colonne I
Rows(i).Delete Shift:=xlUp 'supprime la ligne en double
Dl = Range("A" & Rows.Count).End(xlUp).Row 'Recalcule la dernière ligne
Else
Rows(i).Delete Shift:=xlUp 'supprime la ligne en double
Dl = Range("A" & Rows.Count).End(xlUp).Row 'Recalcule la dernière ligne
End If
End If
If i = Dl Then l = l + 1: Exit For 'Si i = à la dernière ligne, l = l +1 et sort de la boucle I
Next i
If i = Dl Then l = l + 1
Next j
End Sub
Merci beaucoup pour votre retour.
J’ai testé et je n’arrive pas a obtenir le resultat voulu.
Quand j’essai la formule sur la feuille jointe(BOM_MACRO), la selection ne
se fait que sur la moitié, pourtant j’ai modifié la macro en ajoutant les
colonnes J,K,L.
Merci d’avance pour votre retour.
Cordialement,
Jérôme Bouvet
Product designer
Product Engineering & Development
SKF France
Industrial Market - Strategic Industries
Railway & Off Highway BU
204 bd Charles de Gaulle, 37540, St Cyr sur Loire, France
Tel: +33 247 403 164
E-mail: jerome.bouvet@skf.com www.skf.com, Facebook, Youtube, Linkedin, Twitter
Ben Oui, c’est le problème de beaucoup de personne qui pose des questions et qui commence déjà par oublier de mettre un classeur « TYPE » pour faire le travail et qui en plus nous déclare que « cela ne fonctionne pas »
Si on ne connait pas grand chose en VBA, on place au minimum un classeur « REPRESENTATIF », avec des bonnes explications
Après, à la vue du nouveau classeur, j’aurais voulu voir tes modifications sur la macro
et en correction, je t’aurais montrer là où tu as « fauté »,
c’est avec ses erreurs que l’on se souvient et qu’on avance
Je viens de vérifier la macro avec un cas concret et je trouve des erreurs
que je n’arrive pas à corriger seul.
J’ai mis en rouge fond bleu les valeurs oubliées par la macro.
Je joins le fichier d’origine et le fichier avec la macro.
Merci d’avance pour votre aide.
Cordialement,
Jérôme Bouvet
Product designer
Product Engineering & Development