Problème avec If dans une boucle
Bonjour,
Pour retraiter les données d'un fichier, je détermine une classe de compte. Selon, cette classe, alors je supprime des lignes entières en fonction du nombre de caractère de ce compte. Voilà le bout de code que j'ai écris:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Sub Test()
Application.ScreenUpdating = False
With Sheets("Original data")
Dim i As Long, Acc As String
For i = .Cells(.Rows.Count, 1).End(xlUp).Row To 2 Step -1
Acc = Len(.Cells(i, 1))
If Left(.Cells(i, 1).Value, 1) <> "6" Or Left(.Cells(i, 1).Value, 1) <> "7" Then
If Acc = 5 Then
.Cells(i, 1).Offset(0, 1).Value = "Couic"
End If
End If
Next i
End With
Application.ScreenUpdating = True
End Sub |
Ne maîtrisant pas encore parfaitement VBA, j'y vais pas à pas, d'où une boucle For... To Step -1 alors que je ne supprime rien (pour l'instant, je ne fais qu'identifier les lignes qui vont être supprimées dans la version finale). D'où également aucune alternative proposée si les conditions ne sont pas remplies (et donc la succession de End If à la fin sans rien). Problème dès le début, mes cellules dont le premier caractère est un 6 ou un 7 et qui ont un NBCAR de 5 se voit attribuer la valeur "Couic". Je ne vois pas pourquoi...
Pourriez-vous m'aider SVP ? J'espère avoir été assez clair dans mon explication...