Macro doublons excel
smile67
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
smile67 Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
smile67 Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
bonjour,
je souhaiterai créer une macro sur un fichier excel. J'ai
dans la colonne B de mon ficher des doublons. La
macro doit détecter les doublons dans la colonne B. En première ligne
de chaque doublon détecté insérer une ligne vide, copier le doublon
et le coller sur la cellule de la ligne nouvellement insérer dans la colonne B.
J'ai ça:
Col A----------Col B
1 -------------- AA
2 -------------- AA
3 -------------- AA
4 -------------- BB
5 -------------- CC
6 -------------- CC
7 -------------- CC
8 -------------- DD
9 -------------- DD
Je veux obtenir :
Col A ---------Col B
-------------- AA
1-------------- AA
2 -------------- AA
3 -------------- AA
4 -------------- BB
-------------- CC
5 -------------- CC
6 -------------- CC
7 -------------- CC
-------------- DD
8 -------------- DD
9 -------------- DD
Merci de votre aide.
je souhaiterai créer une macro sur un fichier excel. J'ai
dans la colonne B de mon ficher des doublons. La
macro doit détecter les doublons dans la colonne B. En première ligne
de chaque doublon détecté insérer une ligne vide, copier le doublon
et le coller sur la cellule de la ligne nouvellement insérer dans la colonne B.
J'ai ça:
Col A----------Col B
1 -------------- AA
2 -------------- AA
3 -------------- AA
4 -------------- BB
5 -------------- CC
6 -------------- CC
7 -------------- CC
8 -------------- DD
9 -------------- DD
Je veux obtenir :
Col A ---------Col B
-------------- AA
1-------------- AA
2 -------------- AA
3 -------------- AA
4 -------------- BB
-------------- CC
5 -------------- CC
6 -------------- CC
7 -------------- CC
-------------- DD
8 -------------- DD
9 -------------- DD
Merci de votre aide.
A voir également:
- Macro doublons excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Doublons photos - Guide
- Si ou excel - Guide
3 réponses
Bonjour,
Un exemple de ce que tu pourrais faire :
eric
Un exemple de ce que tu pourrais faire :
Sub ajDbl()
Dim i As Long
For i = [B65536].End(xlUp).Row - 2 To 1 Step -1
If Cells(i, 2) <> Cells(i + 1, 2) And Cells(i + 1, 2) = Cells(i + 2, 2) Then
Rows(i + 1).Insert Shift:=xlDown
Cells(i + 1, 2) = Cells(i + 2, 2)
End If
Next i
If Cells(1, 2) = Cells(2, 2) Then
Rows(1).Insert Shift:=xlDown
Cells(1, 2) = Cells(2, 2)
End If
End Sub
eric
Bonsoir,
J'ai complété la macro, regarde si ça va :
eric
J'ai complété la macro, regarde si ça va :
Sub ajDbl()
Dim i As Long, cpt As Long
For i = [B65536].End(xlUp).Row - 2 To 1 Step -1
If Cells(i, 2) <> Cells(i + 1, 2) And Cells(i + 1, 2) = Cells(i + 2, 2) Then
Rows(i + 1).Insert Shift:=xlDown
Cells(i + 1, 2) = Cells(i + 2, 2)
End If
Next i
If Cells(1, 2) = Cells(2, 2) Then
Rows(1).Insert Shift:=xlDown
Cells(1, 2) = Cells(2, 2)
End If
Columns("B:B").Insert Shift:=xlToRight
For i = 1 To [C65536].End(xlUp).Row
If Cells(i, 1) = "" Then
cpt = cpt + 1
Cells(i, 1) = "P" & cpt
ElseIf cpt <> 0 And i <> 1 And Cells(i, 3) = Cells(i - 1, 3) Then
Cells(i, 2) = "P" & cpt
End If
Next i
End Sub
eric
Salut Eric,
quand j'execute le programme sur un fichier avec 10 lignes le code s'execute bien, par contre quand je l'execute avec mon fichier excel qui comprend 5000 lignes, le code s'execute puis à la fin j'obtiens un bug sur la ligne de code " ElseIf cpt <> 0 And i <> 1 And Cells(i, 3) = Cells(i - 1, 3) Then". Toutes les lignes sont inséré comme il faut dans mon document, la colonne aussi, mais les codes P1, p2 etc.. ne sont pas inséré.
Je regarde de mon côté aussi si je pe faire qqch, je te tien au courant.
Merci.
quand j'execute le programme sur un fichier avec 10 lignes le code s'execute bien, par contre quand je l'execute avec mon fichier excel qui comprend 5000 lignes, le code s'execute puis à la fin j'obtiens un bug sur la ligne de code " ElseIf cpt <> 0 And i <> 1 And Cells(i, 3) = Cells(i - 1, 3) Then". Toutes les lignes sont inséré comme il faut dans mon document, la colonne aussi, mais les codes P1, p2 etc.. ne sont pas inséré.
Je regarde de mon côté aussi si je pe faire qqch, je te tien au courant.
Merci.
Tu as une ligne de titre, il faut commencer ou finir les boucles sur la ligne 2 et non la 1.
Je t'ai déplacé un test pour éviter l'erreur et ajouté screenupdating pour accélérer le traitement.
smile67.xls
Ca donne droit à 1 bouteille de chaque ? ;-)
eric
Je t'ai déplacé un test pour éviter l'erreur et ajouté screenupdating pour accélérer le traitement.
smile67.xls
Ca donne droit à 1 bouteille de chaque ? ;-)
eric
J'ai testé le code il répond parfaitement à mes attentes. Un grand merci pour commencer cela faisait trois semaines que je cherchais la solution. J'ai une autre demande si ce n'est pas trop pour toi, ce serait :
Après execution de ton code, j'insère une colonne entre ColA et ColB. J'aimerai insérer en face de chaque doublon de la colonne C (anciennement B) un code. J'aimerai obtenir au final :
Col A ----------Clolonne inséré-------------------Col C
P1----------------------------------------------------------------
1---------------------P1------------------------------------- AA
2 --------------------P1------------------------------------- AA
3 --------------------P1------------------------------------- AA
4 ------------------------------------------------------------- BB
P2------------------------------------------------------------ CC
5 --------------------P2------------------------------------- CC
6 --------------------P2------------------------------------- CC
7 --------------------P2------------------------------------- CC
P3------------------------------------------------------------ DD
8 --------------------P3------------------------------------- DD
9 --------------------P3------------------------------------- DD
Encore un grand merci pour ton précédent code.