Substituer des caractères normaux aux caractères spéciaux

Bonjour Forum !

(Comme on me l'a conseillé, je crée un nouveau topic plutôt que de poursuivre sur un sujet résolu. Pour les curieux : https://forum.excel-pratique.com/excel/accent-t21328.html )

Pour créer des adresses mail automatiquement à partir de noms de personnes, j'ai besoin de remplacer des caractères spéciaux (accentués, cédille,...) par leur version acceptée pour les adresses mail : hélène → helene, françois → francois.

Le code du fichier joint bloque sur le (C) de c = Modifs_caractères(c)

j'obtiens un message : "Erreur de compilation : Type d'argument ByRef incompatible"

Quelqu'un pourrait m'aider à le débuguer ?

Merci !!!

186classeur2.xlsm (16.31 Ko)

Bonjour,

Une fonction vue sur le site de Jacques Boisgonthier :

Function sansAccent(chaine)
   codeA = "ÉÈÊËÔéèêëàçùôûïî"
   codeB = "EEEEOeeeeacuouii"
   temp = chaine
   For i = 1 To Len(temp)
    p = InStr(codeA, Mid(temp, i, 1))
    If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1)
   Next
   sansAccent = temp
End Function

http://boisgontierjacques.free.fr/fichiers/fonctionsperso/Fonction_SansAccent.xls

A+

Bonjour

voici le fichier avec comme indiquer ci-dessus une fonction...

@ bientôt

LouReeD

EDIT : réponse destinée à OOiste

Bonjour,

Merci pour ta réponse.

Comme je suis un bidouilleur en matière de VBA, j'ai fait ce que j'ai pu, mais ça ne marche pas...

Help !


Merci LouReeD,

Je manipule ta fonction sans problème, mais je coince sur son inclusion dans une macro qui traite toutes les cellules de la sélection.

111classeur2-v2.xlsm (16.17 Ko)

Bonjour à tous

Pour ce qui est de ta fonction, il te faut juste modifier une instruction où tu n’appelles pas la bonne procédure :

    'Maj_Sans_Accent = LCase(Ori)
    Modifier_caractères = LCase(Ori)

Mais la fonction de Boisgontier, rapportée par OOosiste, merci à lui, reste un « must »

Pour actionner ton bouton, tu devrais adapter cette fonction à une macro comme je l’ai fait dans l’essai ci-joint avec la tienne et qui reste à tester.

Bye !

123classeurr3.xlsm (17.72 Ko)

Re

Ci-joint une petite routine qui fait le scan de la colonne s'il y a des valeurs et corrige dans la colonne d'à coté.

Cela vous convient-il ?

@ bientôt

LouReeD

145sans-accents.xlsm (23.99 Ko)

Récap à toutes fins utiles :

* macro avec sélection

* fonctions

* version Gloub

*version Boisgontier

147classeur4.xlsm (17.52 Ko)

(re)bonjour et merci à tous !!!

Je suis un peu perdu parmi vos contributions, et je n'arrive à en faire fonctionner aucune.

(mon problème de base, c'est que je ne sais pas créer une macro qui utilise une fonction pour l'ensemble d'une sélection....)

Autre chose : les propositions qui insèrent les chaines modifiées à côté des cellules d'origine me posent problème : j'ai besoin que le remplacement se fasse directement dans les cellules sélectionnées.

Pour résumer, ce que j'essaie de faire c'est : une macro, déclenchée par un bouton, qui agit dans la plage sélectionnée.

Donc, si je n'ai découragé personne, j'ai encore besoin d'aide.

Suit à ton dernier message, j'ai vérifié ce que j'ai envoyé et ... désolé mais je me suis mélangé les pinceaux.

Ce n'était pas mon dernier enregistrement.

Je corrige, et toutes mes excuses.

Dis-moi si c'est mieux !

196minuscules.xlsm (21.62 Ko)

Ça marche !!!

Et merci pour le soin que tu y as mis !

(la version Boisgontier a l'air plus élégante, je la garde)

Rechercher des sujets similaires à "substituer caracteres normaux speciaux"