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 entre deux workbooks


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
    Administrateur de base de données
    Inscrit en
    Septembre 2018
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2018
    Messages : 36
    Par défaut Vlookup entre deux workbooks
    J'ai crée une macro où le but est d'importer des données brutes d'un fichier source et de les modéliser.
    Maintenant quand je les fais venir je remplace quelque données par d'autre données qui y correspondent mais pour l'instant je copie colle les tableaux dans des feuilles dans mon fichier pour pouvoir utiliser vlookup ce qui rends mon fichier final très très.. moche.

    Je souhaiterai savoir s'il est possible d'utiliser vlookup mais sur un workbook extérieur ou je mettrais tous les tableaux qui me servent de filtre.
    exemple d'une ligne du code actuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Application.WorksheetFunction.VLookup(Sheets("Feuil1").Range("A" & i).Value, Sheets("ASPI AIB").Range("A:B"), 2, 0) = "No" Then
            Sheets("Feuil1").Range("A" & i).EntireRow.Delete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ThisWorkbook.Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Offset(0, 9).Value = Application.WorksheetFunction.VLookup(Trim(Right(wb.ActiveSheet.Range("BL" & i).Value, Len(wb.ActiveSheet.Range("BL" & i).Value) - Application.WorksheetFunction.Search("-", wb.ActiveSheet.Range("BL" & i).Value))), Sheet3.Range("A:B"), 2, 0) 'comments

    Merci à vous!

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour à toi, Bonjour au Forum,

    Bienvenu.

    Oui, il est possible d'effectuer une recherche par la fonction VLookUp sur un autre classeur.
    Cela dit, VBA n'est peut-être pas nécessaire.

    Si le passage par VBA t'est obligatoire, alors tu peux effectuer un essai par l'enregistreur.
    Plusieurs remarques.
    - Le code retourné par l'enregistreur est toujours à purger de méthodes et/ou propriétés inutiles (dont les Select)
    - Il faut bien veiller au rattachement des objets Range. Pour ce faire, l'utilisation du bloc With peut alléger le code.
    - Afin de rendre le code lisible et, partant, faciliter son contrôle, mieux vaut éviter des formules trop longues.
    Pour cela, on peut passer par des variables intermédiaires afin de les vérifier par la fenêtre des variables locales au sein de l'éditeur VBE.

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2018
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2018
    Messages : 36
    Par défaut
    Merci pour ta réponse.

    Il est vrai que je ne suis pas dans l'obligation d'utiliser VBA, c'est juste que vu que l'importation de données se fait en utilisant VBA et que ensuite je supprime certaines lignes en fonction du resultat de vlookup sur un tableau que je place dans une feuille de ce même wkbk, que je ne vois pas d'autre solution pour automatiser ceci mis à part VBA.

    J'ai essayé d'enregistrer la macro mais ça me donne une formule inutilisable dans ma macro de base. Est il vraiment possible d'utiliser cette fonction entre deux wkbk différents ? dont l'un est fermé ?

    Je ne vois vraiment pas comment faire autrement..

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut,

    La lecture d'un classeur fermé est possible
    Voir le tutoriel de Silkyroad à ce sujet.

    Pour ma part, j'évite cette méthode.
    En masquant les méthodes (propriétés ScreenUpdating de l'objet Apllication), il est préférable, à mon avis, de procéder ainsi
    - Ouvrir le classeur reportant les données à intégrer
    - Utiliser la méthode VLookup affectée aux valeurs des différentes cellules pour éviter une formulation, et ce même si un collage spécial de valeur est possible.
    - Refermer le classeur accessoire.

    Si une erreur survient lors de l'exécution du code, alors tu peux le retourner sur le Forum en explicitant la(les) ligne(s) qui pose(nt) problème.

Discussions similaires

  1. POI - copie de style en XSSF entre deux Workbook
    Par pcouas dans le forum Documents
    Réponses: 0
    Dernier message: 06/10/2015, 07h19
  2. Réponses: 10
    Dernier message: 14/05/2015, 10h41
  3. Temps de réponse entre deux sites
    Par coup dur dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 16/10/2003, 15h26
  4. Connexion entre deux ordi [Débutant]
    Par Ryadus dans le forum Développement
    Réponses: 2
    Dernier message: 12/06/2003, 21h47
  5. Réponses: 5
    Dernier message: 25/03/2003, 19h43

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