VBA : convertir majuscules non accentuées en minuscules accentuées

dmc

XLDnaute Occasionnel
Bonjour le forum.
Sans doute du costaud, probablement impossible, à vous de voir :
ma macro traite des milliers de mots, français, en les isolant 1 par 1. Tous ces mots sont en majuscules non accentuées la plupart du temps.
Je souhaite les convertir en minuscules, mais au passage les enrichir en récupérant les accents manquants.
J'aurais aimé pour cela utiliser le CheckSpelling selon les principes suivants :
  • je fournis 1 mot et 1 seul en entrée à CheckSpelling, sous forme de valeur de variable et non pas dans une cellule (s'il n'y a pas d'autre solution, je prendrai quand même);
  • le mot fourni est le résultat d'un lcase du mot initial
  • si checkspelling renvoie le mot tel quel, c'est que le mot fourni soit avait déjà ses accents à l'issue du Lcase, soit qu'il n'en a pas besoin pour être correctement orthographié.
  • si checkspelling "critique" le mot à traiter et qu'il a 1 ou plusieurs choix possibles, il renvoie le premier de ces choix.
malheureusement les problèmes suivants me bloquent :
  1. CheckSpelling EST une interface utilisateur, ce qui est moins drôle vous en conviendrez, puisque l'utilisateur dot lui répondre pour chaque mot, "à la main"
  2. je ne sais pas l'alimenter autrement que par le contenu d'une cellule;
  3. je ne sais pas récupérer son résultat.
quelqu'un aurait-il une solution à me proposer ?
à vous de plancher (en fait je continue de mon côté, même si je compte vivement sur vos réponses)
DMC:cool:
 

dmc

XLDnaute Occasionnel
Re : VBA : convertir majuscules non accentuées en minuscules accentuées

Bonjour à tous
Je m'aperçois à la relecture de mon message que je laisse penser que CheckSpelling est LA solution que je demande. Mais ce n'est pas le cas, CheckSpelling est l'instruction la plus proche de mon objectif que j'aie pu trouver.
Je pense que Mr Boisgontier chercherait du coté des "dictionnaires", mais je suis incapable de comprendre ce fonctionnement que par ailleurs j'ai pu admirer dans ses tutoriaux.
Espérant un conseil de vous, une piste, et pourquoi pas la solution clé en main ?
DMC
 

Misange

XLDnaute Barbatruc
Re : VBA : convertir majuscules non accentuées en minuscules accentuées

Bonjour
Le dictionnaire dont parles Jacques n'est pas un dictionnaire au sens ou on l'entends généralement. Un dictionnaire VBA est une forme particulière de collection, qui stocke dans un tableau virtuel une liste d'éléments avec une clé associée.
Pour ta demande, je n'ai aucune idée de la façon de faire personnellement mais en revanche je vois que pèche, pêche, péché, n'ont pas du tout la même signification.
Les fonctions de correction orthographique/grammaticale dans office sont codées en langage machine et ne sont pas je pense des objets VBA accessibles. Comparer des milliers de fois un mot à l'ensemble des mots d'un dictionnaire (au sens habituel cette fois) en VBA me parait assez peu réaliste en terme de temps de calcul.
 

dmc

XLDnaute Occasionnel
Re : VBA : convertir majuscules non accentuées en minuscules accentuées

Bonjour Misange et le forum.
Merci de ta réponse.
Dans mon cas, les termes rencontrés appartiennent à un secteur professionnel, donc un vocabulaire plus restreint, et pour reprendre ton exemple, seul pêche serait retenu dans mon domaine.
Le temps de traitement est peu pénalisant: ce traitement se fait tous les 3 mois, il peut durer 1 heure ou plus à l'exécution sans gêne s'il le faut.
Partant de la notion de dictionnaire, pourrait-on imaginer de remplir ce "dictionnaire" avec des mots qu'il ne connait pas encore, qui sont filtrés auparavant par un choix issu du CheckSpelling.
Je m'explique en décrivant le processus:
- le dictionnaire ne connait pas le mot "peche" (issu de lcase("PECHE") )
- il le soumet à checkspelling
- l'utilisateur sélectionne la correspondance via checkspelling, par exemple "pêche"
- la macro regarde si ce mot existe dans le dictionnaire et l'y inscrit si ce n'est pas le cas, sous la forme "peche"="pêche"
- le dictionnaire est enregistré pour le ou les traitements futurs
est-ce envisageable ? suis-je un doux rêveur ?
Dans tous les cas, je me suis inscrit sur ton site, et pour ce que j'en ai vu, il parait très complémentaire. Bravo pour cet engagement qui je l'imagine n'est pas neutre en terme de temps, voire d'argent. Bravo encore
je reste à l'écoute de toutes les suggestions des xldnautes, et merci encore .
DMC
 

Discussions similaires

Statistiques des forums

Discussions
312 231
Messages
2 086 448
Membres
103 213
dernier inscrit
Poupoule