Supprimer un caractère en VBA

Sylvie

XLDnaute Accro
Bonjour à tous , Bonjour cher Forum,

je sollicite un coup de pouce de votre part pour me dépanner sur le problème suivant.
J'ai hérité de fichiers excel dont quasiment chaque cellule est "polluée" par un premier caractère indésirable à gauche " ' " (une apostrophe).
Comment l'enlever d'un coup d'un seul en VBA ? (ce qui compte tenu du nombre de fichiers et de colonne concernés sera à coup sur le plus rapide)

En pièce jointe, un des fichiers concernés.
NB : toutes les infos à "retraiter " commencent en ligne 2 ; le fichier joint ne comporte qu'une seule fiche employée mais les autres fichiers comportent bien plus de lignes (toutes à retraiter). La cellule peut être vide, ou être numérique et ne pas comporter ce caractère indésirable.

Par avance merci et Bon Dimanche à Tous

Sylvie
 

Pièces jointes

  • FICHE EMPLOYES.xls
    16.5 KB · Affichages: 290

skoobi

XLDnaute Barbatruc
Re : Supprimer un caractère en VBA

Bonjour,

voici une proposition:

Code:
Sub carac()
For Each cel In Range([A2], [A2].SpecialCells(xlCellTypeLastCell)).SpecialCells(xlCellTypeConstants, xlTextValues)
    cel.Value = Replace(cel.Value, "'", "")
Next
End Sub
 

Sylvie

XLDnaute Accro
Re : Supprimer un caractère en VBA

Bonjour Skoobi,

merci tout d'abord pour ton aide mais le code VBA que tu me proposes doit pouvoir s'appliquer à toutes les lignes à partir de 2 et pas seulement à la deuxième (mes fichiers comportent plusieurs employés, donc plusieurs lignes).

Peux tu compléter ta proposition ? (et me préciser dans quel module je dois coller ton code étant donné que je dois retraiter plusieurs fichiers)

Merci
 

wilfried_42

XLDnaute Barbatruc
Re : Supprimer un caractère en VBA

bonjour à tous

La solution de skoobi fonctionne mais peut poser des problemes

Quand on met des formules dans un classeur avec une ' devant, c'est pour les mettre en valeur et non pas en formule histoire de les afficher, c'est aussi une solution pour pouvoir les reutiliser en macro

Quand on fait reference dans une formule à une feuille qui comporte des espaces, on met aussi des cotes pour encadrer le nom de la feuille

maintenant les textes : 'Rue de l'invasion provoquera le meme probleme

La solution replace va remplacer toutes les ' par rien du tout dans l'exemple donné

autre macro qui traite uniquement le 1er caractere
Code:
sub supp_cote()
dim cel as range
for each cel in range("A2:A" & range("A65536").end(xlup).row) ' defini le bloc complet
if left(cel,1) = "[B][COLOR="Red"]'[/COLOR][/B]" then cel = right(cel,len(cel)-1) ' Retire le 1er si c'est une cote
next
end sub

bon dimanche
 

skoobi

XLDnaute Barbatruc
Re : Supprimer un caractère en VBA

Re,

Peux tu compléter ta proposition ? (et me préciser dans quel module je dois coller ton code étant donné que je dois retraiter plusieurs fichiers)

"[A2].SpecialCells(xlCellTypeLastCell)" : ceci veut dire qu'il prend toutes les cellules des autres ligne également ;)
Tu le colles dans chaque module des fichiers correspondants.

Edit: salut wilfried_42, d'accord avec toi, à Sylvie de voir si celà lui convient tout de même....
 
Dernière édition:

Sylvie

XLDnaute Accro
Re : Supprimer un caractère en VBA

Bonjour Wilfried, Re bonjour Skoobi,

merci pour vos précisions à l'un et à l'autre, mais j'ai beau exécuter l'une ou l'autre des macros proposées (collées dans les modules de feuille 1) ... rien se se passe et les apostrophes ne trépassent pas. :confused:
Je dois louper un truc ... mais lequel ??

Merci
 

Sylvie

XLDnaute Accro
Re : Supprimer un caractère en VBA

Re bonjour,

La dernière macro proposée par Wilfried fonctionne désormais parfaitement sur toutes les cellules polluées.

Un grand merci Wilfried ! ... à toi aussi Skoobi

Les apostrophes indésirables ont trépassées ! Oufff !! :)

Bon dimanche à tous
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 153
Membres
103 137
dernier inscrit
Billly