IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Option « Matchcase » dans la fonction VLookup


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 54
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonsoir,

    Je te propose une variante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub NuméroLigneR()
    Dim Vc As String
     
    Vc = InputBox("Valeur cherchée ? ")
     
    Set R = Columns(1).Find(What:=Vc, LookIn:=xlValues, _
        LookAt:=xlWhole, SearchOrder:=xlByColumns, MatchCase:=True)
     
    If Not R Is Nothing Then
    MsgBox R.Offset(0, 1)
    Else
    MsgBox "Valeur inexistante"
    End If
    End Sub

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 54
    Par défaut 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)

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    euhhh je ne te suis pas là, dans mon code je ne lis plus cette variable R.

    En supposant que tu en as une malgré tout, que veux tu faire avec cette variable ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 54
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Value d'une option en argument dans une fonction
    Par coincoin22 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/02/2014, 18h21
  2. Réponses: 1
    Dernier message: 20/07/2009, 11h54
  3. qu'est ce qui va pas dans cette fonction???
    Par access001 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/04/2006, 14h10
  4. [Postgresql]Connecter à une autre base dans une fonction
    Par alex2205 dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/05/2003, 12h30
  5. [Turbo Pascal] Allocation et désallocation de pointeurs dans une fonction
    Par neird dans le forum Turbo Pascal
    Réponses: 13
    Dernier message: 17/11/2002, 21h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo