Note: The other languages of the website are Google-translated. Back to English

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.

2Cliquez sur 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.

2Cliquez sur 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:

2Cliquez sur 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 Catégorie 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éeplus
  • 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 gammesplus
  • 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 cellulesplus
  • 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 PDFplus
  • 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
Commentaires (31)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Merci !
Ce commentaire a été minimisé par le modérateur sur le site
Macro géniale - M'a fait gagner tellement de temps !
Ce commentaire a été minimisé par le modérateur sur le site
vraiment sympa mon pote macro !
Ce commentaire a été minimisé par le modérateur sur le site
je veux générer des lignes en double au hasard,

pour par ex. générer des lignes dupliquées aléatoires entre 20 et 80.


quel sera le code mis à jour pour ce qui suit


Sous insertrows()
'Mettre à jour par Extendoffice 2016616
Dim I As Long
Dim xCount As Integer
Numéro d'étiquette :
xCount = Application.InputBox("Nombre de lignes", "Kutools for Excel", , , , , , 1)
Si xCount < 1 Alors
MsgBox "le nombre de lignes entré est une erreur, veuillez entrer à nouveau", vbInformation, "Kutools for Excel"
Aller au numéro d'étiquette
Si fin
For I = Range("A" & Rows.CountLarge).End(xlUp).Row To 1 Step -1
Lignes(I).Copier
Lignes(I).Resize(xCount).Insert
Suivant
Application.CutCopyMode = Faux
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Je souhaite dupliquer des lignes en fonction d'un paramètre. Par exemple, j'ai une colonne nommée durée de la réunion. Si cette colonne est supérieure à 1, je souhaite dupliquer les lignes d'ID de réunion en fonction de ce nombre. Si la durée de la réunion est de 2 heures, dupliquez meetingID deux fois. Si la réunion dure 3 heures, dupliquez-la trois fois.
des incréments d'une demi-heure peuvent être arrondis à l'heure.

MeetingID Heure de début Heure de fin Durée de la réunion
43117 9:00 11:00 02:00
43580 9:30 11:00 01:30
42699 10:00 11:30 01:30
12345 01:00 2:00 01:00
Ce commentaire a été minimisé par le modérateur sur le site
J'ai le même problème. Avez-vous trouvé une solution?
Ce commentaire a été minimisé par le modérateur sur le site
Salut les gars,
Peut-être que le code VBA suivant peut vous rendre service, veuillez l'appliquer :
Sous insertrows()
Dim I As Long
Dim xRg As Range
Dim xHeure, xMin Tant que
On Error Resume Next
Application.ScreenUpdating = Faux
For I = Range("D" & Rows.CountLarge).End(xlUp).Row To 1 Step -1
xHeure = 0
Set xRg = Range("D" & I)
xHeure = Heure(xRg.Valeur) + 1
xMin = Minute(xRg.Valeur)
Si xMin < 30 Alors xHeure = xHeure - 1
Lignes(I).Copier
Lignes(I).Redimensionner(xHeure).Insérer
Suivant
Application.ScreenUpdating = True
Application.CutCopyMode = Faux
End Sub

Essayez-le. J'espère que ça peut t'aider!
Ce commentaire a été minimisé par le modérateur sur le site
J'ai utilisé ces macros dans le passé et cela a toujours fonctionné jusqu'à récemment. Une idée pourquoi cela ne dupliquerait-il que la ligne du haut même lors de l'utilisation des macros à plusieurs lignes? J'ai supprimé tous les filtres/volets figés.
Ce commentaire a été minimisé par le modérateur sur le site
Salut, comment puis-je changer le code pour inclure ce qui suit

1. dupliquer en fonction du nombre de jours
2. changer la colonne EOM de la fin du mois à la date quotidienne
Ce commentaire a été minimisé par le modérateur sur le site
Vraiment merci pour votre soutien !!!!
Ce commentaire a été minimisé par le modérateur sur le site
J'adore le code ! comment définir la plage de départ pour ignorer la première ligne (en-têtes de colonne) et commencer à la ligne 2 ?
Ce commentaire a été minimisé par le modérateur sur le site
Salut Devin,
Pour ignorer la première ligne d'en-tête, veuillez appliquer le code VBA suivant :

Sous insertrows()
Dim I As Long
Dim xCount As Integer
Numéro d'étiquette :
xCount = Application.InputBox("Nombre de lignes", "Kutools for Excel", , , , , , 1)
Si xCount < 1 Alors
MsgBox "le nombre de lignes entré est une erreur, veuillez entrer à nouveau", vbInformation, "Kutools for Excel"
Aller au numéro d'étiquette
Si fin
For I = Range("A" & Rows.CountLarge).End(xlUp).Row To 2 Step -1
Lignes(I).Copier
Lignes(I).Resize(xCount).Insert
Suivant
Application.CutCopyMode = Faux
End Sub

S'il vous plaît essayez-le, j'espère que cela peut vous aider!
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, j'ai besoin d'aide, voici à quoi ressemble mon tableau, par exemple, lorsque j'ajoute 2 lignes à la fin de mon 1er tableau, je veux que le vba m'aide à faire la même chose pour le tableau ci-dessous (ajouter 2 lignes à la fin du tableau). Donc, mon travail sera, seulement besoin d'ajouter des lignes à la 1ère table, la table ci-dessous générera toutes les lignes automatiquement en fonction du nombre de lignes dans la 1ère table. ce sont les codes que j'ai utilisés maintenant pour ajouter une ligne pour le 1er tableau. J'espère que quelqu'un pourra résoudre ce problème pour moi, thx.Sub InsertNumRows()

ActiveCell.EntireRow.Copy

Dim Rng As Long

Application.DisplayAlerts = Faux
On Error Resume Next
Rng = InputBox("Entrez le nombre de lignes requises.")
En cas d'erreur GoTo 0
Application.DisplayAlerts = Vrai

Si Rng = 0 Alors
MsgBox "Vous n'avez pas spécifié de plage !"
Exit Sub

autre
Plage(ActiveCell.Offset(1, 0), ActiveCell.Offset(Rng, 0)).Sélectionnez
Selection.EntireRow.Insert Shift :=xlDown
Si fin

End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Aimer! Ça marche à chaque fois ! Merci beaucoup pour ça :)
Ce commentaire a été minimisé par le modérateur sur le site
comment puis-je faire cela pour les colonnes?
Ce commentaire a été minimisé par le modérateur sur le site
Comment puis-je faire cela pour les colonnes ?
Ce commentaire a été minimisé par le modérateur sur le site
comment effectuer la même action avec des cellules sélectionnées en utilisant VB,


J'ai besoin de répéter quelques cellules sélectionnées (lignes et colonnes) x nombre de fois dans la même feuille et dans le même ordre que :

line1
line2
line3

line1
line2
line3
Ce commentaire a été minimisé par le modérateur sur le site
salut cela a très bien fonctionné, seulement j'ai besoin de deux lignes copiées N nombre de fois. Pouvez-vous s'il vous plaît ajuster le code afin que lorsque je sélectionne deux lignes, il copie ensuite ces deux lignes vers le bas N fois? Merci pour votre aide
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Sal,
Si vous ne devez copier que deux lignes plusieurs fois, il vous suffit d'utiliser le code VBA 1 dans cet article, appliquer le code deux fois résoudra votre problème. S'il vous plaît essayez, j'espère que cela peut vous aider!
Ce commentaire a été minimisé par le modérateur sur le site
Copiez et insérez chaque ligne plusieurs fois avec le code VBA

Dans le code VBA, comment puis-je sélectionner la ligne de départ
Ce commentaire a été minimisé par le modérateur sur le site
No funciona con Windows 2019, deseo use la función en mención pero simplemente no hace absolutamente nada
Ce commentaire a été minimisé par le modérateur sur le site
salut tout le monde.. Merci d'avance pour votre aide!!

Le code VBA pour dupliquer une ligne spécifique plusieurs fois fonctionne parfaitement jusqu'à ce que vous utilisiez un filtre. Je me demande si quelqu'un peut m'aider à résoudre ce problème. J'ai besoin d'un code qui fonctionne même si certaines valeurs sont filtrées. J'utilise une grande quantité de données qui sont triées par emplacements. Le code fonctionne partiellement, il colle le nombre de ligne souhaité mais pas de données ni de format lorsque j'ai appliqué un filtre.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, est-il possible d'utiliser différentes tailles (valeurs) pour chaque ligne ? J'essaie d'utiliser le vecteur, mais cela ne fonctionne pas.
Par exemple :
Lignes(I).Resize(xCount(y) ).Insert

Où les valeurs enregistrées dans xCount(y) sont lues à partir d'une table.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Guss,
Peut-être que l'article ci-dessous peut vous aider, veuillez le vérifier :
https://www.extendoffice.com/documents/excel/4054-excel-duplicate-rows-based-on-cell-value.html
Ce commentaire a été minimisé par le modérateur sur le site
Pour le deuxième code VBA (code VBA : dupliquer chaque ligne plusieurs fois), je continue à recevoir une erreur d'exécution : 1004
Il n'y a pas encore de commentaires postés ici
TÉLÉCHARGER PLUS
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés