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 :

Recherche V avec macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Février 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Février 2015
    Messages : 23
    Par défaut Recherche V avec macro
    Bonjour à tous,

    Sur un classeur A je cherche à faire un Vlookup pour des données se trouvant sur une feuille 1 se situant sur un autre classeur.
    Le problème est que cette feuille 1 a été définie dans ma Macro comme variable V1.

    Donc quand je fais un vlookup de la sorte =vlookup(cellule du classeur A; feuille 1 - plage de données; 4; false) ca marche très bien
    Mais quand j'écris =vlookup(cellule du classeur A; V1 - plage de données; 4; false) ca ne marche pas

    pourriez vous m'expliquer comment faire?

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Il faudrait voir le code exact que tu utilises.
    En principe, tu dois séparer le texte de la formule des variables, du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...="=vlookup(cellule du classeur A;" & V1 & " - plage de données; 4; false)"
    Et les points-virgules devront être des virgules si tu utilises Formula

  3. #3
    Membre averti
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Février 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Février 2015
    Messages : 23
    Par défaut
    Merci pour cette réponse,

    Voila mon code car ça ne marche pas (end of statement voulu):

    La feuille 1 (variable W2) est comprise dans un classeur B (variable M2):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("E2").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],[" & M2.Name & "]" & W2.Name & "!C3:C8,4,FALSE)"
    merci par avance

  4. #4
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Février 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 16
    Par défaut
    Bonjour,

    Voici 3 lignes de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],[" & m2.Name & "]" & w2.Name & "!R2C1:R8C3,2,FALSE)"
     
    ActiveCell.Value = "=VLOOKUP(D2,[" & m2.Name & "]" & w2.Name & "!A2:C8,2,FALSE)"
     
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],[" & m2.Name & "]" & w2.Name & "!A2:C8,2,FALSE)"
    La première et la deuxième fonctionnent mais pas la troisième car j'ai remplacé R2C1:R8C3 par A2:C8.
    La propriété utilisée sur la deuxième ligne est Value à la place de FormulaR1C1

    Attention : Ta plage de cellules C3:C8 ne correspond qu'à une seule colonne et tu veux récupérer le contenu de la 4.

    Cordialement
    Francis

  5. #5
    Membre averti
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Février 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Février 2015
    Messages : 23
    Par défaut
    Super je comprends bien la différence, je ne connaissais la nuance entre ces formules.

    Pour revenir a la Macro, j'ai toujours un problème.

    En copiant le code ci-dessous, j'ai une boîte de texte qui s'ouvre en me disant "Object Variable or With Block variable not set", est ce que je fais quelque chose de mal?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("E2").Select
    ActiveCell.Value = "=VLOOKUP(D2&1,[" & M2.Name & "]" & W2.Name & "!C2:H500,4,FALSE)"
    merci

  6. #6
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Février 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 16
    Par défaut
    Hello,
    Dans ta ligne : ActiveCell.Value = "=VLOOKUP(D2&1,[" & M2.Name & "]" & W2.Name & "!C2:H500,4,FALSE)"
    Excel ne comprends pas D2&1

    Je te joint le code que j'ai utilisé pour tester ton problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      Dim w2 As Object
        Dim m2 As Object
        Set w2 = Worksheets("données")
        Set m2 = Workbooks("classeur1.xls")
    Range("E2").Select
    ActiveCell.Value = "=VLOOKUP(D2,[" & m2.Name & "]" & w2.Name & "!A2:C8,2,FALSE)"
    Cordialement

    Francis

Discussions similaires

  1. Recherche matricielle avec Macro VBA (Find?)
    Par Phakops92 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 23/05/2013, 15h43
  2. Recherche V avec Macro
    Par cyr.il10 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/01/2012, 15h24
  3. [XL-2010] Macro ou Formule pour une recherche verticale avec condition
    Par Orsaylg dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/09/2010, 13h22
  4. macro recherche chiffre avec virgule
    Par mizou00 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/08/2010, 16h02
  5. Recherche avec macro
    Par sararoya dans le forum Access
    Réponses: 7
    Dernier message: 19/01/2007, 22h40

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