Avant d'écrire la première ligne de code VBA, se poser d'abord la question :
« Excel dispose-t-il d'une fonction permettant de résoudre mon besoin, même partiellement ? »
Quand la réponse est affirmative, nombre d'usines à gaz pures VBA sont évitées !
Ici, y-a-t-il une fonction permettant de supprimer l'espace en fin d'une plage de cellules ?
Rien que par la consultation de l'aide d'Excel - et pas celle du VBA - des fonctions manipulant du texte,
il y en a une qui est plutôt explicite : SUPPRESPACE !
Sachant que même dans une version française les fonctions et le VBA reste nativement en anglais,
voici comment s'en sortir s'en se perdre sur le net !
Laisser une colonne vide après les données et par exemple saisir cette formule de calculs dans la cellule L2 :
=SUPPRESPACE(A2) …
Dans la fenêtre Exécution du VBE entrer ? [L2].FormulaR1C1 et valider : la formule native apparait en dessous !
Le code utilise donc juste cette formule native sans boucle ni même une variable tableau :
1 2 3 4 5 6 7 8 9
| Sub Demo1()
Application.ScreenUpdating = False
With Feuil1.Cells(1).CurrentRegion.Columns(1).Offset(, 11)
.FormulaR1C1 = "=TRIM(RC[-11])"
.Offset(, -11).Value = .Value
.Clear
End With
End Sub |
Comme annoncé, exécution immédiate en moins de dix lignes de code ‼
Les fonctions d'Excel étant déjà compilées, toute opération VBA est interprétée et donc forcément plus longue …
__________________________________________________________________________________________________
Il n'y a pas que les aigles qui atteignent les sommets, les escargots aussi mais ils en bavent !
Partager