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 :

vlookup --> problème


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 282
    Points : 89
    Points
    89
    Par défaut vlookup --> problème
    Bonjour,
    J'ai un problème avec le code suivant.
    j'ai un tableau en deux colonnes, l'une pour les username et l'autre pour le profil

    Le code bloque quand le username n'est pas présent dans le tableau
    Je voudrais que s'il n'est pas présent il lance "call affichage"

    merci pour votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     
        Dim user As String, profil As String
     
        user = Application.UserName
     
        profil = Application.WorksheetFunction.VLookup(user, Sheets("setup").Range("E3:F14"), 2, 0)
     
        Application.ScreenUpdating = False
        If Not Application.Intersect(Target, Range("A3")) Is Nothing Then
             'procèdure selon username.system
                If profil = "F" Then
                Call AffichageF
                Else
                    If profil = "R" Then
                    Call AffichageR
                    Else
                    Call Affichage
                    End If
                Call Affichage
                ActiveWindow.DisplayHorizontalScrollBar = True
                End If
                Application.ScreenUpdating = True
        End If
        Application.ScreenUpdating = True
     
    End Sub

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Le code bloque quand le username n'est pas présent dans le tableau
    Un code qui bloque ne veut rien dire.
    Quelle ligne du programme, quel message d'erreur et éventuellement la valeur des variables utilisées à cet endroit.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre régulier
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 282
    Points : 89
    Points
    89
    Par défaut
    En fait, si l'username est dans le tableau pas de soucis
    mais s'il n'est pas présent, le system répond "impossible de lire la propriété vlookup de la classe worksheetfunction"

    une erreur ou un oubli dans mon code

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Avec la fonction RECHERCHEV d'excel, nous recevons la valeur N/A# si la valeur n'est pas trouvée en VBA c'est le message d'erreur signalée
    Pour résoudre le problème, il faut utiliser un ON ERROR
    A lire le tutoriel La gestion des erreurs dans Excel
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre régulier
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 282
    Points : 89
    Points
    89
    Par défaut
    Un tout grand merci, problème résolu.

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour,

    pour rappel pas besoin de gestion d'erreur en n'utilisant surtout pas WorksheetFunction
    mais juste Application et en affectant le résultat dans une variable de type Variant si nécessaire …

    Ce résultat pouvant alors facilement être contrôlé via la fonction VBA IsError

    _________________________________________________________________________________________________________
    Je suis Paris, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

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

Discussions similaires

  1. Vlookup macro problème
    Par SeniorBILL dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 11/06/2013, 19h42
  2. vlookup avec problème sur la méthode range
    Par Nako_lito dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/09/2009, 12h34
  3. Problème de VLOOKUP
    Par GuyRo dans le forum Excel
    Réponses: 2
    Dernier message: 03/12/2007, 12h43
  4. Problème avec VLOOKUP
    Par freyliss dans le forum Excel
    Réponses: 7
    Dernier message: 23/07/2007, 12h02
  5. Problème avec VLookup sous VBA
    Par julio26 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 20/07/2007, 14h03

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