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 :

Ligne courante, ou plutôt ligne contenant la fonction


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 16
    Par défaut Ligne courante, ou plutôt ligne contenant la fonction
    Salut à tous.
    J'ai fait pas mal de recherches mais je n'ai pas trouvé de solutions. Peut-être n'ai-je pas bien cherché...^^

    Je vous expose mon dilemme : j'ai créé une fonction VBA que je désirerais utiliser dans excel comme une fonction standard.
    Par exemple, dans la cellule G3 j'écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =maFonction(nomA, nomB)
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomA = "A1:A8" et nomB = "C1:C8"
    Je voudrais que ma fonction marche comme Excel le fait avec ses fonctions d'origine. Je m'explique. Lorsque vous entrez un nom de plage dans une formule, Excel va prendre en compte dans la plage sus nommée la cellule se situant à la même ligne que celle que vous éditez.

    Dans mon exemple précédent, si G3 contient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =maFonction(nomA, nomB)
    , Excel va le comprendre comme .

    Je voudrais donc que ma fonction agisse ainsi.
    J'ai donc pensé bêtement à utiliser ActiveCell.Row pour obtenir la ligne de la cellule courante, or cela ne fonctionne que dans un cas : il faut constamment que la cellule courante soit celle que je veux mettre à jour !
    Ainsi, si je vais modifier la cellule A1, la cellule G3 va se mettre à jour sur la ligne de la cellule courante et donc se mettre à jour par rapport à A1 et non A3.

    Je cherche donc le moyen de trouver la ligne correspondante à la cellule qui contient la fonction.
    Tout en sachant que je veux éviter de passer directement le numéro de ligne en paramètre par exemple.

    Au final, une solution serait d'être capable de savoir quelle est la cellule qui appelle la fonction vba.

    Merci d'avance si quelqu'un a des idées ou une solution.


    Gourbish.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 16
    Par défaut
    YES !
    Après toutes ces recherches, il a fallu que je trouve la réponse après avoir posté ici...

    Donc voici la solution : Application.Caller qui permet d'obtenir des informations sur comment Visual Basic a été appelé.

    Et plus précisément Application.Caller.Address qui renvoie par exemple "$G$3", ce qui correspond à la cellule ayant fait appel à VB.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/04/2012, 12h24
  2. Réponses: 3
    Dernier message: 20/12/2006, 09h15
  3. [displaytag] Utilisation des valeurs de la ligne courante
    Par ADIDASman dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 24/11/2005, 14h43
  4. [ACCESS SQL] génération d'une valeur / ligne courante ?
    Par kikidrome dans le forum Langage SQL
    Réponses: 2
    Dernier message: 15/11/2005, 14h20
  5. Ligne courante
    Par Mephyston dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/10/2003, 12h12

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