Bonjour,

J'ai besoin de ne conserver que certaines lignes en fonction du premier caractère de la valeur des cellules d'une feuille de données. Si le nombre de caractères est inférieur à 6, cela signifie que le(s) caractère(s) manquant(s) pour arriver à 6 sont un (des) 0, placé(s) en début de chaîne. Par exemple, si j'ai 123456, pas de problème, si j'ai 1234, cela signifie que la "bonne" valeur est 001234. Je souhaite donc passer par l'équivalent de la formule TEXTE afin d'avoir tous mes comptes au même format. Ci-dessous le code que j'ai écrit. L'embêtant c'est que lors de l'exécution de la macro, celle-ci ne se lance pas car Excel me dit "Sub or Function not defined" en me surlignant "Text". Que faut-il écrire pour arriver au résultat voulu ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Sub Test()
 
    With Sheets("Compile BS")
            Dim LR As Integer, Account As Range, AccClass As String
            LR = .Cells(.Rows.Count, 1).End(xlUp).Row
            For Each Account In .Range("A2:A" & LR)
            AccClass = Left(Text(Account.Value, "000000"), 1)
            If AccClass = "4" Or AccClass = "7" Then Rows(Account).Delete
            Next Account
    End With
End Sub
Je vous remercie par avance pour votre aide !

Runsh

J'ai remplacé la définition de mon AccClass par :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
AccClass = Left(Format(Account.Value, "000000"), 1)
et ça ne me bloque plus. Mon problème maintenant c'est que je n'ai aucune ligne qui a été supprimée alors qu'il devrait y en avoir justement. Pouvez-vous m'expliquer pourquoi ma boucle ne fonctionne pas ?
Merci d'avance !

Cordialement,

Runsh