voyelle consonne a trier

maximom

XLDnaute Nouveau
Bonjour,
j'ai un fichier de plusieurs milliers de nom de 4 lettres sur une seule colonne.
Existe t'il une solution pour que Excel me marque (par exemple avec un croix dans la colonne B) tout les noms composés de cette façon:
  1. consonne, voyelle, consonne, voyelle
  • consonne, voyelle, voyelle, consonne
Merci de vos remarques
 

Spitnolan08

XLDnaute Barbatruc
Re : voyelle consonne a trier

Bonsoir,

Je ne comprends pas bien la finalité mais une proposition en VBA :
Code:
Sub décompose()
Dim i As Byte, j As Integer
Dim Consvoy As String
For i = 1 To Range("A1").End(xlDown).Row
Consvoy = ""
    For j = 1 To Len(Cells(i, "a"))
        If Mid(Cells(i, "a"), j, 1) = "a" Or Mid(Cells(i, "a"), j, 1) = "e" Or Mid(Cells(i, "a"), j, 1) = "i" Or Mid(Cells(i, "a"), j, 1) = "o" Or Mid(Cells(i, "a"), j, 1) = "u" Or Mid(Cells(i, "a"), j, 1) = "y" Then
            Consvoy = Consvoy & "V"
            Else
            Consvoy = Consvoy & "C"
        End If
    If Consvoy ="CVCV" or Consvoy = "CVVC" then Cells(i, "B") = "x"
    Next
Next
End Sub
qui donne la décomposition du mot

Cordialement
 

Tibo

XLDnaute Barbatruc
Re : voyelle consonne a trier

Bonjour maximom, Spitnolan,

Un essai à base de formules (en fonction de ce que j'ai compris) :

en colonne A, la liste de tes mots :

En B1 : =ESTNUM(EQUIV(STXT($A1;1;1);{"a";"e";"i";"o";"u";"y"};0))

En C1 : =NON(ESTNUM(EQUIV(STXT($A1;2;1);{"a";"e";"i";"o";"u";"y"};0)))

En D1 : =ESTNUM(EQUIV(STXT($A1;3;1);{"a";"e";"i";"o";"u";"y"};0))

En E1 : =NON(ESTNUM(EQUIV(STXT($A1;4;1);{"a";"e";"i";"o";"u";"y"};0)))

Ces formules retournent VRAI ou FAUX.

Possibilité d'additionner en une seule formule toutes ces formules. Si l'addition donne 4, c'est que les 4 formules sont VRAI

Si pas ça, revient avec plus de détail

@+
 

maximom

XLDnaute Nouveau
Re : voyelle consonne a trier

Bonjour le forum,

Merci Tibo pour ta proposition, par contre j'ai du mal à comprendre le résultat, peut etre qu'avec une seule formule qui récapitule les 4 autres, je verrai plus clair.

Merci aussi à Spitnolan08 pour cette macro, je l'ai aussi essayé et j'ai une erreur d'exécution a la ligne 8:
For i = 1 To Range("A1").End(xlDown).Row

Je vous remercie pour votre coup de main...

voici un peu plus de renseignement

j'ai ce genre de tableau sur environ 30000 lignes

bqdw
bqek
bqfg
beik
bamo
bqiw

et je souhaiterai obtenir ceci

bqdw o
bqek o
bqfg o
beik x
bamo x
bqiw o

je souhaite rapidement trouver tout les mots avec
- soit 2 voyelles au milieu du mot
- soit composé de 1 consonne suivi de 1 voyelle suivi de 1 consonne et terminé par 1 voyelle

Tous les mots font 4 lettres.

Merci de votre disponibilité
 

Tibo

XLDnaute Barbatruc
Re : voyelle consonne a trier

re maximom, resalut spitnolan,

La formule :

=SI(OU(NON(ESTNUM(EQUIV(STXT($A1;1;1);{"a";"e";"i";"o";"u";"y"};0)))+ESTNUM(EQUIV(STXT($A1;2;1);{"a";"e";"i";"o";"u";"y"};0))+NON(ESTNUM(EQUIV(STXT($A1;3;1);{"a";"e";"i";"o";"u";"y"};0)))+ESTNUM(EQUIV(STXT($A1;4;1);{"a";"e";"i";"o";"u";"y"};0))=4;NON(ESTNUM(EQUIV(STXT($A1;1;1);{"a";"e";"i";"o";"u";"y"};0)))+ESTNUM(EQUIV(STXT($A1;2;1);{"a";"e";"i";"o";"u";"y"};0))+ESTNUM(EQUIV(STXT($A1;3;1);{"a";"e";"i";"o";"u";"y"};0))+NON(ESTNUM(EQUIV(STXT($A1;4;1);{"a";"e";"i";"o";"u";"y"};0)))=4);"x";"o")

Bon, pour plus de prudence, je te joins le fichier avec la formule.

Voir formule en colonne C. Les autres colonnes ne sont pas utiles. C'étaient les colonnes de préparation de cette formule.

Essaye et dis nous.

@+
 

Pièces jointes

  • Maximom.xls
    26 KB · Affichages: 91

pierrejean

XLDnaute Barbatruc
Re : voyelle consonne a trier

bonjour maximom

Salut Tibo
Salut Spitnolan08

ma version

@Tibo

pour m'amuser j'ai compté le nombre de caracteres de ta solution et de la mienne

505 contre 330

je n'en reste pas moins très admiratif d'un travail dont je suis definitivement incapable
 

Pièces jointes

  • voyelles.xls
    29.5 KB · Affichages: 106
Dernière édition:

Tibo

XLDnaute Barbatruc
Re : voyelle consonne a trier

re,

Une formule plus courte dédiée à Pierre Jean :

=SI(OU(NON(ESTNUM(TROUVE(STXT(A1;1;1);"aeiouy")))+ESTNUM(TROUVE(STXT(A1;2;1);"aeiouy"))+NON(ESTNUM(TROUVE(STXT(A1;3;1);"aeiouy")))+ESTNUM(TROUVE(STXT(A1;4;1);"aeiouy"))=4;NON(ESTNUM(TROUVE(STXT(A1;1;1);"aeiouy")))+ESTNUM(TROUVE(STXT(A1;2;1);"aeiouy"))+ESTNUM(TROUVE(STXT(A1;3;1);"aeiouy"))+NON(ESTNUM(TROUVE(STXT(A1;4;1);"aeiouy")))=4);"x";"o")

(344 caractères)

Amitiés

@+
 

PhiBou

XLDnaute Junior
Re : voyelle consonne a trier

Bonsoir le Fil, le Forum

Si on part de l'exemple de Maximom cad 4 lettres de l'alphabet en minuscule, cette formule devrait convenir :

=SI(PRODUIT(SOMME((({97;101;105;111;117;121}-CODE(STXT(A1;{1.2.3.4};1)))=0)*10^{3.2.1.0})-{110;101})=0;"x";"o"))

Bonne soirée

PhiBou
 

Spitnolan08

XLDnaute Barbatruc
Re : voyelle consonne a trier

Bonsoir Phibou,

Impresionnant ta formule! Je n'ai pas tout compris : ça mérite une explication je crois...

Cependant, il faut que tu la vérifies, car elle ne me donne que des o.

Tibo, je crois qu"une nouvelle pointure en formule est arrivée!:p

Cordialement
 

Discussions similaires

Réponses
8
Affichages
231

Statistiques des forums

Discussions
312 505
Messages
2 089 094
Membres
104 029
dernier inscrit
Neozz14