1. Ce site utilise des "témoins de connexion" (cookies) conformes aux textes de l'Union Européenne. Continuer à naviguer sur nos pages vaut acceptation de notre règlement en la matière. En savoir plus.

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

Discussion dans 'Forum Excel' démarrée par ivan27, 11 Janvier 2019.

  1. ivan27

    ivan27 XLDnaute Occasionnel

    Inscrit depuis le :
    5 Octobre 2007
    Messages :
    263
    "J'aime" reçus :
    1
    Utilise:
    Excel 2016 (PC)
    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
     

    Pièces jointes:

    • test.xlsx
      Taille du fichier:
      10.5 Ko
      Affichages:
      20
  2. Chargement...

    Discussions similaires - [RESOLU] dupliquer lignes Forum Date
    [RESOLU] Dupliquer X fois des lignes sur une autre feuille selon conditions Forum Excel 15 Décembre 2016
    XL 2013 [Résolu] Dupliquer une feuille modèle à partir d'une liste Forum Excel 9 Janvier 2018
    XL 2013 [Résolu]Dupliquer macro dans la même feuille Forum Excel 26 Octobre 2016
    XL 2013 [Résolu] Dupliquer des comptes avec insertion de lettres Forum Excel 4 Octobre 2016
    Dupliquer ma formule VBA [Résolu] Forum Excel 29 Janvier 2016

  3. mapomme

    mapomme XLDnaute Barbatruc

    Inscrit depuis le :
    1 Novembre 2011
    Messages :
    5191
    "J'aime" reçus :
    863
    Sexe :
    Masculin
    Habite à:
    Angers
    Utilise:
    Excel 2010 (PC)
    Bonsoir @ivan27,

    Essayez ce code :
    Code (Visual Basic):
    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
     

    Pièces jointes:

    Dernière édition: 11 Janvier 2019
  4. mapomme

    mapomme XLDnaute Barbatruc

    Inscrit depuis le :
    1 Novembre 2011
    Messages :
    5191
    "J'aime" reçus :
    863
    Sexe :
    Masculin
    Habite à:
    Angers
    Utilise:
    Excel 2010 (PC)
    Re,

    Une version bien plus rapide pour un grand nombre de lignes à dupliquer.
     

    Pièces jointes:

  5. ivan27

    ivan27 XLDnaute Occasionnel

    Inscrit depuis le :
    5 Octobre 2007
    Messages :
    263
    "J'aime" reçus :
    1
    Utilise:
    Excel 2016 (PC)
    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
     
  6. ivan27

    ivan27 XLDnaute Occasionnel

    Inscrit depuis le :
    5 Octobre 2007
    Messages :
    263
    "J'aime" reçus :
    1
    Utilise:
    Excel 2016 (PC)
    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
     
  7. Vincent OURIET

    Vincent OURIET XLDnaute Nouveau

    Inscrit depuis le :
    7 Février 2019
    Messages :
    2
    "J'aime" reçus :
    0
    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.
     
  8. mapomme

    mapomme XLDnaute Barbatruc

    Inscrit depuis le :
    1 Novembre 2011
    Messages :
    5191
    "J'aime" reçus :
    863
    Sexe :
    Masculin
    Habite à:
    Angers
    Utilise:
    Excel 2010 (PC)
    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?...
     
  9. Vincent OURIET

    Vincent OURIET XLDnaute Nouveau

    Inscrit depuis le :
    7 Février 2019
    Messages :
    2
    "J'aime" reçus :
    0
    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
     

Partager cette page