Remplacer automatiquement caractères accentués et espaces

Bonjour à tous et à toutes,

Je vais essayer de vous la faire courte : j'ai un tableau avec plusieurs colonnes.

Dans ma colonne C, j'ai du texte avec :

  • Des majuscules/minuscules
  • Des caractères accentués
  • Des espaces

Dans ma colonne J, je dois avoir la même chose que dans la colonne C, mais SANS :

  • Les majuscules
  • Les caractères accentués
  • Les espaces
car il s'agit d'une URL (adresse Internet) simplifiée.

Comment faire pour qu'en colonne J, j'aie automatiquement le texte de la colonne C mais (donc) que :

  • Les majuscules soient transformées en minuscules
  • Les caractères accentués/cédilles soient transformés/remplacés par leur équivalent sans accent (par exemple le é => e, le ç =>c)
  • Les espaces soient transformés/remplacés par un - ou un _
?

J'avais pensé passer par une fonction SI, mais comme en colonne C l'expression n'est jamais régulière, avec une fois, par exemple, un "é" en 2nde position, une autre fois en 5e position et une fois pas du tout... (et je ne parle que du "é").

Est-ce qu'on peut passer par une formule ou c'est trop complexe et il faut passer par une macro ?

D'avance merci pour vos réponses.

Bonne journée à vous.

Bonjour,

fichier, où es-tu, où es-tu ?

P.

Au temps pour moi, je ne pensais pas qu'il faudrait fournir un fichier. :p

Bonjour,

ALT-F11 pour éditeur vba / insertion module/ et tu colles ceci :

Option Explicit
Function MajSansAccent$(ByVal Chaine$)
'Ti
Const VAccent = "àáâãäåéêëèìíîïðòóôõöùúûüç ", VSsAccent = "aaaaaaeeeeiiiioooooouuuuc-"
Dim Bcle&
For Bcle = 1 To Len(VAccent)
  Chaine = Replace(Chaine, Mid(VAccent, Bcle, 1), Mid(VSsAccent, Bcle, 1))
Next Bcle
MajSansAccent = LCase(Chaine)
End Function

Bonjour,

Un exemple avec une fonction de feuille personnalisée VBA.

Cdlt.

Merci patrick1957, mais après ? Comment ça se passe ? Comment je déclenche le module/la macro ?

Est-ce que ça remplace également les espaces par des - ou des _ ?

Merci également Jean-Eric. Cependant, quand j'ouvre ton fichier, ça m'indique qu'il y a une erreur dans la macro VBA.

J'ai notamment le message

Erreur de compilation : Le contenu dans ce projet doit être mis à jour pour pouvoir être utilisé sur les systèmes 6 bits. Vérifiez et mettez à jour les instruction Declare, puis marquez-les avec l'attribut PtrSafe

Comme indiqué avant:

ALT-F11 pour éditeur vba / insertion module/ et tu colles le code

et pour t'en servir,

=MajSansAccent$(la-cellule-de-ton-choix)

Il faut alors sauver le fichier en XSLM puisque c'est un code macro VBA

P.

Re,

Je pense que tu travailles avec une version 64 bits de MSOffice !?

Cdlt.

Merci Patrick1957, effectivement, maintenant ça fonctionne. J'avais pas vu qu'il fallait taper

=MajSansAccent(Cxx)

Jean-Eric, en effet j'utilise Office 2010 x64 pour exploiter au max les capacités de mon ordi (notamment la RAM). Pourquoi ? C'est mal ?

Bonjour Patrick1957,

Excusez-moi d'en demander plus, mais comment remplacer plusieurs caractères ? Par exemple, je voudrais enlever de l'url simplifiée les mots comme "l'" "dans" "de" ou "et".

Pour l'apostrophe (pour 1 caractère) j'ai trouvé (c'était assez simple), mais pas pour plusieurs.

D'avance merci pour votre réponse.

Rechercher des sujets similaires à "remplacer automatiquement caracteres accentues espaces"