Le texte contient mot avec une variable

Bonjour à tous,

Je voudrais réduire la liste d'une BD sur le critére d'un mot, en utilisant un textbox contenant ce mot et une listbox pour la liste réduite.

Sub test()
Dim maligne$, madonnee$
madonnee = "iphone"
maligne = "réparation Iphone S7 blablabla bla"
If maligne Like "*[ & madonnee & ]*" Then MsgBox maligne 'ok mais pas restictif
End Sub

J'ai essayé avec le cours d'ici j'ai pas de bug mais çà ne réduit pas la liste au mot saisit

6test.xlsm (21.75 Ko)

Merci

Bonjour,

Teste ceci

5test.xlsm (22.40 Ko)

Bonjour fronck, bonjour M12,

Je ne comprends pas trop comment est écrit ton test conditionnel, du coup je l'ai écris de la façon que je connais, j'ai aussi changé d'autres choses:

nomCde = LCase(Me.nomCde.Text)

Pour que les majuscules ne soient pas bloquantes.

et pour le nouveau test:

If LCase(ws1.Cells(i, 4)) Like "*" & nomCde & "*" Then

pareil j'utilise LCase() pour ne pas me soucier des majuscules.

Le résultat:

5test-2.xlsm (23.42 Ko)

bonjour,

Private Sub nomCde_change()
     'liste noms selon 1eres lettres
     Dim LC

     ListSces.Clear

     Set LC = Sheets("Cdes clients").ListObjects("Tableau1").ListColumns("Résumé Service")
     Select Case LC.Range.Rows.Count
          Case 1: MsgBox "no data": Exit Sub 'seulement l'entête
          Case 2: If LC.DataBodyRange.Cells(1) Like "*" & Me.nomCde.Text & "*" Then ListSces.AddItem LC.DataBodyRange.Cells(1).Value: Exit Sub
          Case Is > 2
               fl = Filter(Application.Transpose(LC.DataBodyRange.Value), Me.nomCde.Text, 1, 1)
               If UBound(fl) > -1 Then ListSces.List = fl
     End Select

End Sub

Bonjour à tous,

Merci pour vos réponses, j'ai le choix.

M12 et ausecour, vous avez finalement donné la même solution à part que M12 rajouté VBA que je connais pas, çà fait quoi en plus VBA. M12?

nomCde = VBA.LCase(Me.nomCde.Value)

Cà fonctionne aussi avec le code de Bsalv, mais là y'a que le vba en commun , non en fait c'est moi qui suis à l'ouest.

j'arrive à comprendre en gros, mais je cerne pas trop le case is > 2.

Merci à vous 3

bonjour, M12, AuSecours, Fronck, le fil,

Comme première ligne de cette module (à répéter dans chaque module si nécessaire), on peut ajouter "Option Compare Text", qui fait que les comparaisons de texte dans tout ce module (et alors aussi le "LIKE") ne sont plus sensibles aux majuscules/miniscules. Alors on peut oublier tous ces lcase et ucase. On peut aussi utiliser StrComp (ni dans le cas LIKE)

If StrComp(StringA, StringB, 1) = 0 Then

exemple

Option Compare Text

Private Sub nomCde_change()
     'liste noms selon 1eres lettres
     Dim drl%, i%, ws1 As Worksheet
     Set ws1 = Sheets("Cdes clients")
     nomCde = Me.nomCde.Value
     drl = ws1.Range("B" & Rows.Count).End(xlUp).Row
     ListSces.Clear
     If nomCde <> "" Then
          For i = 2 To drl
               If ws1.Cells(i, 4).Value Like "*" & nomCde & "*" Then
                    ListSces.AddItem ws1.Cells(i, 4)
               End If
          Next
     End If
End Sub
Rechercher des sujets similaires à "texte contient mot variable"