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 :

Probleme dans mes conditions pour VLOOKUP


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Janvier 2013
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Janvier 2013
    Messages : 88
    Points : 52
    Points
    52
    Par défaut Probleme dans mes conditions pour VLOOKUP
    Bonjour à tous,

    je fais une macro qui comporte un vlookup,

    toutefois je mets une condition:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If WorksheetFunction.CountIf(Workbooks(str).Worksheets("Pf").Range("C4:C29701"), .Range("BS3").Offset(i, -69) = "h s") Then
    au fait je demande si 69 cellules avant BS3, y a marqué h s alors il me fait mon vlookup.

    sauriez vous ou est le probleme ou comment faire pour executer?

    En vous remerciant par avance,

  2. #2
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonsoir,

    Une piste :
    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
     
    Dim Plage As Range
    Dim NB As Long
    Dim Mot As String
     
    With Workbooks(Str).Worksheets("Pf")
     
        Set Plage = .Range("C4:C29701")
     
        Mot = .Range("B" & i + 3)
     
        'recherche le mot se trouvant dans la cellule en cours (i) de la colonne B
        NB = WorksheetFunction.CountIf(Plage, Mot)
     
        'si il est présent au moins une fois
        If NB <> 0 Then
     
            'ici la fonction VlookUp à la place du message ci-dessous...
            MsgBox "Le mot '" & Mot & "' se trouve " & NB & " fois dans la plage '" & Plage.Address(0, 0) & "' !"
     
        Else
     
            MsgBox "'" & Mot & "' pas trouvé !"
     
        End If
     
    End With
    Colonne BS (71) - 69 = colonne B, il suffit donc de chercher dans la colonne B directement et comme tu décale de ligne avec i, il suffit de boucler en rajoutant 3 à range("B" & i) donc Range("B" & i + 3)

    Hervé.

  3. #3
    Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Janvier 2013
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Janvier 2013
    Messages : 88
    Points : 52
    Points
    52
    Par défaut
    Bonjour, merci pour ta reponse,

    j'ai essayé avec ta methode (qui est differente de la mienne).
    toutefois j ai un probeme avec mon vlookup toujours,
    voici ma macro:

    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
    Dim Plage As Range
    Dim NB As Long
    Dim mot As String
     
    With ThisWorkbook.Worksheets("S i")
     
        Set Plage = .Range("A2:CZ1000")
     
        mot = .Range("B" & i + 3)
        mot = "h s"
        'recherche le mot se trouvant dans la cellule en cours (i) de la colonne B
        NB = WorksheetFunction.CountIf(Plage, mot)
     
        'si il est présent au moins une fois
        If NB <> 0 Then
     
            'ici la fonction VlookUp à la place du message ci-dessous...
            .Range("BS3").Offset(i, 0) = WorksheetFunction.VLookup(.Range("BS3").Offset(i, -69), Workbooks(str).Worksheets("Donnees").Range("A2:P1000"), 16, False)
     
        Else
     'rien
     
        End If
     
    End With
    au fait pour te resumer je vais chercher mes documents dans le workbook str et je les place dans this workbooks.

    j aurai 2 questions si ca ne te derange pas:

    -quand faut il que je dise que le mot à chercher dans la cellule BS3 -69 qui est la cellule B que le mot à chercher est "h s" ?

    - saurais tu ou est le probleme de mon vlookup.

    Merci pour ton aide.

    Bien cordialement,

  4. #4
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Désolé pour le retard, je ne suis pas toujours disponible en ce moment.

    Dans la fonction VLookup (RECHERCHEV) la recherche doit se faire sur la première colonne de la matrice, est-ce le cas pour toi ? Sinon, il te faut soit organiser les colonnes autrement soit utiliser une autre façon de faire.
    Extrait de l'aide :
    La valeur à chercher dans la première colonne de la matrice du tableau. valeur_cherchée peut être une valeur ou une référence

    Au moins deux colonnes de données. Utilisez une référence à une plage ou un nom de plage. C'est sur les valeurs de la première colonne de table_matrice que porte "valeur_cherchée"
    Hervé.

Discussions similaires

  1. Probleme dans mes tableaux
    Par jacko842 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 02/01/2008, 13h41
  2. HELP ! probleme dans une fct pour compression
    Par ryoussef19 dans le forum VC++ .NET
    Réponses: 8
    Dernier message: 28/08/2007, 11h06
  3. [Débutant]problemes avec mes conditions
    Par Rafsky dans le forum Langage
    Réponses: 3
    Dernier message: 03/07/2007, 13h02
  4. Probleme dans une condition
    Par 12_darte_12 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/02/2006, 12h50
  5. Problème dans une condition
    Par gibet_b dans le forum Linux
    Réponses: 4
    Dernier message: 31/05/2005, 10h19

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