Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro dupplication de ligne (nbre dupplications variable)

franck70

XLDnaute Junior
Bonjour à tout le forum,

Je souhaite créer une macro qui va me duppliquer une ligne le nombre de fois qui est indiqué dans une des cellules de la ligne à duppliquer (exemple du tableau de départ et d'arrivéer dans fichier joint)
Je ne sais pas du tout comment faire car le programme dépasse mes compétences en macro : il faut "enregistrer en mémoire" le nombre de ligne à duppliquer, les duppliquer, mais tenir compte du fait qu'il ne doit pas à nouveau duppliquer les lignes qu'on vient de créer. Bref, le code est surement bref, mais assez complexe je pense.

Je vous remercie d'avance pour votre aide
 

Pièces jointes

  • Macro dupplication.xlsm
    9.9 KB · Affichages: 68

jp14

XLDnaute Barbatruc
Re : Macro dupplication de ligne (nbre dupplications variable)

Bonjour

Ci dessous un code à tester
Code:
Private Sub CommandButton1_Click()

Dim Cellule As Range
Dim Nomfeuille1 As String
Dim Col As String
Dim i As Byte
'parametre
Nomfeuille1 = "Feuil1"
Col = "c"
With Sheets("Feuil2")

For Each Cellule In Sheets(Nomfeuille1).Range(Col & "2:" & Col & Sheets(Nomfeuille1).Range(Col & Sheets(Nomfeuille1).Rows.Count).End(xlUp).Row)
    If IsNumeric(Cellule.Value) Then
        For i = 1 To CByte(Cellule.Value) + 1
            Sheets("Feuil1").Rows(Cellule.Row).Copy _
         Destination:=.Rows(.Range("A" & .Rows.Count).End(xlUp).Row + 1)
        Next i
    End If
Next Cellule

End With

End Sub
Les données sont copiées de la feuille 1 dans la feuille 2
JP
 
Dernière édition:

Cousinhub

XLDnaute Barbatruc
Re : Macro dupplication de ligne (nbre dupplications variable)

Bonsoir,

Une autre proposition :

Code:
Sub duppliq()
Dim Cel As Range
Dim I As Long
Application.ScreenUpdating = False
Columns("E:G").Clear
Range("E1").Resize(1, 3).Value = Range("A1").Resize(1, 3).Value
For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    Cells(Rows.Count, 5).End(xlUp)(2).Resize(Cells(I, 3) + 1, 3).Value = Cells(I, 1).Resize(1, 3).Value
Next I
End Sub

Bonne soirée
 

franck70

XLDnaute Junior
Re : Macro dupplication de ligne (nbre dupplications variable)

Bonjour jp14 et bhbh

Merci beaucoup pour votre aide. Ca fonctionne très bien

bhbh, j'ai une petite question. A quel endroit est défini le fait que le nombre de ligne à duppliquer est dans la 3ème colonne ? C'est juste au cas où je veuille une macro simiulaire mais en mettant le compteur dans la 2ème colonne par exemple

Merci d'avance
 

jp14

XLDnaute Barbatruc
Re : Macro dupplication de ligne (nbre dupplications variable)

Bonjour
Il suffit de changer le nom de la colonne
Col = "c"

JP
 

Discussions similaires

Réponses
4
Affichages
264
Réponses
7
Affichages
394
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…