Compter les syllabes des mots en VBA

Résolu
Elerahir Messages postés 6 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 23 février 2010 - 9 févr. 2010 à 17:10
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 9 févr. 2010 à 21:05
Bonjour,

j'ai un problème pour compter le nombre de syllabes dans un mot. Mon but est de compter le nombre de voyelles dans un texte mais en faisant en sorte que si une voyelle est suivie d'une autre voyelle que cette dernière ne soit pas compter. En gros je pense que je dois combiner une boucle avec une fonction if mais je n'y arrive pas. Je ne sais pas quel boucle prendre et comment intégrer if dans la boucle. Merci de me répondre

4 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
9 févr. 2010 à 18:25
Bonjour,
Que veux-tu au bout du compte ?
1) Compter dans un mot le nombre de voyelles présentes (mais en ne comptant que pour une celles qui se suivraient) ?
2) Je ne suis pas certain que cela te donnera toujours le nombre de syllabes, à moins que tu ne considères que les voyelles accentuées n'en sont pas toujours !
Exemple :
créer : 2 syllabes en français pour une seule voyelle avec ton "mécanisme"
mais : crées : une seule syllabe en français pour une seule voyelle avec ton mécanisme
craie : 1 seule syllabe en français pour une seule voyelle avec ton mécanisme

Avant de nous lancer dans la mise en oeuvre de ce que tu dis, donc : confirme-nous que tu te contenteras de ce que j'ai dit en 1)
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
9 févr. 2010 à 20:10
Si maintenant tu tiens tant à aller à la catastrophe avec ton mécanisme assez "réducteur" de la phonétique, qu'à cela ne tienne : voilà un exemple (parmi d'autres) de méthode :

  mot = "manoeuvre"
   messyllabes = "aeiouéèàïù"
   Dim mot_eclate() As Byte
   mot_eclate = StrConv(mot, vbFromUnicode)
   deja 0: nbfictif_voyelles 0
   For i = 0 To UBound(mot_eclate)
     If InStr(UCase(messyllabes), UCase(Chr(mot_eclate(i)))) > 0 Then
       If deja 0 Or i - deja > 1 Then nbfictif_voyelles nbfictif_voyelles + 1
       deja = i
     End If
   Next
   MsgBox nbfictif_voyelles


Je te laisse cogiter et transformer (après réflexion) .... (ne serait-ce qu'en pensant que le mot réel a deux syllabes en français...
Si tu veux maintenant t'amuser : il te faut :
1) analyser la langue
2) traiter tous les cas particuliers, y compris des "e" muets, de la position des voyelles accentuées, etc...
Bonne chance dans cette entreprise. Nous, nous t'avons mis sur la voie d'une réflexion, c'est tout
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
3
Elerahir Messages postés 6 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 23 février 2010
9 févr. 2010 à 21:00
Merci beaucoup pour ta réponse. Je n'ai besoin que du nombre moyen de de syllabes par mot : je compte le nombre de syllabes d'un texte par ma méthode réductrice et je le divise par le nombre de mot dudit texte.

Par contre j'ai un autre problème : je veux sélectionner le texte à l'aide la souris puis l'analyser par mon petit programme mais ça ne marche pas. Je n'arrive pas à faire en sorte de pouvoir sélectionner directement le texte avec la souris. Quel type de box dois-je utiliser ? Comment stocker cette sélection pour ensuite l'analyser ?
Désolé pour toutes ces questions mais je débute.
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
9 févr. 2010 à 21:05
Cà, ami, c'est une autre question (donc pas dans cette discussion, mais dans une discussion distincte !)
Si le problème objet de la présente discussion est résolu : clique sur le tag "réponse acceptée" correspondant à la réponse adéquate et ouvre une autre discussion. Et n'oublie pas de préciser dans quoi tu souhaites sélectionner le mot à analyser, hein ... (parmi les articles d'une listbox ? parmi les mots d'une textbox ?) de toute manières : ===>> autre discussion.

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
3
Rejoignez-nous