EXCEL copier les lignes par un multiplicateur si 1 valeur nulle

Résolu
dlcmbe58 -  
dlcmbe58 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaite copier des lignes d'une feuille à une autre autant de fois que le nombre inscrit dans la dernière colonne de la feuille 1 (ici la colonne E).

J'ai trouvé ce code ci-dessous qui fonctionne (merci à michel_m), cependant il nécessite de mettre une valeur non nulle dans la colonne E, or je souhaite pouvoir laisser une cellule vide pour ne pas que la ligne correspondante soit copier.

Option Explicit 

Sub dupliquer_n_fois()
Dim Derlig1 As Long, Lig As Long, Nbre As Integer, T_in()
Dim Derlig2 As Long

Application.ScreenUpdating = False
Sheets(2).Range("A2:D30000").Clear

With Sheets(1)
Derlig1 = .Columns("A").Find("*", , , , , xlPrevious).Row
For Lig = 2 To Derlig1
Nbre = .Cells(Lig, "E")
T_in = .Range(.Cells(Lig, "A"), .Cells(Lig, "D")).Value

With Sheets(2)
Derlig2 = .Columns("A").Find("", .Range("A1")).Row
.Cells(Derlig2, "A").Resize(Nbre, 4) = T_in
End With
Next
End With
Sheets(2).Select
End Sub


Merci d'avance.



A voir également:

1 réponse

Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   526
 
Bonjour,

Il suffit de placer une condition pour le cas où Nbre est nul.
Option Explicit
Sub dupliquer_n_fois()
Dim Derlig1 As Long, Lig As Long, Nbre As Integer, T_in()
Dim Derlig2 As Long
Application.ScreenUpdating = False
Sheets(2).Range("A2:D30000").Clear
With Sheets(1)
Derlig1 = .Columns("A").Find("*", , , , , xlPrevious).Row
For Lig = 2 To Derlig1
Nbre = .Cells(Lig, "E")
If Nbre > 0 Then
T_in = .Range(.Cells(Lig, "A"), .Cells(Lig, "D")).Value
With Sheets(2)
Derlig2 = .Columns("A").Find("", .Range("A1")).Row
.Cells(Derlig2, "A").Resize(Nbre, 4) = T_in
End With
End If
Next
End With
Sheets(2).Select
End Sub

A+
0
dlcmbe58 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
 
Parfait, je viens de tester ça marche nickel. Merci !!! :-)
0