Excel - suppr automatiquement espace dans cel

jordan2109 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
ccm81 Messages postés 11033 Statut Membre -
Bonjour,

Je cherche a suppr les 2 espaces à droite et a gauche des caractères dans toutes les cellules de mon tableau (apparue suite à la copie d'une BDD).

Exemple : " Toulouse " ==> "Toulouse"

Je pense qu'il faut passer par les macro ou le VBA, mais je vous avoue ne pas savoir m'en servir. Si quelqu'un peut m'indiquer un bout de code.

Merci beaucoup !

6 réponses

  1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour
    peut être plus simple:
    =SUPPRESPACE(Cell)
    qui supprime tous les espaces, sauf ceux entre les mots
    vous pouvez ça dans un champ à coté de votre tableau et le refaire ensuite avec un copier : Collage spécial valeur.
    crdlmnt

    0
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    bonjour,
    s'il y en a beaucoup il vaut mieux automatiser via une petite macro
    à mettre dans un module.
    Selectionner la plage a traiter puis Ctrl+e pour supprimer les espaces

    Sub Macro1() 
    ' Touche de raccourci du clavier: Ctrl+e 
    Dim c As Range 
    For Each c In Selection 
      c.Value = Trim(c.Value) 
    Next c 
    End Sub


    bonne suite
    0
  3. jordan2109 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
     
    Merci pour vos réponse,
    Il est vrai que la macro serait bien mieux dans mon cas (12 onglets, 50 lignes / onglets, et 5 colonnes concernées ^^)

    Seulement j'essaie d'utiliser la macro décrire mais rien ne se passe :(

    J'ai Office 2007, peut-être y a t'il une commande qui s'écrit différemment ?
    0
    1. ccm81 Messages postés 11033 Statut Membre 2 434
       
      re
      je ne crois pas qu'excel 2007 pose pb

      1. mettre la macro dans un module Alt+F11 puis copier/coler
      2. selectionner la plage a traiter dans la feuille
      3. Ctrl+e pour lancer la macro

      bonne suite
      0
  4. jordan2109 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
     
    En effet, en fait le code fonctionne très bien, mais j'ai identifié le problème. Ce qui semblent être des espaces doivent en fait etre autre chose, donc Trim ne fonctionne pas.
    Ce qu'il me faudrait du coup c'est :
    - supprimer les 2 premiers caractères de la cellule
    - supprimer les 2 derniers caractères de la cellule

    Merci beaucoup !
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Re

    en fait, j'ai abordé un problème similaire il y a peu de temps, mais je ne retrouve pas la discussion.

    J'y ai appris qu'il s'agissait je crois d'un caractère dit "insécable" dont le N° Excel est 160; on peut donc le traiter avec le code CAR(160) mais je ne sais pas le faire dans une macro.(à la rigueur dans la formule:
    =SUBSTITUE(Cell;CAR(160);)
    qui les supprime

    Peut être cette info servira t'elle à quelqu'un d'autre pour vous aider avec une macro

    En attendant , une manip possible:
    _copier le caractère dans la barre de formule (et lui seulement)
    _sélectionner la feuille complète
    _Ouvrir la fenêtre Rechercher / remplacer
    Remplacer:
    _coller le caractère dans la fenêtre du haut
    par: rien
    et Remplacez tout.

    Avec un peu de chance....

    Crdlmnt

    0
  7. ccm81 Messages postés 11033 Statut Membre 2 434
     
    re

    deux macros (une seule doit etre lancée)

    Sub Macro1()
    ' pour supprimer 2 caracteres devant et derrière
    ' Touche de raccourci du clavier: Ctrl+e
    Dim c As Range
    Dim cc As String
    For Each c In Selection
      ' c.Value = Trim(c.Value)
      cc = c.Value
      cc = Right(cc, Len(cc) - 2)
      cc = Left(cc, Len(cc) - 2)
      c.Value = cc
    Next c
    End Sub
    
    Sub Macro3()
    ' Touche de raccourci du clavier: Ctrl+f
    ' pour remplacer les car(160) par rien
    Dim c As Range
    For Each c In Selection
      c.Value = Replace(c.Value, Chr(160), "")
    Next c
    End Sub


    bonne suite
    0