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 VBA.


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
    Mars 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 27
    Par défaut VLookup VBA.
    Bonjour,

    Je suis confrontée a un problème, je n'arrive pas a utiliser la fonction:VLookup dans VBA.
    J'ai essayé avec application aussi mais çà ne fonctionne pas! :-(
    Erreur suivante: erreur 1004

    Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    axywm1 = (1 - ageDateCalcul_mois) * WorksheetFunction.VLookup(ageDateCalcul_annee, Sheets("B").Range("H"), a + 2, False) + (ageDateCalcul_mois) * WorksheetFunction.VLookup(ageDateCalcul_annee + 1, Sheets("B").Range("H"), a + 2, False) + (ageDateCalcul_mois) * WorksheetFunction.VLookup(ageDateCalcul_annee + 1, Sheets("B").Range("H"), a + 2, False)
    Il me renvoie axywm1=0 ou bien valeur alors qu'il y a bel est bien une valeur dans axywm (lorsque je décompose l'équation j'obtiens une réponse).

    Est-ce que qelqu'un pourrait m'aider?
    Je vous remercie d'avance!

  2. #2
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Tu peux essayer de segmenter ton expression afin de mieux cibler le problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Test2()
        var1 = ageDateCalcul_mois
        var2 = Application.VLookup(ageDateCalcul_annee, Sheets("B").Range("H"), a + 2, False)
        var3 = Application.VLookup(ageDateCalcul_annee + 1, Sheets("B").Range("H"), a + 2, False)
        axywm1 = (1 - var1) * var2 + var1 * var3 + var1 * var3
    End Sub
    Cordialement.

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 27
    Par défaut
    Merci beaucoup mais j'ai essayé et ca ne fonctionne toujours pas. Y a t il qqch de particulier à faire lors de l'utilisation de Vlookup? la syntaxe est-elle correcte?

  4. #4
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Tu écris
    Cela correspond bien à une feuille nommée "B" et une plage nommée "H" ?

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 27
    Par défaut
    oui tout a fait.

    J'ai décomposé le calcul:
    axywm1 = (1 - ageDateCalcul_mois) * x1 + (ageDateCalcul_mois) * x2
    résultat j'ai bien une valeur dans ageDateCalcul_mois et dans x1 et x2 mais j'obtiens axywm1 =0 alors que ca ne devrait pas être le cas.
    J'ai vérifier les dimensions de chaque variable.

    Merci pour votre aide!

  6. #6
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Et pourtant, si erreur il y a, elle ne vient pas du calcul.
    Fais le test suivant en adaptant les valeurs de tes variables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Test()
    Dim axywm1, ageDateCalcul_mois, x1, x2
        ageDateCalcul_mois = 25
        x1 = 2
        x2 = 4
        axywm1 = (1 - ageDateCalcul_mois) * x1 + (ageDateCalcul_mois) * x2
        MsgBox "axywm1 : " & axywm1
    End Sub
    Cordialement.

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

Discussions similaires

  1. VLOOKUP VBA probleme
    Par bentor22 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 22/01/2013, 16h44
  2. [XL-2007] Souci Vlookup VBA
    Par trane51 dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 15/06/2011, 14h47
  3. Vlookup VBA / RECHERCHEV
    Par JimJames23 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/04/2011, 11h27
  4. Vlookup VBA - pb de format?
    Par ADbtr dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/06/2010, 13h57
  5. Vlookup - VBA - Sheets(2)
    Par Wildcat dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/12/2008, 15h18

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