J'ai un fichier dans lequel j'ai des données qui sont renseignées en lignes mais dans lequel j'ai des "trous". par exemple, mes données sont renseignées en ligne 3 et d'autres en ligne 6, autres en ligne 10 etc... j'aimerai trouver une solution pour que mes éléments de la ligne 3 soient recopiés jusqu'à la ligne 5 (ligne -1 d'une cellule ou il y a du texte) que ceux de la ligne 6 soient recopiés jusqu'à la ligne 9 et ainsi de suite jusqu'à la fin du fichier.
Sub complete()
fin = Range("A" & Rows.Count).End(xlUp).Row
i = 3
While i < fin
inter = Range("A" & i).End(xlDown).Row - 1
If inter > i Then
Range("A" & i & ":C" & i).AutoFill Destination:=Range("A" & i & ":C" & inter), Type:=xlFillDefault
i = inter + 1
Else
i = i + 1
End If
Wend
End Sub
plutot avec ce code.. qui évite d'écraser certaines lignes qui n'ont pas besoin d'etre recopiées..
Code:
Sub complete()
fin = Range("A" & Rows.Count).End(xlUp).Row
i = 3
inter = 4
While i < fin
remplir = False
While Range("A" & inter) = ""
inter = inter + 1
remplir = True
Wend
If remplir Then
Range("A" & i & ":C" & i).AutoFill Destination:=Range("A" & i & ":C" & inter - 1), Type:=xlFillDefault
i = inter
inter = i + 1
Else: i = i + 1: inter = i + 1
End If
Wend
End Sub
Sub Remplir()
Dim MonTab, i As Long
With Worksheets("Feuil1")
For i = 3 To .Range("A" & .Rows.Count).End(xlUp).Row
If .Cells(i, 1) = "" Then
.Cells(i, 1).Resize(1, 3) = MonTab
Else
MonTab = .Range("A" & i & ":C" & i)
End If
Next
End With
End Sub