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 intégral sur 2 feuilles dans 2 classeurs différents


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2015
    Messages : 14
    Par défaut VLookUP intégral sur 2 feuilles dans 2 classeurs différents
    Bonjour !

    Je n'arrive pas à trouver une solution à ma problématique qui est la suivante :
    Comment faire pour faire un VLookUP (équivalent du RechercheV donc) sur 2 feuilles Excel situées dans 2 fichiers différents de façon intégrale (jusqu'à la dernière ligne) ?

    J'ai réussi auparavant à faire un VLookUP intégral sur 2 feuilles d'un même classeur, puis par la suite à faire un VLookUP sur une plage donnée mais cette fois-ci sur 2 classeurs différents.

    Je bloque donc ici :

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Sub Ajout_test()
     
    Dim ClasseurRef As Workbook 'Classeur de ref
    Dim LastRowEB As Long ' Dernière ligne EB
    Dim LastRowRef As Long ' Dernière ligne fichier de ref
    Dim feuilleEB As Worksheet ' Feuille EB
    Dim feuilleRef As Worksheet ' Feuille ref
     
    ClasseurEB = ActiveWorkbook.Name
     
    ThisWorkbook.Activate
     
    Set feuilleEB = Workbook.Sheets("Feuil1")
    Set ClasseurRef = Workbooks.Open("D:\...\Fichier2.xlsx")
     
    ClasseurRef.Activate
    Set feuilleRef = Workbooks("ClasseurRef").Worksheets("Feuil1")
     
     
    With feuilleRef
        'Détermine dernière ligne du fichier de ref
        EBLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
    End With
     
     
    With fichierARemplir
        'Détermine dernière ligne du fichier de ref dans la colonne B
       LastRowRef = .Cells(.Rows.Count, "C").End(xlUp).Row
     
        'Application de la formule de copie de données sur la colonne B de la feuille EB
        .Range("B2:B" & LastRowEB).Formula = _
       "=VLOOKUP(A2,'" & feuilleRef.Name & "'!$B$2:$C$" & LastRowRef & ",2,0)"
    End With
     
    ClasseurRef.Close savechanges:=False
    Set ClasseurRef = Nothing
     
    End Sub
    J'obtiens une erreur à cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ClasseurRef.Activate
    Set feuilleRef = Workbooks("ClasseurRef").Worksheets("Feuil1")
    Merci d'avance pour votre aide !

    Cordialement,

    Nicolas

  2. #2
    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,

    dommage que tu n'est pas lu et reporter le message d'erreur


    sinon ... c'est bien d'utiliser des objet workbook pour référencer tes classeurs mais il ne faut pas l'oublier ensuite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set feuilleRef = Workbooks("ClasseurRef").Worksheets("Feuil1")
    ClasseurRef n'est pas le nom d'un objet workbook mais c'est une variable de type workbook tu l'utilise donc directement pas besoin de passer par la collection de classeurs ( workbooks)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set feuilleRef = ClasseurRef.Worksheets("Feuil1")

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2015
    Messages : 14
    Par défaut
    Ah oui autant pour moi..

    Le code erreur est le suivant :

    " Erreur d'exécution '424' : Objet requis ".

    J'essaierai ça demain, merci pour la réponse je ne savais pas (débutant en VBA) !

    Bonne soirée,

    Nicolas

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2015
    Messages : 14
    Par défaut
    Bonjour !

    Après rectification de l'erreur qu'on m'a faite remonter hier et après modification de quelques autres erreurs, mon code se lance mais..Mais ne fait absolument rien. Pas d'erreur, pas de changement. D'où pourraient venir les soucis ?

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Sub Test()
     
     
    Dim ClasseurRef As Workbook 'Classeur de ref
    Dim ClasseurEB As Workbook
    Dim LastRowEB As Long ' Dernière ligne EB
    Dim LastRowRef As Long ' Dernière ligne fichier de ref
    Dim feuilleEB As Worksheet ' Feuille EB
    Dim feuilleRef As Worksheet ' Feuille ref
     
    Set ClasseurEB = Workbooks.Open("D:\...Test Recherche.xlsm")
    'ClasseurEB = ActiveWorkbook.Name
     
    ThisWorkbook.Activate
     
    Set feuilleEB = ClasseurEB.Worksheets("Feuil1")
     
    Set ClasseurRef = Workbooks.Open("D:\...\Fichier2.xlsx")
    ClasseurRef.Activate
    Set feuilleRef = ClasseurRef.Worksheets("Feuil1")
     
     
    With feuilleRef
        'Détermine dernière ligne du fichier de ref
        LastRowRef = .Cells(.Rows.Count, "B").End(xlUp).Row
    End With
     
     
    With feuilleEB
        'Détermine dernière ligne du fichier de ref dans la colonne B
       LastRowEB = .Cells(.Rows.Count, "A").End(xlUp).Row
     
        'Application de la formule de copie de données sur la colonne B de la feuille EB
        .Range("B2:B" & LastRowEB).Formula = _
       "=VLOOKUP(A2,'" & feuilleRef.Name & "'!$B$2:$C$" & LastRowRef & ",2,0)"
    End With
     
    ClasseurRef.Close savechanges:=False
    Set ClasseurRef = Nothing
     
    End Sub
    Merci d'avance !

Discussions similaires

  1. [XL-2010] somme.si sur plusieurs feuilles dans un classeur
    Par biquet52 dans le forum Excel
    Réponses: 3
    Dernier message: 21/10/2011, 14h14
  2. VBA-Recherche d'une feuille dans plusieurs classeurs
    Par derf3183 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 13/07/2006, 14h50
  3. [VBA-E]Existence d'une feuille dans un classeur EXCEL
    Par marie10 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 06/04/2006, 15h58
  4. VB6 : création de feuilles dans un classeur Excel
    Par getea85 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 04/11/2005, 16h37
  5. Changer de feuille dans un classeur Excel
    Par couiss dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 09/05/2005, 10h05

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