Astuce: Les autres langues sont Google-Traduction. Vous pouvez visiter le English version de ce lien.
Se connecter
x
or
x
x
S'enregistrer
x

or

Comment copier et insérer des lignes plusieurs fois ou dupliquer la ligne x fois dans Excel?

Dans votre travail quotidien, avez-vous déjà essayé de copier une ligne ou chaque ligne, puis de l'insérer plusieurs fois sous la ligne de données actuelle dans une feuille de calcul? Par exemple, j'ai une plage de cellules, maintenant, je veux copier chaque ligne et les coller plusieurs fois 3 à la ligne suivante, comme illustré ci-dessous. Comment pouvez-vous gérer ce travail dans Excel?


Copier et insérer chaque ligne plusieurs fois en fonction d'un nombre spécifique facilement

Normalement, il n’existe pas de bonne méthode pour copier et insérer des lignes plusieurs fois, à l’exception de la copie et de l’insertion manuelle. Mais avec Kutools for Excel's Lignes / colonnes en double basées sur la valeur de la cellule fonctionnalité, vous pouvez résoudre ce problème avec facilité. Cliquez pour télécharger Kutools for Excel!

Kutools for Excel: avec plus que 300 compléments Excel pratiques, libre d'essayer sans limitation dans les jours 60. Téléchargez et essai gratuit maintenant!


Copiez et insérez une ligne spécifique plusieurs fois avec le code VBA

Si vous voulez dupliquer une seule ligne x fois, le code VBA suivant peut vous aider, faites comme ceci:

1. Spécifiez une ligne que vous souhaitez copier et insérer plusieurs fois, puis maintenez la touche ALT + F11 clés, puis il ouvre la Microsoft Visual Basic pour applications fenêtre.

2. Cliquez insérer > Moduleet collez le code suivant dans le Module Fenêtre.

Code VBA: dupliquez une ligne spécifique plusieurs fois:

Sub test()
'Updateby Extendoffice
    Dim xCount As Integer
LableNumber:
    xCount = Application.InputBox("Number of Rows", "Kutools for Excel", , , , , , 1)
    If xCount < 1 Then
        MsgBox "the entered number of rows is error, please enter again", vbInformation, "Kutools for Excel"
        GoTo LableNumber
    End If
    ActiveCell.EntireRow.Copy
    Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(xCount, 0)).EntireRow.Insert Shift:=xlDown
    Application.CutCopyMode = False
End Sub

3. Après avoir collé le code, appuyez sur F5 clé pour exécuter ce code, et une boîte de dialogue s'affiche pour vous rappeler de saisir le nombre de fois que vous souhaitez dupliquer, voir la capture d'écran:

4. Puis clique OK bouton, et trois nouvelles lignes copiées ont été insérées sous la ligne sélectionnée, voir capture d'écran:


Copiez et insérez chaque ligne plusieurs fois avec le code VBA

Pour dupliquer plusieurs lignes dans une plage, vous pouvez appliquer le code VBA suivant, procédez comme suit:

1. Maintenez le ALT + F11 clés, puis il ouvre la Microsoft Visual Basic pour applications fenêtre.

2. Cliquez insérer > Moduleet collez le code suivant dans le Module Fenêtre.

Code VBA: dupliquez chaque ligne plusieurs fois:

Sub insertrows()
'Updateby Extendoffice
Dim I As Long
Dim xCount As Integer
LableNumber:
xCount = Application.InputBox("Number of Rows", "Kutools for Excel", , , , , , 1)
If xCount < 1 Then
MsgBox "the entered number of rows is error ,please enter again", vbInformation, "Kutools for Excel"
GoTo LableNumber
End If
For I = Range("A" & Rows.CountLarge).End(xlUp).Row To 2 Step -1
Rows(I).Copy
Rows(I).Resize(xCount).Insert
Next
Application.CutCopyMode = False
End Sub

3. Et puis appuyez sur F5 clé pour exécuter ce code, et une boîte de dialogue apparaît pour vous rappeler de saisir le nombre de fois que vous souhaitez dupliquer pour chaque enregistrement, voir la capture d'écran:

4. Puis clique OK, et chaque ligne a été copiée et insérée 3 fois ci-dessous les actifs, voir capture d'écran:

Note: Dans le code ci-dessus, le A indique que la plage de données est démarrée à la colonne A, si vos données commencent à la colonne K, s'il vous plaît changer A à K comme votre besoin.


Copiez et insérez chaque ligne plusieurs fois en fonction d'un nombre spécifique doté d'une fonctionnalité géniale

Peut-être que vous n'êtes pas familier avec le code VBA ou que vous craignez que le code ne bloque vos données. Ici, je vais présenter une fonctionnalité utile, Kutools for Excel's Lignes / colonnes en double basées sur la valeur de la cellule, avec cet utilitaire, vous pouvez rapidement copier et insérer les lignes en fonction du nombre que vous avez spécifié.

Conseils:Appliquer cette Lignes / colonnes en double basées sur la valeur de la cellule Pour commencer, vous devez télécharger le Kutools for Excel, puis appliquez la fonctionnalité rapidement et facilement.

Après l'installation de Kutools for Excel, faites comme ceci:

1. Entrez les numéros de répétition que vous souhaitez dupliquer dans une liste de cellules à côté de vos données, voir capture d'écran:

2. Cliquez Kutools > insérer > Lignes / colonnes en double basées sur la valeur de la cellule, voir capture d'écran:

3. Dans le Copier et insérer des lignes et des colonnes boîte de dialogue, sélectionnez Copier et insérer des lignes option dans la Type section, puis sélectionnez la plage de données que vous souhaitez dupliquer, puis spécifiez le temps de répétition pour dupliquer les lignes, voir la capture d'écran:

4. Puis clique Ok or Appliquer bouton, vous obtiendrez le résultat suivant selon vos besoins:

Cliquez pour télécharger Kutools pour Excel et essai gratuit maintenant!


Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe Créer une liste de diffusion et envoyer des emails ...
  • Super Formula Bar (éditez facilement plusieurs lignes de texte et de formule); Disposition de lecture (facilement lire et éditer un grand nombre de cellules); Coller à la gamme filtrée...
  • Fusionner les cellules / rangées / colonnes sans perdre de données; Contenu des cellules divisées; Combiner les lignes / colonnes en double... Prévenir les cellules en double; Comparer les plages...
  • Sélectionnez Dupliquer ou Unique Des rangées; Sélectionnez les lignes vierges (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux cahiers d'exercices; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de la formule; Créer automatiquement des références à plusieurs feuilles; Insérer des balles, Cases à cocher et plus ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre contenu de cellules et commentaires...
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial en gras, en italique ...
  • Combinaison de classeurs et de feuilles de calcul; Fusionner les tables en fonction des colonnes clés; Fractionner les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDF...
  • Plus que de puissantes fonctionnalités 300. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Fonctionnalités complètes Essai gratuit du jour 30.
kte tab 201905

Office Tab apporte une interface à onglets à Office et simplifie grandement votre travail

  • Activer l'édition par onglets et la lecture dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit le nombre de clics de souris pour vous chaque jour!
fond officetab
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Ismael · 2 months ago
    No funciona con Windows 2019, deseo usar la función en mención pero simplemente no hace absolutamente nada
  • To post as a guest, your comment is unpublished.
    Malik · 3 months ago
    Copy And Insert Each Row Multiple Times With VBA Code

    In VBA code how can I select the starting row
  • To post as a guest, your comment is unpublished.
    Sal · 4 months ago
    hi this worked great, only i need two rows copied N number of times. Can you please adjust the code so when i select two rows, it will then copy those two rows down N times ? thanks for your help
    • To post as a guest, your comment is unpublished.
      skyyang · 4 months ago
      Hello, Sal,
      If you need to only copy two rows down by multiple times, you just need to use the VBA code 1 in this article, apply the code two times will solve your problem. Please try, hope it can help you!
  • To post as a guest, your comment is unpublished.
    Deep Saha · 5 months ago
    how to perform the same action with selected cells using VB,


    I need to repeat a few selected cells (rows and columns) x no of times in the same sheet and in the same order as:

    line1
    line2
    line3

    line1
    line2
    line3
  • To post as a guest, your comment is unpublished.
    Jamar · 7 months ago
    How can I do this for columns?
  • To post as a guest, your comment is unpublished.
    Jamar · 7 months ago
    how do I do this for columns?
  • To post as a guest, your comment is unpublished.
    Andreea · 10 months ago
    Love it! It works every time! Thank you so much for this :)
  • To post as a guest, your comment is unpublished.
    Sashitharan Govindasamy · 1 years ago
    Hello, I need help, this is how my table looks, for example, when I add 2 row at the end of my 1st table, I want the vba help me to do the same thing for the table below (add 2 rows at the end of the table). So my job will be, only need to add rows at the 1st table, the table bellows all will generate rows automatically based on numbers of row in the 1st table. the are the coding I used now to add row for the 1st table. I hope someone can solve this issue for me, thx.Sub InsertNumRows()

    ActiveCell.EntireRow.Copy

    Dim Rng As Long

    Application.DisplayAlerts = False
    On Error Resume Next
    Rng = InputBox("Enter number of rows required.")
    On Error GoTo 0
    Application.DisplayAlerts = True

    If Rng = 0 Then
    MsgBox "You didn't specify a range!"
    Exit Sub

    Else
    Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(Rng, 0)).Select
    Selection.EntireRow.Insert Shift:=xlDown
    End If

    End Sub
  • To post as a guest, your comment is unpublished.
    devin · 1 years ago
    Love the code! how do i set the start range to skip the first row (Column Headers) and start on row 2?
    • To post as a guest, your comment is unpublished.
      skyyang · 1 years ago
      Hi, Devin,
      To skip the first header row, please apply the following VBA code:

      Sub insertrows()
      Dim I As Long
      Dim xCount As Integer
      LableNumber:
      xCount = Application.InputBox("Number of Rows", "Kutools for Excel", , , , , , 1)
      If xCount < 1 Then
      MsgBox "the entered number of rows is error ,please enter again", vbInformation, "Kutools for Excel"
      GoTo LableNumber
      End If
      For I = Range("A" & Rows.CountLarge).End(xlUp).Row To 2 Step -1
      Rows(I).Copy
      Rows(I).Resize(xCount).Insert
      Next
      Application.CutCopyMode = False
      End Sub

      Please try it, hope it can help you!
  • To post as a guest, your comment is unpublished.
    naz · 1 years ago
    Really thanks for your support !!!!
  • To post as a guest, your comment is unpublished.
    May · 1 years ago
    Hi, how can I change the code to include the following

    1. duplicate based on number of days
    2. change column EOM from end of month to daily date
  • To post as a guest, your comment is unpublished.
    Talen · 1 years ago
    I used this macros in the past and it has always worked until lately. Any insight why it would only duplicate the top row even when using the multiple row macros? I have removed all filters/frozen panes.
  • To post as a guest, your comment is unpublished.
    Adnan · 1 years ago
    I want to duplicate rows based on a parameter. For example, I have a column named meeting duration time. If that column is more than 1, I want to duplicate meeting ID rows based on that number. If meeting duration is 2 hours, then duplicate meetingID two times. If meeting is 3 hours then duplicate three times.
    half an hour increments can be roundup to the hour.

    MeetingID Time of Start Time of End Meeting Duration
    43117 9:00 AM 11:00 AM 02:00
    43580 9:30 AM 11:00 AM 01:30
    42699 10:00 AM 11:30 AM 01:30
    12345 01:00 PM 2:00 PM 01:00
    • To post as a guest, your comment is unpublished.
      Erin · 1 years ago
      I have the same problem. Have you found a solution?
      • To post as a guest, your comment is unpublished.
        skyyang · 1 years ago
        Hi, guys,
        May be the following VBA code can do you a favor, please apply it:
        Sub insertrows()
        Dim I As Long
        Dim xRg As Range
        Dim xHour, xMin As Long
        On Error Resume Next
        Application.ScreenUpdating = False
        For I = Range("D" & Rows.CountLarge).End(xlUp).Row To 1 Step -1
        xHour = 0
        Set xRg = Range("D" & I)
        xHour = Hour(xRg.Value) + 1
        xMin = Minute(xRg.Value)
        If xMin < 30 Then xHour = xHour - 1
        Rows(I).Copy
        Rows(I).Resize(xHour).Insert
        Next
        Application.ScreenUpdating = True
        Application.CutCopyMode = False
        End Sub

        Please try it. Hope it can help you!
  • To post as a guest, your comment is unpublished.
    Rushabh Patel · 1 years ago
    i want to generate duplicate rows randomly,

    for eg. generate random duplicate rows between 20 to 80.


    what will be updated code for the following


    Sub insertrows()
    'Updateby Extendoffice 2016616
    Dim I As Long
    Dim xCount As Integer
    LableNumber:
    xCount = Application.InputBox("Number of Rows", "Kutools for Excel", , , , , , 1)
    If xCount < 1 Then
    MsgBox "the entered number of rows is error ,please enter again", vbInformation, "Kutools for Excel"
    GoTo LableNumber
    End If
    For I = Range("A" & Rows.CountLarge).End(xlUp).Row To 1 Step -1
    Rows(I).Copy
    Rows(I).Resize(xCount).Insert
    Next
    Application.CutCopyMode = False
    End Sub
  • To post as a guest, your comment is unpublished.
    mate · 1 years ago
    real nice macro mate!
  • To post as a guest, your comment is unpublished.
    BJ Conley · 1 years ago
    Awesome Macro - Saved me so much time!
  • To post as a guest, your comment is unpublished.
    Zach · 2 years ago
    Thank you!