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 :

Automatiser F2 + ENTER sur un Nom défini dépendant d'autres noms définis variables


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 7
    Par défaut Automatiser F2 + ENTER sur un Nom défini dépendant d'autres noms définis variables
    Bonjour,

    Je suis une débutante en ce qui concerne VBA. Je travaille sur Microsoft 2003

    Dans mon classeur j'ai deux feuilles. Pour les deux feuilles, j'ai déclaré des noms définis (insert/name/define).

    L'origine de mon problème est un nom défini nommé "test" dans la feuille2 dont la référence est =EVALUATE(VLOOKUP(feuill2!$D3;feuill1!$A:$AG;17;FALSE)) où VLOOKUP(feuill2!$D3;feuill1!$A:$AG;17;FALSE) renvoie une chaîne de caractères qui en fait est une formule comprenant elle même des noms définis telle que 4*X*Y.

    X, Y sont déclarés comme des noms définis à la fois dans les deux feuilles où X renvoie =feuill2!$K3 et Y =feuill2!$L3. X et Y sont des valeurs qui varient dans la feuill2.

    Lorsque dans une cellule de la feuil2 j'exécute =test mon résultat s'affiche bien. Par contre lorque je modifie la valeur de X ou Y il faut que je fasse F2 + ENTER dans la cellule pour actualiser mon résultat.

    Quelqu'un aurait il une solution pour automatiser cette actualisation qui est pénible manuellement?

    N'hésitez pas à poser des questions pour plus d'informations.

    Merci d'avance

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonsoir.

    Je pense qu'il y a plusieurs solutions. Tu peux essayer celle-ci:
    Dans la cellule où tu a écris "=test", tu remplaces par "=fctTest(Cellule X, Cellule Y)", et tu crées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     fctTest(byval v1 as variant, v2 as variant) as variant
    fctTest = [test]
    end function
    Pour voir.

    PGZ

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 7
    Par défaut
    Bonjour pgz,

    Merci beaucoup pour ta réactivité.

    J'ai fais ce que tu m'as indiqué mais j'ai l'erreur #NAME? dans ma cellule.
    Peut-être je n'exécute pas bien ma fonction.
    J'ai écris le code dans l'editeur VBA en sélectionnant la feuille sur laquelle je travaille , ensuite j'ai enregistré et je suis retournée dans la cellule de ma feuille excel faire Enter

  4. #4
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Citation Envoyé par Patitou Voir le message
    J'ai écris le code dans l'editeur VBA en sélectionnant la feuille sur laquelle je travaille
    Il n'y a pas de feuille à sélectionner.
    Peux-tu montrer le code de la fonction, et aussi la formule que tu as mise dans la feuille?

    PGZ

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 7
    Par défaut
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function fctTest(ByVal v1 As Variant, v2 As Variant) As Variant
    fctTest = [test2]
    End Function
    où test2 =EVALUATE(VLOOKUP(Offres_ALL!$D4;Familles!$A:$AG;17;FALSE))

    Maintenant, j'ai écris le code dans un module

    Voici la formule dans la feuille

    =fctTest( Cellule IPH; Cellule A)où IPH et A sont deux noms définis

    ça m'affiche #VALUE comme erreur maintenant

  6. #6
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Re,

    Il faut plutôt écrireavec IPH et A deux noms définis

    PGZ

  7. #7
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 7
    Par défaut
    La modification ne change pas l'erreur. La cellule affiche toujours #VALUE

    Qd je suis les étapes du calcul en allant sur "show calculation steps", il prend bien en compte les arguments IPH et A (fctTest ($F$3;$N$3 )mais c'est au niveau de la fonction fctTest que ça affiche #VALUE.

    Lorsque que dans le code on fait fctTest = [test], il prend directement en comte le résultat de test ou alors il recalcule comme test

  8. #8
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonsoir.

    A ce stade, il serait plus facile d'avoir un classeur. Peux-tu simplifier ton pb dans un classeur de démonstration?

    PGZ

  9. #9
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 7
    Par défaut
    Bonjour PGZ,

    Ci-jointe la petite demo. j'espère que c'est bien ce que tu me demandais.

    J'ai aussi remarqué que le "COUNTIF($F3:$J3" qui est dans ma formule ne fonctionne pas quand j'ai 3 champs ou plus qui sont remplis. je ne sais pas pourquoi?

    Patitou
    Fichiers attachés Fichiers attachés

  10. #10
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 7
    Par défaut De l'aide,
    Bonjour PGZ,
    as-tu une solution pour moi?

    Bonne année 2011

Discussions similaires

  1. Réponses: 0
    Dernier message: 31/07/2012, 11h27
  2. Outils d'automatisation de tests sur CORBA
    Par kobe dans le forum Autres
    Réponses: 2
    Dernier message: 19/05/2007, 09h23
  3. "Enter" sur le dernier champ du TcxDbVert
    Par isachat666 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 01/06/2005, 21h38
  4. Automatiser le click sur le bouton d'un msgbox
    Par rootdaoud dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 26/05/2005, 11h31
  5. Aide sur la création d'un type simple (nom composite)
    Par testeur dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 06/11/2004, 21h30

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