XL 2016 [RESOLU] dupliquer les lignes X fois selon valeur

ivan27

XLDnaute Occasionnel
Bonsoir et bon week-end à tous,

Je souhaite dupliquer toutes les lignes d'une liste selon la valeur de la colonne D en conservant les valeurs et les formules.

Si par exemple en colonne D j'ai le chiffre 5 la ligne en question doit donc être dupliquée 4 fois pour en avoir 5 en tout.

Merci d'avance pour votre aide.

Ivan
 

Fichiers joints

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @ivan27,

Essayez ce code :
VB:
Sub dupliquer()
Dim derlig&, dercol&, i&, n&

  Application.ScreenUpdating = False
  With ActiveSheet
    derlig = .Cells(.Rows.Count, "a").End(xlUp).Row
    dercol = .Cells(1, .Columns.Count).End(xlToLeft).Column
    For i = derlig To 2 Step -1
      n = .Cells(i, "d")
      If n > 1 Then
        .Cells(i, "a").Resize(, dercol).Copy
        .Cells(i, "a").Resize(n - 1, dercol).Insert Shift:=xlDown
      End If
    Next i
  End With
  Application.CutCopyMode = False
End Sub
 

Fichiers joints

Dernière édition:

ivan27

XLDnaute Occasionnel
Bonjour mapomme, le forum,

Merci mapomme pour tes propositions.
La version 1 fonctionne mais est effectivement un peu longue; test effectué sur 1500 lignes.
Je n'arrive pas a faire fonctionner la version 2.
J'ai un blocage sur la ligne :
.Cells(1, "a").Resize(derlig, dercol + 1).Sort Range("e1"), Header:=xlYes
''La méthode Sort de la classe Range a échoué''
Par ailleurs, est-il possible de conserver l'ordre des lignes d'origine après application de la macro ?
Bien cordialement et bonne journée à tous
 

ivan27

XLDnaute Occasionnel
Rebonjour mapomme, le forum,
J'ai trouvé le problème.
Il fallait que je retire la mise en forme ''Tableau''.
Encore merci
Bon week-end
 

Vincent OURIET

XLDnaute Nouveau
Bonjour à tous je viens de m'inscrire sur le forum et suis novice.
J'ai utilisé la première macro de Mapomme qui me satisfait entièrement excepté le fait que pour certaines valeurs à dupliquer il arrive parfois que j'ai une demande à 0. En conséquence la ligne reste identique ne se duplique pas mais serait il possible pour cette demande qu'elle soit supprimée.
Il y a t il une commande supplémentaire à ajouter en pareil cas.
Vous remerciant par avance.

Bonne fin de journée.
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @Vincent OURIET et bienvenue sur XLD :),

Il nous faudrait un échantillon de votre fichier de départ pour bien répondre à votre question. En effet que signifie "une demande à 0" ? S'agit-il de la même colonne que celle comportant le facteur de duplication?...
 

Vincent OURIET

XLDnaute Nouveau
Bonsoir Mapomme et merci pour la bienvenue ainsi que pour la prompte réponse

C'est tout à fait cela sur la colonne de duplication sont indiquées les facteurs de duplications mais il peut en effet arriver que ce facteur de duplication soit à 0 en conséquence en ce cas nous n'avons pas besoin de la ligne. Il s'agit d'une commande groupée et parfois plusieurs colis sont demandés pour un site ou pas du tout. Comme le client a un masque il ne rentre que les facteurs de duplications.
Pour le fichier je ne l'ai pas sur tablette je le modifie et vous l'envoi dès que possible.

Vous souhaitant une bonne soirée.

Vincent
 

Annezo

XLDnaute Nouveau
Bonjour à tous,

Je n'y connais rien en VBA et j'ai une urgence absolue... j'ai un tableau excel de plus de 40000 lignes, et je dois dédoubler les lignes suivant le nombre de mails renseignés dans la colonne E : "Opérant V2". Si 3 mails, copier 2 fois la ligne entière pour avoir un mail sur chaque ligne en conservant tous les données de la ligne...

Je ne sais pas si j'ai été clair... mais voilà la problématique !

Si quelqu'un peu m'aider s'il vous plait...
 

Fichiers joints


Haut Bas