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 dans classeur fermé grande débutante


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 14
    Par défaut Vlookup dans classeur fermé grande débutante
    Bonjour à tous,

    Dans le cadre de mon boulot j'explore un peu le VBA mais ce n'est pas du tout mon domaine.
    Après une semaine de recherches sur pas mal de forums, j'ai avancé mais je reste bloquée...
    Je me lance donc pour vous demander un coup de main

    Je souhaite créer la macro suivante.

    J'ai une base de donnée dans le fichier "classeur4" dans la feuille appelée "DROP 3456"

    Je travaille dans le fichier appelé "modelario" dans la feuille "Sheet1".

    Je souhaite sélectionner une cellule et que la macro recherche le contenu de cette cellule dans mon classeur4, et insère dans la cellule du dessous le contenu de la cellule qui est à droite dans le fichier classeur 4.


    Voilà ce que j'ai écrit pour le moment, évidemment ça ne marche pas...

    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
     
    Sub essai2()
     
    Dim x As Range
    Dim extwbk As Workbook
    Dim contenu as integer 
     
    Set extwbk = Workbooks.Open("C:\Users\iv\Documents\VBA\classeur4.xlsx")
    Set x = extwbk.Worksheets("DROP 3456").Range("A1:AQ22")
     
    Workbooks("modelario.xlsm").Activate
    contenu= ActiveCell.Value
    ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate
     
    ActiveCell.Value = Application.WorksheetFunction.VLookup(contenu, x, 2, False)
     
     
    End With
    End Sub
    J'ai un code d'erreur "13" à la ligne contenu= ActiveCell.Value
    La ou je bloque, c'est comment faire en sorte que le Vlookup recherche la valeur contenue dans la cellule qui était sélectionnée à la base
    J'ai écrit
    Dim contenu as integer
    contenu= ActiveCell.Value

    mais ce n'est visiblement pas aussi simple...

    Ma version de excel est Excel pour office 365MSO (16.0.10730.20264) 32 bits

    Si vous aviez quelques conseils notamment pour cette partie "prendre le contenu d'une cellule et le donner à une variable" ce serait top top top
    Un grand merci!!!

    Bonne journée

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    Si VLookup ne trouve pas la valeur cherchée il doit te retourner une erreur #N/A et #N/A n'est pas un integer.

    Essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.Value = Cint(Application.WorksheetFunction.VLookup(contenu, x, 2, False))
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.Value = WorksheetFunction.IfError(Application.WorksheetFunction.VLookup(contenu, x, 2, False), IciUneValeurSiPasTrouve)
    où IciUneValeurSiPasTrouve est la valeur que tu veux quand tu ne trouves pas la valeur cherchée (ex : -1).

    Et attention au Integer de VBA, ils vont de -32,768 à 32,767.

    Il est plus simple de systématiquement utiliser des Long qui vont de -2,147,483,648 à 2,147,483,647.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

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

    Merci pour cette réponse rapide.

    J'ai utilisé ta deuxième proposition et j'ai remplacé le Integer par un Long.

    Par contre, j'ai toujours mon message d'erreur à la ligne 12 "contenu= ActiveCell.Value".

    Nom : Capture1.PNG
Affichages : 397
Taille : 8,5 Ko

    A+

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    Le problème ne vient pas du type de ta variable mais de l'assignation.
    Je n'ai mentionné les valeurs max et min que pour t'avertir d'un danger.

    Pour l'assignation, as-tu essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.Value = Cint(Application.WorksheetFunction.VLookup(contenu, x, 2, False))
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.Value = WorksheetFunction.IfError(Application.WorksheetFunction.VLookup(contenu, x, 2, False), IciUneValeurSiPasTrouve)
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 14
    Par défaut
    Hello,

    Vous voulez bien dire à la place de la ligne 15 dans mon code initial?
    Si oui, j'ai essayé les deux, mais le message d'erreur reste toujours le même...

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    oui c'est bien ce que je pensais.

    Il est possible alors que la valeur ne soit pas un nombre entier.

    Essaye cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox cstr(Application.WorksheetFunction.VLookup(contenu, x, 2, False))
    avant ton ActiveCell.Value=...

    Cela va te permettre de voir ce que Excel voit vraiment et de là aider à comprendre quel est le type de la données.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. macro pour reporter dans classeur fermé
    Par varik dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 29/03/2012, 21h04
  2. [XL-2003] Find dans classeur fermé
    Par guigui1976 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/11/2010, 15h46
  3. Actualisé requête dans classeur fermé.
    Par bobinette33 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/07/2010, 19h03
  4. [XL-2002] ListView et données dans Classeur fermé
    Par vaucluseimmo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/01/2010, 07h59
  5. copier coller dans classeurs fermés
    Par ericdev67 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/10/2009, 23h18

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