Compter les syllabes des mots en VBA [Résolu]

Elerahir 6 Messages postés mardi 9 février 2010Date d'inscription 23 février 2010 Dernière intervention - 9 févr. 2010 à 17:10 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention
- 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
Afficher la suite 

4 réponses

Répondre au sujet
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 9 févr. 2010 à 18:25
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 9 févr. 2010 à 20:10
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ucfoutu
Elerahir 6 Messages postés mardi 9 février 2010Date d'inscription 23 février 2010 Dernière intervention - 9 févr. 2010 à 21:00
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Elerahir
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 9 févr. 2010 à 21:05
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.