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:
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...
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
Pourriez-vous m'aider SVP ? J'espère avoir été assez clair dans mon explication...
Partager