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 ?
Je vous remercie par avance pour votre aide !
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
Runsh
J'ai remplacé la définition de mon AccClass par :
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 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part AccClass = Left(Format(Account.Value, "000000"), 1)
Merci d'avance !
Cordialement,
Runsh
Partager