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 :

Erreur 1004 Vlookup VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 6
    Par défaut Erreur 1004 Vlookup VBA
    Bonjour à tous,

    J'essaie de mettre en place pour la nouvelle entreprise pour laquelle je travaille une fonction sur VBA d'Excel. Cependant, après de multiples essais, je n'arrive pas à la faire marcher !

    Voici la formule que j'ai entré :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function base_mensuelle_2_10%()
     
    base_mensuelle_2_10% = Application.WorksheetFunction.VLookup(Sheets(14).Name, Sheets("RECAP ANNUEL 2018").Range("A7:Q18"), 3, 0)
     
    End Functio

    Sur chacune des feuilles (1 à 12) j'ai le même tableau mais pour un mois différent. La première feuille est nommée "01", la deuxième "02", etc. Sur la feuille 14, j'ai un récap annuel avec un mois pas ligne (ex: A7 --> 01 ; A8 --> 02 ; etc.). Je souhaiterai que dans la feuille du mois de Janvier (nommée "01"), la fonction aille chercher grace à Vlookup le nom de la feuille dans le tableau récap feuille 14 pour trouver ensuite la base mensuelle à 2.10% qui se trouve dans la troisième colonne du tableau (rentrée manuellement).

    Je vous remercie par avance de votre aide,

    Bonne journée,

    Guillaume.

  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,

    À quel endroit est cette formule?
    Je crois comprendre qu'elle est sur chaque feuille (01 à 12)

    Il faudrait alors écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    base_mensuelle_2_10% = Application.WorksheetFunction.VLookup(Activesheet.Name, Sheets("RECAP ANNUEL 2018").Range("A7:Q18"), 3, 0)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 6
    Par défaut
    Merci parmi pour cette aide.

    À quel endroit est cette formule?
    La formule est en effet sur chacune des feuilles (01 à 12).

    Après avoir réécris la formule donnée, j'ai toujours le même message d'erreur 1004:

    Impossible de lire la propriété Vlookup de la classe WorksheetFunction.
    ...

    Je ne vois d'ailleurs pas pourquoi la formule ne fonctionne pas puisqu'elle paraît bonne. J'ai même essayé de remplacer "ActiveSheet.Name"par "01" mais la formule ne fonctionne toujours pas ...

  4. #4
    Membre Expert Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Par défaut
    Salut,

    Voici deux variantes. Apparemment, c'est la Worksheetfunction qui pose problème. J'ai déjà vu çà par le passé.

    J'ai fait des essais, et j'ai bien un résultat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub toto()
        Dim plage As Range
        Dim nom As String
     
        nom = ActiveSheet.Name
        Set plage  = Sheets("RECAP ANNUEL 2018").Range("A7:Q18")
        tutu = Application.VLookup(nom , plage , 3, False)
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub toto3()
        tutu = Application.VLookup(ActiveSheet.Name, Sheets("RECAP ANNUEL 2018").Range("A7:Q18"), 3, False)
    End Sub
    La première en utilisant des variables. l'autre sans comme ta version.

    Dis nous ce que cela donne chez toi.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 6
    Par défaut
    Bonjour Jerome,

    Je viens d'essayer et la première fonction fonctionne !

    Merci beaucoup de ton aide,

    Bonne journée

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    de mémoire, en passant par la classe WorksheetFunction, il est impératif que le paramètre optionnel "Valeur Proche" (le quatrième) soit muni d'un vrai argument Booléen (True/False) au lieu de son équivalent numérique (0 pour False dans le cas présent)

Discussions similaires

  1. Gestion erreur avec vlookup vba
    Par Cyril031 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/04/2017, 11h05
  2. [XL-2010] Erreur 1004 excel vba
    Par sosoboss dans le forum Excel
    Réponses: 5
    Dernier message: 24/02/2015, 16h31
  3. [XL-2010] Erreur 1004 EXCEL VBA
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/02/2014, 21h48
  4. [XL-2003] Erreur 1004 Macro VBA
    Par aminnio dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 22/03/2013, 11h52
  5. [VBA][EXCEL]Erreur '1004' avec "Application.Run"
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/01/2006, 10h50

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