Note: The other languages of the website are Google-translated. Back to English
Se connecter  \/ 
x
or
x
INSCRIPTION  \/ 
x

or

Comment copier et insérer une ligne 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 3 fois sur la ligne suivante comme illustré ci-dessous. Comment pourriez-vous gérer ce travail dans Excel?


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

Si vous souhaitez dupliquer une seule ligne spécifique x fois, le code VBA suivant peut vous aider, procédez comme suit:

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 le 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, veuillez appuyer sur F5 clé pour exécuter ce code, et une boîte de dialogue s'affiche pour vous rappeler d'entrer le nombre de fois que vous souhaitez dupliquer, voir 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 facilement chaque ligne plusieurs fois en fonction d'un numéro spécifique

Normalement, il n'y a pas de bonne méthode pour copier et insérer des lignes plusieurs fois sauf pour gérer manuellement la copie et l'insertion. Mais avec Kutools pour Excel's Dupliquer les lignes / colonnes en fonction de la valeur de la cellule fonctionnalité, vous pouvez résoudre ce problème avec facilité. Cliquez pour télécharger Kutools for Excel!

Kutools pour Excel: avec plus de 300 compléments Excel pratiques, essai gratuit sans limitation dans 60 jours. Téléchargez et essayez gratuitement maintenant!


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

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

1. Maintenez le ALT + F11 clés, puis il ouvre le 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 s'affiche pour vous rappeler d'entrer le nombre de fois que vous souhaitez dupliquer pour chaque enregistrement, voir capture d'écran:

4. Puis clique OK, et chaque ligne a été copiée et insérée 3 fois sous celles actives, voir capture d'écran:

Notes: Dans le code ci-dessus, le A indique que la plage de données commence à 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 avec une fonctionnalité impressionnante

Peut-être que vous n'êtes pas familier avec le code VBA ou que vous vous inquiétez du fait que le code plantera vos données. Ici, je vais vous présenter une fonctionnalité utile, Kutools pour Excel's Dupliquer des lignes / colonnes en fonction de 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 Dupliquer des lignes / colonnes en fonction de la valeur de la cellule fonctionnalité, tout d'abord, vous devez télécharger le Kutools pour Excel, puis appliquez la fonction rapidement et facilement.

Après l'installation de Kutools pour Excel, veuillez faire comme ceci:

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

2. Cliquez Kutools > insérer > Dupliquer des lignes / colonnes en fonction de 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 la durée de répétition pour dupliquer les lignes, voir 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 un essai gratuit maintenant!


Les meilleurs outils de productivité de bureau

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 e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtrée...
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammes...
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellules...
  • 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 par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDF...
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets 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 des centaines de clics de souris chaque jour!
bas de cabine
Say something here...
symbols left.
You are guest
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.
    Faisal Akhter · 1 years ago
    It took more time to make google understand what I want, But after I found this page, it takes a few minutes to get what I was searching for. Many thanks 👍
  • To post as a guest, your comment is unpublished.
    Carl Fernandes · 1 years ago
    I desire to have the VBA Code for Copy And Insert Each Row Multiple Times Based On A Specific Number , please assist, Thank yo
    u
    • To post as a guest, your comment is unpublished.
      skyyang · 1 years ago
      Hi, Carl,
      To copy and insert the rows multiple times based on specific numbers, please apply the below code:
      Sub CopyRow() 'UpdatebyExtendoffice Dim xRg As Range Dim xCRg As Range Dim xFNum As Integer Dim xRN As Integer On Error Resume Next SelectRange: xTxt = ActiveWindow.RangeSelection.Address Set xRg = Application.InputBox("Select the list of numbers to copy the rows based on: ", "Kutools for Excel", xTxt, , , , , 8) If xRg Is Nothing Then Exit Sub If xRg.Columns.Count > 1 Then MsgBox "Please select single column!" GoTo SelectRange End If Application.ScreenUpdating = False For xFNum = xRg.Count To 1 Step -1 Set xCRg = xRg.Item(xFNum) xRN = CInt(xCRg.Value) With Rows(xCRg.Row) .Copy .Resize(xRN).Insert End With Next Application.ScreenUpdating = True End Sub
      Please try, hope it can help you!

  • To post as a guest, your comment is unpublished.
    Chuck · 1 years ago
    This code works great. I have a situation where I am using Excel as a quote form. Worksheet one is the actual bid, and worksheet two is our cost page. When I insert the copied rows, I need it to do so on both pages. I have tried adding some code to select both pages, but it does not seem to work. Any help is greatly appreciated.
  • To post as a guest, your comment is unpublished.
    Eric · 1 years ago
    For the second VBA code (VBA code: Duplicate each row multiple times) I keep getting as run time error: 1004
  • To post as a guest, your comment is unpublished.
    Guss · 1 years ago
    Hello, is it possible to use different sizes(values) for each row? I am trying using vector, but it is not working.
    For instance :
    Rows(I).Resize(xCount(y) ).Insert

    Where the values saved in xCount(y) are read from a table.

    • To post as a guest, your comment is unpublished.
      skyyang · 1 years ago
      Hello, Guss,
      May be the below article can help you, please check it:
      https://www.extendoffice.com/documents/excel/4054-excel-duplicate-rows-based-on-cell-value.html
  • To post as a guest, your comment is unpublished.
    Ken · 1 years ago
    hi everyone.. Thank you in advance for you help!!

    The VBA code to duplicate one specific row multiple times work perfectly until you use a filter. I wonder if someone can help me to solve this issue. I need a code that work even if you have some values filtered. I am using a large amount of data that is sort by locations. The code partially work, it pastes the number of row desire but no data or format when I have applied a filter.
  • To post as a guest, your comment is unpublished.
    Ismael · 2 years 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 · 2 years 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.
    sfav1010 · 2 years 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 · 2 years 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.
    deeptech04 · 2 years 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 · 2 years ago
    How can I do this for columns?
  • To post as a guest, your comment is unpublished.
    Jamar · 2 years ago
    how do I do this for columns?
  • To post as a guest, your comment is unpublished.
    Andreea · 2 years ago
    Love it! It works every time! Thank you so much for this :)
  • To post as a guest, your comment is unpublished.
    sashi7070@gmail.com · 3 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 · 3 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 · 3 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 · 3 years ago
    Really thanks for your support !!!!
  • To post as a guest, your comment is unpublished.
    mybyby@gmail.com · 3 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 · 3 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 · 3 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 · 3 years ago
      I have the same problem. Have you found a solution?
      • To post as a guest, your comment is unpublished.
        skyyang · 3 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 · 3 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 · 3 years ago
    real nice macro mate!
  • To post as a guest, your comment is unpublished.
    BJ Conley · 3 years ago
    Awesome Macro - Saved me so much time!
  • To post as a guest, your comment is unpublished.
    Zach · 3 years ago
    Thank you!