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 :

RechercheV avec variables ! [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2013
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 148
    Par défaut RechercheV avec variables !
    Bonjour à tous,

    j'ai un petit problème concernant le paramètrage de ma RechercheV, je vous explique:

    j'ai un premier fichier, contenant les informations à rapporter.
    Et un deuxième fichier excel où je veux rapporter mes informations.

    Au début de ma macro, j'ai une variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            stFichier_EP = Application.GetOpenFilename
            Workbooks.Open Filename:=stFichier_EP
    me permettant de localiser le premier fichier.
    Dans mon deuxième fichier, j'ai ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            While Not IsEmpty(Range("D" & j))
            Range("J" & j).FormulaR1C1 = _
            "=VLOOKUP(RC[-6],'[Etat_Parc.xls]Export Demandes en Masse'!R2C1:R1140C4,2,FALSE)"
            j = j + 1
            Wend
    La fonction marche, cependant j'ai essayé de plusieurs façons mais je ne parviens à trouver la bonne pour:
    -à la place de [Etat_Parc.xls] je veux mettre ma variable stFichier_EP afin que n'importe où se trouvent les deux fichiers la macro marchent.

    - à la place de Export Demandes en Masse avoir simplement la feuil1 (la première feuille sachant que sont nom peut varier)


    - à la place de R2C1:R1140C4 avoir R2C1:R& i &C4, car le nombre de ligne peut varier.

    Merci de votre aide

  2. #2
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Billets dans le blog
    5
    Par défaut
    bonjour,

    essayes ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... = "=VLOOKUP(RC[-6],'[" & stFichier_EP & "]" & Workbooks(stFichier_EP).Sheets(1).Name & "!R2C1:R" & i & "C4",2,False)"

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2013
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 148
    Par défaut
    Bonjour,

    merci de votre réponse, mais il y a une erreur de code, vba surligne la virgule avant le 2, et met comme message d'erreur "Atttendu : fin d'instruction".

    Je ne trouve pas l'erreur, une erreur de côte ?

    Merci !

    PS: j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "=VLOOKUP(RC[-6],'[" & stFichier_EP & "]" & Workbooks(stFichier_EP).Sheets(1).Name & "'!R2C1:R" & i & "C4,2,False)"
    mais message d'erreur: erreur d'execution 9
    l'indice n'appartient pas à la sélection

    Et au passage, est-il possible d'utiliser un SI pour dire que si la RECHERCHEV n'a rien rapporté, alors... je pense créer un onglet avec les cas non trouvés.

    Merci

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2013
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 148
    Par défaut
    L'erreur vient visiblement de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "]" & Workbooks(stFichier_EP).Sheets(1).Name & "
    ainsi que de ma variable contenant le chemin d'accès au fichier...
    Une fois ma macro éxécutée, j'obtient cette formule dans le fichier Excel:

    =RECHERCHEV(D2;'[C:\Users\mon_nom\Desktop\test\[exportEtatDeParc-20130502-104848 - Copie.xls]]exportEtatDeParc-20130502-10484'!$A$2:$D$1141;2;FAUX)

    alors que la bonne formule devrait être:

    =RECHERCHEV(D2;'[exportEtatDeParc-20130502-104848 - Copie.xls]Export Demandes en Masse'!$A$2:$D$1140;2;FAUX)


    lorsque je met :

    =RECHERCHEV(D2;'[C:\Users\mon_nom\Desktop\test\[exportEtatDeParc-20130502-104848 - Copie.xls]]Export Demandes en Masse'!$A$2:$D$1140;2;FAUX)

    j'ai un problème sur le 'C:'.

    Sinon j'ai peu être une autre solution, mais est-il possible de jouer avec cette chaine de caractère:
    C:\Users\mon_nom\Desktop\test\exportEtatDeParc-20130502-104848 - Copie.xls

    est de supprimer la partie de droite jusqu'au premier '\' pour avoir:
    C:\Users\mon_nom\Desktop\test

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,


    essai d'utiliser une variable workbook pour ton classeur :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim wk as workbook 
    (...)
    set wk = Workbooks.Open (Filename:=stFichier_EP)
    (...)
    "=VLOOKUP(RC[-6],'[" & wk.name & "]" & wk.Sheets(1).Name & "'!R2C1:R" & i & "C4,2,False)"
    (..)

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2013
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 148
    Par défaut
    Merci pour la réponse mais ça me met "erreur automation"...

    J'ai presque réussi, il faut que j'obtienne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '=RECHERCHEV(LC(-6);'G:\Commun\Stagiaire\mon_nom\[Stage[Etat_Parc.xls]Export Demandes en Masse]Export Demandes en Masse'!L2C1:L1140C4;2;FAUX)
    à partir de ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "=VLOOKUP(RC[-6],'[Etat_Parc.xls]Export Demandes en Masse'!R2C1:R1140C4,2,FALSE)"
    Personne n'a une idée ? svp

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

Discussions similaires

  1. [XL-2003] RECHERCHEV avec variable, dans un classeur ferme,
    Par apnw7931 dans le forum Excel
    Réponses: 6
    Dernier message: 17/02/2012, 22h22
  2. [XL-2007] rechercheV avec colonne variable
    Par lokura dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/01/2012, 17h58
  3. [XL-2003] RechercheV avec élément à moitié variable
    Par Djohn dans le forum Excel
    Réponses: 2
    Dernier message: 26/08/2011, 10h37
  4. [XL-2003] Fonction RECHERCHEV avec nom de variable en source
    Par brunop3165 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/06/2011, 00h19
  5. [XL-2003] RechercheV avec paramètre variable
    Par Gayzou dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 26/07/2010, 10h39

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