Bonjour
Soit les 11 lignes suivantes dans la colonne A
test
a
b
a
b
b
a
a
b
a
a
Je souhaite que lorsque la valeur = a que la ligne soit copiée/collée sous celle-ci.
Le code s'arrête avant d'avoir traité toute la colonne A.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Sub test1() Dim j As Integer For j = 2 To Cells(Columns(1).Cells.Count, 1).End(xlUp).Row + 1 If Cells(j, 1) = "a" Then Rows(j).Copy Rows(j).Insert Cells(j + 1, 2) = "Insertion" j = j + 1 Else End If Next j MsgBox j End Sub
Cells(Columns(1).Cells.Count, 1).End(xlUp).Row est bien mis à jour, par contre on dirait que la boucle FOR ne tient compte que de ses valeurs au départ!?
Le boucle en While Wend marche:
Avez-vous une explication pourquoi cela bloque dans FOR NEXT?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Sub test() derniere_ligne = Cells(Columns(1).Cells.Count, 1).End(xlUp).Row Dim j As Integer j = 2 While j <= Cells(Columns(1).Cells.Count, 1).End(xlUp).Row + 1 If Cells(j, 1) = "a" Then Rows(j).Copy Rows(j).Insert Cells(j + 1, 2) = "Insertion" j = j + 2 Else j = j + 1 End If Wend MsgBox j End Sub
Il me semble avoir déjà utilisé cela sans problème.
Merci d'avance
Partager