Option « Matchcase » dans la fonction VLookup
Bonne après-midi à chacun (et bientôt bon Weekend),
Voici un petit programme qui utilise la VLookup. Mais il ne tient pas compte des majuscules. Si je cherche « a » il me répond « 1 » alors qu’il devrait le répondre seulement pour « A ».
Ma question : Comment introduire « MatchCase:=True » dans la fonction VLookup ?
Voici les données :
A 1
B 2
C 3
D 4
Voici le code :
Code:
1 2 3 4 5 6 7 8 9 10
| Sub NuméroLigneR()
Dim R As Variant, ValeurCherchée As String
ValeurCherchée = InputBox("Valeur cherchée ? ")
R = Application.VLookup(ValeurCherchée, Range("A1:B4"), 2, False)
If IsError(R) Then
MsgBox "Valeur inexistante"
Else
MsgBox R
End If
End Sub |
Merci par avance.
RéviAT
Option « Matchcase » dans la fonction VLookup
Bonsoir "fring",
Tu m'as déjà aidé sur une autre difficulité. Merci encore.
Ta solution fonctionne bien, et j'avais moi-même une fonction de recherche avec Find, mais elle est beaucoup moins rapide parce que Find n'exploite pas le fait que la liste est triée.
Je suis en train de chercher une solution pour mon problème en faisant un test du genre "if truc = Lcase(truc) then ..." pour savoir s'il y une majuscule dans "Valeur cherchée".
Ma véritable difficulité se situe maintenant de la variable R qui est déclarée "Variant".
Comment récupérer son contenu "chaine de caractère" dans une variable de type "String", ou son contenu numérique dans une variable "Integer", par exemple en mettant Itruc = Val(R). mais cela ne marche pas.
Bref j'ai une difficulté pour lire cette variable R. As-tu une explication ?
Bonne soirée.
RéviAT (58 ans)
Option « Matchcase » dans la fonction VLookup
Bonjour "fring"
Hier soir je disais un peu n'importe quoi avec les variables "Variant".
Mais la nuit portant conseil j'ai résolu la difficulité.
Voici le code qui fonctionne en respectant majuscule / minuscule :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Sub NuméroLigneR()
Dim R As Variant, ValeurCherchée As String
ValeurCherchée = InputBox("Valeur cherchée ? ")
R = Application.VLookup(ValeurCherchée, Range("A1:B4"), 2, False)
If IsError(R) Then
MsgBox "Valeur inexistante"
Else
If Cells(Val(R), 1) = ValeurCherchée Then
MsgBox R
Else
MsgBox "Valeur inexistante (majuscule/minuscule)"
End If
End If
End Sub |
Merci de ton aide.
A bientôt (car je ne suis pas bout de mes questions).
RéviAT