Reperer les doublons si designation et description sont identique

Bonjour,

Pouvez-vous m’aider a écrire un code VBA?

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

E Jerome.Bouvet@modis.com

Modis
22 Terrasse Bellini, 92800 Puteaux

essai_macro.xlsx (127 KB)

···

From: formuleexcel@discoursehosting.net
To: jerome.bouvet@skf.com,
Date: 28/03/2018 17:06
Subject: Quelle est ta question Excel/VBA?
Sent by: formuleexcel=discoursehosting.net@mail231.suw12.mcsv.net

Bonjour c’est Docteur Excel!

Es-tu bloqué sur Excel ou VBA? Comment puis-je t’aider?

Pose-moi ta question et je te répondrai dans les plus brefs délais (pour
cela réponds directement à cet email).

Si tu préfères tu peux la poser sur mon forum:
http://forum.formuleexcel.com

Dans les jours qui suivent je t’enverrai quelques tutoriels afin
d’améliorer ta maîtrise d’Excel

A bientôt,
Docteur Excel

Se désinscrire

Copyright © 2018 Outwork OÜ

Vous recevez ce mail car vous vous êtes inscrit sur FormuleExcel.com

Outwork OÜ
Sepapaja Tn 6, Lasnamäe Linnaosa
Tallinn 15551
Estonia

Add us to your address book

Bonjour,

J’ai pas trouvé la feuille précisée :face_with_raised_eyebrow:

Cordialement,

Jérôme

essai_macro.xlsx (129 KB)

Re,

A tester

MACRO

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
1 J'aime

Bonjour,

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

E Jerome.Bouvet@modis.com

Modis
22 Terrasse Bellini, 92800 Puteaux

Consultant pour:

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

SKF - The Power of Knowledge Engineering

BOM_macro.xlsx (131 KB)

Bonjour,

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” :thinking:

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 :wink:

2 J'aimes

Bonjour

A tester avec les modifications de ton dernier classeur
BOM_macro.xlsm (139,7 Ko)

1 J'aime

Bonjour,

Merci beaucoup pour votre aide, cela fonctionne au top !

Cordialement,

Jérôme Bouvet
Product designer
Product Engineering & Development

E Jerome.Bouvet@modis.com

Modis
22 Terrasse Bellini, 92800 Puteaux
modisfrance.fr

Re,
Si le problème est résolu, n’oublie pas de passer le post en résolu :wink:

Bonjour,

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

E Jerome.Bouvet@modis.com

Modis
22 Terrasse Bellini, 92800 Puteaux

BOM_432970_rev0.xlsm (146 KB)

BOM_432970_rev0.xlsx (140 KB)

Mimimathy ,

Peux tu m’aider ?

Bonjour,

Je vais ré-étudier le problème, un peu de patience
Il y a du travail derrière ta demande :smirk:

Re,

A tester avec une nouvelle macro
BOM_432970_rev2.xlsm (146,6 Ko)