Imbrication boucle
Résolu
camcam1404
Messages postés
68
Statut
Membre
-
camcam1404 Messages postés 68 Statut Membre -
camcam1404 Messages postés 68 Statut Membre -
Bonjour,
Dans le programme ci-dessous la boucle (For i=2 to Lastrow) ne fonctionne pas correctement.
Je ne comprends pas pourquoi sachant que individuellement, c'est à dire en dehors du For Each elle marche.
Dans le programme ci-dessous la boucle (For i=2 to Lastrow) ne fonctionne pas correctement.
Je ne comprends pas pourquoi sachant que individuellement, c'est à dire en dehors du For Each elle marche.
Sub GGS()
Dim f As Worksheet
Dim lastrow As Long
Dim i As Long
For Each f In ActiveWorkbook.Worksheets
If UCase(f.Name) Like "*DATE*" Then
f.Range("B:B").Insert
f.Range("C:C").Insert
f.Rows("1:1").Insert
lastrow = f.Range("A1").End(xlDown).Row
For i = 2 To lastrow
f.Cells(i, 2) = Right(f.Cells(i, 1).Value, 4)
Next i
f.Range("C1").Value = "?"
End If
Next f
End Sub
1 réponse
-
Bonjour Camcam, bonjour le forum,
Que vaut la variable lastrow quand tu lances la boucle ?
À plus,
ThauTheme-
-
-
Salut Michel et Bonne Année également.
Pour atteindre la dernière cellule éditée d'une colonne je recommande plutôt :lastrow = f.Range("A" & Application.Rows.Count).End(xlUp).Row
à moins bien sûr d'avoir des données dans la colonne A sous ton tableau...
Sinon, si tu a des en-têtes dans la ligne 1 :lastrow = IIf(f.Range("A2") = "", 2, f.range("A1").End(xlDown).Row) -
-
Bonjour
A1 est vide suit eà ta ligne f.Rows("1:1").Insert
quand tu écris
Range("A1").End(xlDown).Row
tu demandes en fait: "regarde en descendant (xldown) la 1° ligne=égale à A1"---> 1° ligne non vide
donc si A2 n'est pas vide lastrow=2
et forcémement
For i = 2 To lastrow ---> for i=2 to 2 --> pas de boucle
-