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 à 22:02.

  1. ivan27

    ivan27 XLDnaute Occasionnel

    Inscrit depuis le :
    5 Octobre 2007
    Messages :
    258
    "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:
      9
  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 :
    5150
    "J'aime" reçus :
    846
    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 à 22:42
  4. mapomme

    mapomme XLDnaute Barbatruc

    Inscrit depuis le :
    1 Novembre 2011
    Messages :
    5150
    "J'aime" reçus :
    846
    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 :
    258
    "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 :
    258
    "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
     

Partager cette page