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 : 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()
 
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...