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 :

[excel 2007] aide vlookup


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Août 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1
    Par défaut [excel 2007] aide vlookup
    Bonjour,
    j'utilise dans ma macro le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for i =2 to 100
    If Application.WorksheetFunction.VLookup(code, Range("A:C"), 3, False) <> equipe Then ... ... ...
    J'ai bien définie mes variables code et equipe, cependant il arrive que ma variable "code" ne soit pas trouvée dans la plage de recherche ce qui me provoque une erreur lors de l’exécution de ma macro.
    Je souhaiterai ajouter quelque chose du genre "on error...", pour que soit :
    - ça m'affiche une msgbox me disant "le code 'code' n'a pas était trouvé" et que m'a macro continue a s’exécuter
    - ou encore mieux, que ça me générer une liste dans un onglet de tous les codes qui n'ont pas été trouvés

    Merci pour votre aide!

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Ce n'est pas tres beau, mais ca fonctionne

    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
     
    On Error GoTo anomalie
    Dim i As Integer
     
    For i = 2 To 100
     
       If Application.WorksheetFunction.VLookup(code, Range("A:C"), 3, False) <> equipe then
            MsgBox "trouvé"
        End If
     
    GoTo fin:
     
    anomalie:
    MsgBox "pas trouvé"
     
    fin:
     
    Next i

  3. #3
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 122
    Par défaut
    SAlut
    Tu peux aussi faire comme ca, avec une liste de valeur de Code non trouvé dans TabRetourManquant.

    Plutôt que de générer une erreur et de la gérer ensuite, je préfère contrôler si on aura un résultat avec l'utilisation de VLookUp.
    On aurait aussi pu contrôler si VLookUp nous retourner #N/A à l'aide de isNA()....

    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
    Sub test()
    Dim retour
    Dim Code As String 'a modifier en fct°
    Dim TabRetourManquant() As String ' a definir en fonction du type de la variable Code
     
    ReDim TabRetourManquant(0)
    Code = "Essai2"
    If WorksheetFunction.CountIf(Columns("A"), Code) Then
        If WorksheetFunction.VLookup(Code, Range("A:C"), 3, False) <> equipe Then
            'Trouvé
        Else
            'non trouvé
            If TabRetourManquant(UBound(TabRetourManquant)) <> "" Then ReDim Preserve TabRetourManquant(UBound(TabRetourManquant) + 1)
            TabRetourManquant(UBound(TabRetourManquant)) = Code
        End If
    Else
        'non trouvé
        If TabRetourManquant(UBound(TabRetourManquant)) <> "" Then ReDim Preserve TabRetourManquant(UBound(TabRetourManquant) + 1)
        TabRetourManquant(UBound(TabRetourManquant)) = Code
    End If
     
    Erase TabRetourManquant
    End Sub
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. [XL-2007] Besoin d'aide fonction recherchev Excel 2007
    Par pressidor dans le forum Conception
    Réponses: 1
    Dernier message: 09/06/2012, 18h38
  2. Aide sur BarGraph Excel 2007
    Par floom dans le forum Excel
    Réponses: 0
    Dernier message: 18/11/2011, 15h40
  3. [XL-2007] Besoin d'aide erreur macro excel 2007
    Par nikkos29 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/12/2010, 20h54
  4. [XL-2007] Aide formule excel 2007
    Par adiboun dans le forum Excel
    Réponses: 3
    Dernier message: 05/10/2010, 14h51

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