Dupliquer toutes les lignes sur Excel [Fermé]

Signaler
Messages postés
444
Date d'inscription
dimanche 21 mai 2017
Statut
Membre
Dernière intervention
21 novembre 2020
-
Messages postés
371
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
4 mars 2019
-
Bonjour,

j'ai un fichier Excel avec 5000 lignes.
Chaque ligne commence en A et se termine en P. Cad il y a des infos dans chaque colonne, de A à P sur les 5000 lignes.
Actuellement les infos sont comme ceci :
Ligne 1
Ligne 2
Ligne 3

Je voudrais cela (dans le même feuillet, même fichier):
Ligne 1
Ligne 1
Ligne 2
Ligne 2
Ligne 3
Ligne 3

Cad que chaque ligne soit dupliquée et que la ligne dupliquée soit juste en dessous.

J'ai trouvé ce code sur Internet, mais ça ne fonctionne pas. Ca duplique uniquement la première ligne, mais pas la seconde et ça duplique uniquement la première colonne de la ligne (A) et pas jusqu'à la colonne P :

Sub test()
ligne = 1
tablo = Range("A1:AP" & Range("A65536").End(xlUp).Row)
For n = LBound(tablo, 1) To UBound(tablo, 1)
For m = 1 To 2
Range("A" & ligne) = tablo(n, 1)
ligne = ligne + 1
Next
Next

End Sub



Quelqu'un pourrait-il me donner le code pour que mes 5000 lignes soient dupliquées en prenant en compte toutes les colonnes de A à P SVP ?

Merci beaucoup :)

3 réponses

Messages postés
371
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
4 mars 2019
34
Bonjour,

Voici un code qui dupliquera tes lignes, en contrôlant au préalable les données des colonnes A et B, si les données sont déjà identiques sur ces deux colonnes, elle ne dupliquera par la ligne, si elles sont différentes alors la ligne sera dupliquer, à tester. Si tu as besoin de changer les colonnes contrôlées ou d'ajouter plus de colonnes dans le contrôle c'est tout à fait possible.
J'ai codé ce contrôle car sans ça à chaque exécution de la macro tes lignes seront automatiquement dupliquées, donc si par exemple tu exécute 2 fois la macro successivement tu te retrouveras avec 4 fois la ligne 1...

Sub dupliquer()
der = Range("A66536").End(xlUp).Row
For i = 1 To der * 2
    If Range("A" & i + 1).Value <> Range("A" & i).Value And Range("B" & i + 1).Value <> Range("B" & i).Value Then
    Rows(i + 1).Insert
    Rows(i).Copy Rows(i + 1)
    End If
i = i + 1
Next i
End Sub


Bonne journée

Jc
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci

Messages postés
14003
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 janvier 2021
788
bonjour, veux-tu simplement dupliquer tes lignes, ou veux-tu plutôt insérer une ligne identique en dessous de chaque ligne? le code que tu proposes ne me semble pas faire d'insertion.
Messages postés
621
Date d'inscription
lundi 28 juillet 2008
Statut
Membre
Dernière intervention
14 novembre 2020
621
Salut,
J'étais en train de voir mais j'ai abandonné car je connais trop peu le VBA.
J'ai modifié son code. Sur le fichier que je mets en lien est ce qu'il faut mais faire la même chose sur les autres colonnes jusqu'à la colonne "P" et non pas que sur la colonne "A"

https://www.cjoint.com/c/IBcnfnSLGjG

J'ai réussi en recopiant le code pour chaque colonne mais fastidieux.
Je suis aussi preneur pour un code plus simple :)
Messages postés
23809
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 janvier 2021
6 584
Bonjour,

ce n'est pas le genre de question qui mérite d'être posté sur plusieurs forums.
https://forum.excel-pratique.com/viewtopic.php?f=2&t=120046
Un peu de patience suffit...
eric
Messages postés
621
Date d'inscription
lundi 28 juillet 2008
Statut
Membre
Dernière intervention
14 novembre 2020
621
Œil de lynx ! ;)