Consonne et voyelle

Bonjour à tous,

Je veux faire un texte sur du texte dans une cellule avec une formule.

Le test :

Détecter si un mot dans la colonne A contient 4 consonnes, 4 voyelles, 4 nombres de suite.

Si vrai, alors afficher ce mot dans la colonne B

Quelqu'un connait-il la formule ?

Nessie

Bonjour et bienvenu,

Veux-tu nous donner un exemple de texte le résultat que tu veux obtenir avec ce texte ?

Je débute sur le forum c'est vrai j'ai pas été très clair.

Mes expressions à tester sont en colonne A

Exemples :

test de "Montreuil93100"

Cette expression contient 4 nombres et plus donc je l'affiche en colonne B

test de "Montreuil93"

Cette expression ne contient pas 4 nombres minimum donc je ne l'affiche pas en colonne B

test d'une expression style référence de catalogue "marteau"

Cette expression ne contient ni 4 nombres minimum, ni 4 voyelles successives mini, ni 4 consonnes successives mini donc je ne l'affiche pas en colonne B

test d'une expression style référence de catalogue "marteauu"

Cette expression contient 4 voyelles mini donc je l'affiche en colonne B

idem si 4 consonnes mini

D'avance merci

ce test ne peut pas être fait simplement, tu vas devoir passer par une macro.

Sais-tu programmer en VBA Exel ?

et est-ce que tes consonnes, voyelles ou chiffres successifs doivent impérativement se trouver à la fin de to, texte ou bien n'importe où ?

n'importe où

Bonjour

Ce doit être faisable en VBA, mais, bonjour le Code.

De même, c'est faisable par formules avec un vrai tableau de colonnes intermédiaires, à vue de nez, disons une dizaine.

Car, avec une formule directe, cela me paraît irréalisable.

Cordialement

c'est certain que c'est faisable en VBA mais j'en suis moins sûre directement dans excel ou alors j'imagine même pas la taille des conditions qui doit être illisible et dur à maintenir.

nessie, tu ne nous a pas dit si tu connaissais le VBA, si tu étais à l'aise avec le langage ?

et non je ne connais pas le VBA

pour les formules sous excel je ne sais pas trop on plus

Bon j'me suis un peu amusée pour toi j'ai fait le code VBA.

alors en pré-requis je suis partie du principe que les mots à décortiquer étaient toujours en colonne A, qu'il n'y avait pas d'en-tête et qu'il fallait s'arrêter dès qu'on tombe sur un champ vide.

Si on tombe sur 4 voyelles ou 4 consonnes ou 4 chiffres successifs alors on écrit le même mot en colonne B.

Donc créée une macro, rentre dans le code (fais modifier la macro) et remplace le code par celui-ci :

Sub compte_4_successifs()
'
' i : compteur des lignes de la feuille
' chaine : contenu de la cellule
' j : compteur des caractères de chaine
' count : compteur du nombre de consonnes, voyelles ou chiffres successifs
' type_car : détermine si le caractère encours de la chaine est une consonne 'c', une voyelle 'v' ou un numérique 'n'
' type_car_prec : détermine si le caractère précédent de la chaine est une consonne 'c', une voyelle 'v' ou un numérique 'n'
'
    Dim i, j, count As Integer
    Dim chaine As String
    Dim type_car, type_car_prec As String

i = 1
chaine = Cells(i, 1)
While chaine <> ""
    j = 1
    count = 1
    type_car_prec = ""
    'on sort de la boucle quand count = 4 ou qu'on arrive à la fin de la chaîne
    While count < 4 And j <= Len(chaine)
        If IsNumeric(Mid(chaine, j, 1)) Then
            type_car = "n"
        ElseIf Mid(chaine, j, 1) = "a" Or Mid(chaine, j, 1) = "e" Or Mid(chaine, j, 1) = "i" Or Mid(chaine, j, 1) = "o" _
            Or Mid(chaine, j, 1) = "u" Or Mid(chaine, j, 1) = "y" Then
            type_car = "v"
        Else
            type_car = "c"
        End If
        If type_car = type_car_prec Then
            count = count + 1
        Else
            count = 1
            type_car_prec = type_car
        End If
        j = j + 1
    Wend
    If count = 4 Then
        Cells(i, 2) = Cells(i, 1)
    End If
    i = i + 1
    chaine = Cells(i, 1)
Wend
'
End Sub

Ensuite il te suffira de lancer cette macro pour qu'elle s'exécute

18sapeurs.xlsm (157.28 Ko)

un gros gros merci

je vais tester cela

bonsoir iria_hime

ta macro est très interrssante, mais il faut que les textes de la colonne A n'aient ni de majuscule, ni de caractères accentués.

Il faudra bien formater les données de la colonne A, ou rajouter quelques cas à tester dans la macro (à, é, è, ^é...)

Bon WE

Salut le forum

Une fonction avant le traitement

Function SansAccent$(ByVal Chaine$)
Const VAccent = "àáâãäåéêëèìíîïðòóôõöùúûü", VSsAccent = "aaaaaaeeeeiiiioooooouuuu"
Dim Bcle&
For Bcle = 1 To Len(VAccent)
Chaine = Replace(lcase(Chaine), Mid(VAccent, Bcle, 1), Mid(VSsAccent, Bcle, 1))
Next Bcle
SansAccent = Chaine
End Function
Rechercher des sujets similaires à "consonne voyelle"