Extraire des mots d'une liste
janloup
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je cherche a extraire tous les mots ayant une alternance consonne voyelle dans une liste excel
ou éliminer les mots ne remplissant pas cette condition
j'ai farfouillé un peu partout avec google sans résultat
ex de liste:
ABACA
ABACAS
ABACOST
ABACOSTS
ABACULE
ABACULES
ABAJOUE
ABAJOUES
ABALONE
ABALONES
ABANDON
merci pour votre aide
je cherche a extraire tous les mots ayant une alternance consonne voyelle dans une liste excel
ou éliminer les mots ne remplissant pas cette condition
j'ai farfouillé un peu partout avec google sans résultat
ex de liste:
ABACA
ABACAS
ABACOST
ABACOSTS
ABACULE
ABACULES
ABAJOUE
ABAJOUES
ABALONE
ABALONES
ABANDON
merci pour votre aide
A voir également:
- Extraire des mots d'une liste
- Liste déroulante excel - Guide
- Extraire une video youtube - Guide
- Extraire le son d'une vidéo - Guide
- Liste code ascii - Guide
- Liste déroulante en cascade - Guide
5 réponses
Excel ne comportant aucune fonction permettant de distinguer les consonnes des voyelles, il n'y a pas de solution simple à ta question.
Il te faudrait établir deux listes, consonnes et voyelles, puis inventer une formule calculant toutes les combinaisons possibles entre les éléments de ces deux listes, et les comparer chaque fois à toutes les couples de caractères de chaque mot de ton énumération ...
Autant faire ton pointage toi-même avec une feuille de papier et un crayon !
Il te faudrait établir deux listes, consonnes et voyelles, puis inventer une formule calculant toutes les combinaisons possibles entre les éléments de ces deux listes, et les comparer chaque fois à toutes les couples de caractères de chaque mot de ton énumération ...
Autant faire ton pointage toi-même avec une feuille de papier et un crayon !
Bonjour,
Comme le dit Raymond, c'est l'usine à gaz...
Cette fonction te renvoie VRAI si le mot comporte au moins une consonne suivie d'une voyelle (et donc FAUX si aucun cas)
Comme le dit Raymond, c'est l'usine à gaz...
Cette fonction te renvoie VRAI si le mot comporte au moins une consonne suivie d'une voyelle (et donc FAUX si aucun cas)
Function conson_voyel(mot) As Boolean
mot = UCase(mot.Value)
longueur = Len(mot)
voyelle = Array("A", "E", "I", "O", "U", "Y")
For cptr = 1 To longueur
test = Application.Match(Mid(mot, cptr, 1), voyelle, 0)
If IsError(test) Then
test = Application.Match(Mid(mot, cptr + 1, 1), voyelle, 0)
If Not IsError(test) Then
conson_voyel = True
Exit For
End If
End If
Next
End Function
Bonjour,
Comme dit raymond que je salue au passage : pas de solution simple à ta question
Alors une solution compliquée :
- tes mots en A2 et en dessous
- en F1 les voyelles: AEIOUY
- en B2: =NBCAR(A2)
- en C2: =MAX(ABS(SI(ESTERREUR(CHERCHE(STXT(A2;LIGNE(DECALER($A$1;0;0;B2;1));1);$F$1));-1;1)+SI(ESTERREUR(CHERCHE(STXT(A2;LIGNE(DECALER($A$1;1;0;B2;1));1);$F$1));-1;1)*(LIGNE(DECALER($A$1;1;0;B2;1))<=B2)))
formule matricielle à valider avec Shift+Ctrl+Entrée. Si bien validée elle doit être entourée de { }
Formules à recopier vers le bas.
En colonne C si tu obtiens 1 => ok, si tu obtiens 2 => non ok
exemple.xls
ou sinon ça sera une fonction personnalisée en vba
eric
Comme dit raymond que je salue au passage : pas de solution simple à ta question
Alors une solution compliquée :
- tes mots en A2 et en dessous
- en F1 les voyelles: AEIOUY
- en B2: =NBCAR(A2)
- en C2: =MAX(ABS(SI(ESTERREUR(CHERCHE(STXT(A2;LIGNE(DECALER($A$1;0;0;B2;1));1);$F$1));-1;1)+SI(ESTERREUR(CHERCHE(STXT(A2;LIGNE(DECALER($A$1;1;0;B2;1));1);$F$1));-1;1)*(LIGNE(DECALER($A$1;1;0;B2;1))<=B2)))
formule matricielle à valider avec Shift+Ctrl+Entrée. Si bien validée elle doit être entourée de { }
Formules à recopier vers le bas.
En colonne C si tu obtiens 1 => ok, si tu obtiens 2 => non ok
exemple.xls
ou sinon ça sera une fonction personnalisée en vba
eric
Bonjour michel,
Pas sûr que ton code corresponde à la demande, je me suis permis de le modifier un peu en fonction de ce que j'ai compris :
eric
Pas sûr que ton code corresponde à la demande, je me suis permis de le modifier un peu en fonction de ce que j'ai compris :
Function conson_voyel(mot) As Boolean
mot = UCase(mot.Value)
longueur = Len(mot)
voyelle = Array("A", "E", "I", "O", "U", "Y")
ok = True
For cptr = 1 To longueur - 1
test = IsError(Application.Match(Mid(mot, cptr, 1), voyelle, 0))
test2 = IsError(Application.Match(Mid(mot, cptr + 1, 1), voyelle, 0))
ok = (test Xor test2) And ok
If Not ok Then
Exit For
End If
Next
conson_voyel = ok
End Function
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question