Bonjour à tou(te)s,
J'essaye de me lancer dans les macros VBA pour excel, mais c'est pas gagné.
j'ai un fichier excel composé d'une colonne qui correspond à différentes lignes d'un texte.
Ex :
Ce matin (1)
un lapin a été (2)
tué par un écolo (3)
Comme vous pouvez le voir, le numéro de la ligne est écrit entre parenthèses à la fin à chaque fois.
Ce que j'aimerai faire, c'est créer une macro qui va supprimer ce numéro de ligne. (j'ai 10 feuilles de 7000 lignes chacune comme ça).
Sur le principe de l'algorithme, je crois avoir une solution satisfaisante.
Je vais :
Alors j'arrive à faire le point 11) copier la colonne 1 dans la colonne 2 et faire les modifications sur la colonne 2 (par sécurité)
Pour chaque cellule de la colonne 2:
2) je vais utiliser StrReverse pour inverser le texte
ex: "Ce matin (1)" -> ")1( nitam eC"
3) je vais rechercher la première occurence de "(" avec Instr
4) extraire de cette cellule la sous-chaine qui commence 2 caractères plus loin avec la fonction Left, remplacer le contenu de la cellule par cette sous-chaine.
ex : ")1( nitam eC" -> "nitam eC"
5) inverser le résultat
ex : "nitam eC" -> "Ce matin"
Fin pour chaque cellule:
mais pour le point 2 j'ai tenté ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ActiveSheet.Columns(1).Copy ActiveSheet.Columns(2)
mais VBA ne veut pas (Erreur 13, incompatibilité de type).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 For Each cell In ActiveSheet.Columns(2) cell.Value = StrReverse(cell.Value) Next
A noter que les cellules sont au format Texte (je ne sais pas si ça a une importance).
Auriez-vous un peu d'aide à m'apporter svp ? Ou une autre solution plus simple (même si je ne trouve pas ça très compliqué apparemment).
Je suis assez perdu en VBA, je n'ai pas de vue d'ensemble du fonctionnement de la bête, mais j'ai de bonnes bases de programmation.
Partager