Enlever caractères spéciaux

Tootsi -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
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

4 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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