Verifier si la cellule contient 4 lettres identiques

Sandra75

XLDnaute Occasionnel
Bonjour et bonnes fêtes !

Je cherche une formule qui me permet de verifier si une cellule contient au moins 4 lettres qui m'interesse

exemple :
Je veux que ma cellule me renvoi "ok" si il trouve 4 lettres dans n'importe quel ordre "OPSL"

je test ceci :
poisson volant : "ok"

et celui-ci
poisson : "pas ok"

Quelqu'un à une idée svp ?
 

Sandra75

XLDnaute Occasionnel
Re : Verifier si la cellule contient 4 lettres identiques

Rha super merci, ça deviens une sacrée formule ! :)
par contre, c'est possible d'imbriquer encore plus de caractères spéciaux ? histoire que je n'ai pas trop de surprise avec tout les accents ?
 

ROGER2327

XLDnaute Barbatruc
Re : Verifier si la cellule contient 4 lettres identiques

Bonjour à tous.


Rha super merci, ça deviens une sacrée formule ! :)
par contre, c'est possible d'imbriquer encore plus de caractères spéciaux ? histoire que je n'ai pas trop de surprise avec tout les accents ?
Ça se complique. Heureusement que VBA est notre ami !​
VB:
Function Contient(m$, p$)
Dim i&, j&, n&, c$
    m = LCase(PrOut(m))
    p = LCase(PrOut(p))
    For i = 1 To Len(p)
        c = Mid$(p, i, 1)
        For j = 1 To Len(m)
            If c = Mid$(m, j, 1) Then n = n + 1: Exit For
        Next
    Next
    Contient = n = Len(p)
End Function

Function PrOut(m$)
Dim i&, c$
    For i = 1 To Len(m)
        c = Mid$(m, i, 1)
'
        Select Case Asc(c)
'
        Case 138: c = Chr(83)               'Š -> S
        Case 140: c = Chr(79) & Chr(69)     'Π-> OE
        Case 142: c = Chr(90)               'Ž -> Z
        Case 154: c = Chr(115)              'š -> s
        Case 156: c = Chr(111) & Chr(101)   'œ -> oe
        Case 158: c = Chr(122)              'ž -> z
        Case 159: c = Chr(89)               'Ÿ -> Y
        Case 170: c = Chr(97)               'ª -> a
        Case 192 To 197: c = Chr(65)        'À... -> A
        Case 198: c = Chr(65) & Chr(69)     'Æ -> AE
        Case 199: c = Chr(67)               'Ç -> C
        Case 200 To 203: c = Chr(69)        'È... -> E
        Case 204 To 207: c = Chr(73)        'Ì... -> I
        Case 210 To 214: c = Chr(79)        'Ò... -> O
        Case 217 To 220: c = Chr(85)        'Ù... -> U
        Case 221: c = Chr(89)               'Ý -> Y
        Case 224 To 229: c = Chr(97)        'à -> a
        Case 230: c = Chr(97) & Chr(101)    'æ -> ae
        Case 231: c = Chr(99)               'ç -> c
        Case 232 To 235: c = Chr(101)       'è... -> e
        Case 236 To 239: c = Chr(105)       'ì... -> i
        Case 242 To 246: c = Chr(111)       'ò... -> o
        Case 249 To 252: c = Chr(117)       'ù... -> u
        Case 253, 255: c = Chr(121)         'ý... -> y
        End Select
'
        PrOut = PrOut & c
    Next
End Function



ROGER2327
#6337


Lundi 2 Décervelage 140 (Saints Hassassins, praticiens - fête Suprême Quarte)
10 Nivôse An CCXXI, 4,7789h - fléau
2012-W52-7T11:28:10Z
 

Pièces jointes

  • XLD_198229_Subtitution et recherche de caractères.xls
    46 KB · Affichages: 86

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Verifier si la cellule contient 4 lettres identiques

Bonjour,

Avec une fonction perso SansAccent()

=SI(ET(ESTNUM(CHERCHE(STXT(sansaccent(A1);LIGNE(INDIRECT("1:"&NBCAR(A1)));1);A2)));"ok";"ko")


Dans un module

-Alt+F11
-Insertion/Module

Code:
Function sansAccent(chaine)
   codeA = "ÉÈÊËÔéèêëàçùôûïî"
   codeB = "EEEEOeeeeacuouii"
   temp = chaine
   For i = 1 To Len(temp)
    p = InStr(codeA, Mid(temp, i, 1))
    If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1)
   Next
   sansAccent = temp
End Function

JB
 

Pièces jointes

  • Copie de Classeur2.xls
    22.5 KB · Affichages: 59
  • Copie de Classeur2.xls
    22.5 KB · Affichages: 56
  • Copie de Classeur2.xls
    22.5 KB · Affichages: 61
Dernière édition:

Amiatous

XLDnaute Nouveau
Re : Verifier si la cellule contient 4 lettres identiques

Bonsoir Sandra75,

Il y a sûrement plus court mais:

=SI(ESTERREUR(SI(ET(TROUVE("o";A2;1)>0;TROUVE("s";A2;1)>0;TROUVE("p";A2;1)>0;TROUVE("l";A2;1)>0);"ok";"pas ok"))=VRAI;"pas ok";"ok")


@+

Denis

Salut camarchepas
24​
Ami a tous DanielokAmi a t =SI(ESTERREUR(SI(ET(TROUVE(D20&""&SI(ET(D20<>"";D22<>"";D21="");" ";SI(D21="";"";D21))&""&D22;A20;1)>0);"ok";"pas ok"))=VRAI;"pas ok";"ok")
25​
ous Trouve 1 Suite de Mots Sur 3 Lignes
26​
Daniel
27​
28​
Ami a tous DanielokAmi a =SI(ESTERREUR(SI(ET(TROUVE(D29;A29;1)>0);"ok";"pas ok"))=VRAI;"pas ok";"ok")Trouve 1 Suite de Mots sur 1 Ligne
29​
30​
Ami a tous DanielokAmi
31​
Daniel =SI(ESTERREUR(SI(ET(TROUVE(D31;A31;1)>0;TROUVE(D32;A31;1)>0);"ok";"pas ok"))=VRAI;"pas ok";"ok")Trouve 2 Partie de Mots
32​
33​
ABCDEFGHIJKLMNOP 34
 

Pièces jointes

  • sandra.xlsx
    13.1 KB · Affichages: 1

Discussions similaires

Statistiques des forums

Discussions
314 024
Messages
2 104 754
Membres
109 136
dernier inscrit
Seb31000