Enlever caractères spéciaux

Fermé
Tootsi - 6 août 2015 à 16:46
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 7 août 2015 à 17:19
Bonjour,
mon ami Google n'a pas réussi m'aider, donc je me tourne vers vous : je devrais enlever tous les caractéres speciaux (*&^%$#@!"' ;\|?></, Ä, Â etc. sur une feuille d'excel comportant près de 10 000 lignes, et ceci plusiquers fois par semaine. Rechercher - remplacer prend trop de temps, et je ne suis pas très calée avec les macros. Quelqu'un connait-il un moyen pour le faire?

Merci beaucoup d'avance!

Cordialement,
Tootsi


A voir également:

4 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
6 août 2015 à 18:34
Bonjour,

Voici un exemple avec 3 caractères spéciaux, il faudra l'adapter.
Faites une sauvegarde du classeur avant par prudence:

Option Explicit
Private Sub CommandButton1_Click()
For_X_to_Next_Colonne
End Sub
Sub For_X_to_Next_Colonne()
Dim FL1 As Worksheet, Cell As Range, NoCol As Integer
Dim NoLig As Long, DerLig As Long, Var As Variant

    'Instance de la feuille qui permet d'utiliser FL1 partout dans
    'le code à la place du nom de la feuille
    Set FL1 = Worksheets("Feuil1")
     
    'Détermine la dernière ligne renseignée de la feuille de calculs
    '(Voir explication sur l'utilisation de Split en bas de cette discussion)
    DerLig = Split(FL1.UsedRange.Address, "$")(4)
     
    'Fixe le N° de la colonne à lire
    NoCol = 1
     
    'Utilisation du N° de ligne dans une boucle For ... Next
    For NoLig = 1 To DerLig
       FL1.Cells(NoLig, NoCol).Select
    
    Caractere_speciaux
      
        'Pour tester : Affiche les variables dans la fenêtre Exécution de VBA
        Debug.Print Var
    Next
    Set FL1 = Nothing
End Sub
Sub Caractere_speciaux()
ReDim A_Remplacer(0 To 3) 'adapter au nombre de caractères
ReDim Remplacants(0 To 3) 'adapter au nombre de caractères
Dim I As Byte
On Error Resume Next
A_Remplacer = Array("%", "@", "&") 'ajouter les caractéres spéciaux
Remplacants = Array("", "", "") 'ajouter les blancs
For I = 0 To 3 'adapter au nombre de caractères
    Cells.Replace What:=A_Remplacer(I), Replacement:=Remplacants(I), LookAt:=xlPart
Next I
End Sub



Bon courage
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
6 août 2015 à 18:40
Petite erreur:

Sub Caractere_speciaux()
ReDim A_Remplacer(0 To 2) 'adapter au nombre de caractères
ReDim Remplacants(0 To 2) 'adapter au nombre de caractères
Dim I As Byte
A_Remplacer = Array("%", "@", "&") 'ajouter les caractéres spéciaux
Remplacants = Array("", "", "") 'ajouter les blancs
For I = 0 To 2 'adapter au nombre de caractères
    Cells.Replace What:=A_Remplacer(I), Replacement:=Remplacants(I), LookAt:=xlPart
Next I
End Sub


Cela commence à 0, il y a 3 caractères, cela fait :
0 To 2
0