Probléme avec Fonction Like

jemmy1989

XLDnaute Nouveau
bonjour
dans VBA la fonction Like fonctionne quand je limite un champ compris entre 0 et 9 mais pas au delas
vous devrez comprendre dans ces exemples

Code:
Sub exemple1()
ma_variable = "5"
If ma_variable Like "[4-7]" Then ' => VRAI
MsgBox ("ok")
End If
End Sub

Sub exemple2()
ma_variable = "32"
If ma_variable Like "[30-40]" Then ' => FAUX!!
MsgBox ("ok")
End If
End Sub

c'est la méme procédure sauf les nombres qui changent
 

Modeste geedee

XLDnaute Barbatruc
Re : Probléme avec Fonction Like

Bonsour®
parce que l'on parle de caractère (position unique) qui peut contenir la représentation d'un chiffre et non de nombre !!
Un groupe d'un ou plusieurs caractères (argument charlist) délimité par des crochets ([ ]) permet de sélectionner tout caractère unique de l'argument string
ex : like "[6-7]##[0-9]" ' comparaison de nombres de 6000 à 7999
ou bien :
like "4##[4-8]" ' tout nombre de 4 chiffres dans la séquence 4000 se terminant par 4, 5, 6, 7 ou 8
 
Dernière édition:

eriiic

XLDnaute Barbatruc
Re : Probléme avec Fonction Like

Bonjour,

Ta variable n'est pas uniquement numérique ?
Si oui il ne faut pas la déclarer en chaine et tu peux utiliser Select Case :
Code:
Sub exemple1()
    Dim ma_variable As Long
    ma_variable = 5
    Select Case ma_variable
    Case 4 To 7
        MsgBox "tranche 1"
    Case 30 To 40
        MsgBox "tranche 2"
    Case Else
        MsgBox "tranche je-sais-pas"
    End Select
End Sub
La ville de Cuire fut rattachée à la ville de Caluire en 1790
J'ai simplement abrégé le nom de ma ville ou suis resté à cette époque.
Purée, t'es vieux... Tu as démarré sur la machine de Pascal ?
eric
 
Dernière édition:

CPk

XLDnaute Impliqué
Re : Probléme avec Fonction Like

Bonjour jemmy, de quelle limitation parles-tu ?

Code:
ma_variable = "321"
If ma_variable Like "3[1-9]1" Then ' => vrai

ma_variable = "3"
If ma_variable Like "?" Then ' => vrai

Je pense que la fonction like, aux frontières du fonctionnement des expressions régulières à quand même son utilité en matière de recherche de format particulier.

Code:
Sub test()
v = "a3q"
If v Like "[a-z]?[a-z]" Then Debug.Print v
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 488
Messages
2 088 859
Membres
103 978
dernier inscrit
bderradji