XL pour MAC Excel : Dupliquer une ligne X fois

  • Initiateur de la discussion Initiateur de la discussion ism
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ism

XLDnaute Nouveau
Bonjour,

Le fichier Excel comporte 108 lignes. La première ligne comporte le nom de chaque colonne.
Je souhaite que chaque ligne (avec plusieurs colonnes) soit dupliquée 30 fois avant qu'apparaisse la suivante :
Cela doit se faire dans le même fichier et sur la même feuille.
Quelqu'un pourrait-il m'expliquer le calcul que je dois faire?
Je ne travaille pas avec excel, mais j'aimerai comprendre comment je peux créer une fonction ou une macro pour obtenir le résultat.
Par avance je vous remercie.
Isa.

Capture d’écran 2019-10-03 à 16.58.16.png
 
Bonjour le fil, ism

ism
Pas sur d'avoir tout compris
Testes cette macro de test sur un classeur vierge et dis-moi si je me rapproche du but à atteindre, stp.
VB:
Sub Dupliquer()
Cells.Clear
    Range("A1") = "ITEM1"
    Range("A1").AutoFill Destination:=Range("A1:E1"), Type:=xlFillDefault
    Range("A1:E1").Select
    Range("A2") = "1000"
    Range("A2").AutoFill Destination:=Range("A2:E2"), Type:=xlFillSeries
    NB_Fois = InputBox("Combien de fois on duplique la ligne?", "Test", 30)
    Range("A2:E" & NB_Fois + 1).FillDown
End Sub
 
Re

En relisant, ton premier message plus attententivement, je crois avoir percuté
Je te laisse tester et trouver le petit souci de cette macro qui ne fonctionne qu'à 99% 😉
VB:
Sub Duplication_II()
Dim Plg As Range, i&
Set Plg = Range("A2:A108")
Application.ScreenUpdating = False
For i = Plg.Rows.Count To 2 Step -1
Plg.Rows(i).Resize(29).EntireRow.Insert
Plg.Rows(i - 1).Resize(30).FillDown
Next i
End Sub
 
RE

Avec cette version, plus de petit souci (et c'est plus rapide)
VB:
Sub Dupliquer_III()
Dim vArray
Dim i&, LigA&, NB_Dupli&, strC$
vArray = Range("A2:A108")
Range("A2:A108").ClearContents
LigA = 2
NB_Dupli = 29
For i = 2 To UBound(vArray, 1)
strC = vArray(i, 1)
Range("A" & LigA & ":A" & LigA + NB_Dupli).Value = strC
LigA = LigA + NB_Dupli + 1
Next
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2016 Syntaxe
Réponses
129
Affichages
2 K
Réponses
17
Affichages
468
Retour