Bonjour,
Merci de votre réponse.
En regardant ce que vous aviez modifié je me suis aperçu que vous aviez déclaré les TextBox en temps que string. Malheureusement, cela ne change rien, car je ne peux toujours pas avoir accès à toutes les TextBox.
Je me demande si ce n'est pas une histoire de focus, car lorsque je teste les ligne au changement de la TextBox avec la première fonction cela marche et cela teste bien le contenu de la TextBox :
1 2 3
| Private Sub TXT_NO_DE_REF_Change()
Rechercher "A", TXT_NO_DE_REF.Text
End Sub |
Mais lorsque je teste ma fonction test(), je ne peux pas avoir accès aux TextBox... Alors je me demande si lorsque j'appuie sur le bouton qui lance test() je perd le focus sur la TextBox et donc je ne peux plus tester son contenu...
1 2 3 4 5 6 7 8 9 10 11 12 13
| Sub test()
Dim ligne1 As Long
Dim TXT_NO_DE_REF As TextBox, TXT_DENOM As String, TXT_CARAC As String, TXT_NOM As String
Dim TXT_DATE As String
ligne1 = 100
If Not LCase(Range("A" & ligne1).Value) Like "*" & LCase(TXT_NO_DE_REF) & "*" And Not LCase(Range("B" & ligne1).Value) Like "*" & LCase(TXT_DENOM) & "*" And Not LCase(Range("C" & ligne1).Value) Like "*" & LCase(TXT_CARAC) & "*" And Not LCase(Range("D" & ligne1).Value) Like "*" & LCase(TXT_NOM) & "*" And Not LCase(Range("E" & ligne1).Value) Like "*" & LCase(TXT_DATE) & "*" Then
MsgBox "Ça marche !"
Else
MsgBox "Ça marche pas !"
MsgBox LCase(Range("A" & ligne1).Value) & " : " & LCase(TXT_NO_DE_REF.Value) & Chr(13) & LCase(Range("B" & ligne1).Value) & " : " & LCase(TXT_DENOM) & Chr(13) & LCase(Range("C" & ligne1).Value) & " : " & LCase(TXT_CARAC) & Chr(13) & LCase(Range("D" & ligne1).Value) & " : " & LCase(TXT_NOM) & Chr(13) & LCase(Range("E" & ligne1).Value) & " : " & LCase(TXT_DATE)
End If
End Sub |
Donc je pense qu'il faut que je me penche sur cette histoire de focus, mais je n'y connait rien. En fait il me faudrait une propriété (type .Text ou .Value) qui me permette de tester la valeur de la TextBox même sans le focus...
De plus j'ai remarqué que l'on peut déclarer une variable en temps que TextBox, cela pourrait-il m'aider ? Je ne trouve pas grand chose sur le sujet...
Dim maVariable as TextBox
Merci de m'avoir lu,
Bricomachin
Partager