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 :

Trouver la cellule depuis laquelle la fonction est appelée, possible ?


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 256
    Points : 91
    Points
    91
    Par défaut Trouver la cellule depuis laquelle la fonction est appelée, possible ?
    Bonjour,

    Je voudrais, avec une macro Excel, écrire une valeur dans la cellule à droite de celle qui à servi à appeler la fonction de la macro.

    Donc il me faudrait déjà trouver la position depuis laquelle la fonction a été appelée, mais je n'y arrive pas.

    Quelqu'un dans le coin sais comment faire ?

    Merci,
    Pierre.

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 946
    Points
    55 946
    Billets dans le blog
    131
    Par défaut
    Bonjour

    De ce que je sais, je pense qu'une fonction appelée par une feuille de calcul ne peut pas modifier la valeur de cellules. Cette fonction ne peut pas non plus appeler des procédures qui modifient les valeurs des cellules...

    Donc, tu ne peux pas faire cela au travers d'une fonction utilisée par une cellule de la feuille de calcul.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Points : 824
    Points
    824
    Par défaut
    Bonjour,

    trouver la position depuis laquelle la fonction a été appelée
    Dans ta fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim CelluleAppelante As Range
    Set CelluleAppelante = Application.Caller
    écrire une valeur dans la cellule à droite de celle qui à servi à appeler la fonction
    Ca c'est impossible avec une fonction appelée depuis une feuille de calcul.

    Cordialement,

    Tirex28/

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 946
    Points
    55 946
    Billets dans le blog
    131
    Par défaut
    Salut Tirex28,

    Attention que ton code plantera dans le cas d'une fonction qui serait également appelée par du code...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 256
    Points : 91
    Points
    91
    Par défaut
    Ah mince, donc on ne peut changer les valeurs des cellules qu'avec des macros appelées à la main ?

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 946
    Points
    55 946
    Billets dans le blog
    131
    Par défaut
    Non, tu peux changer les valeurs de cellules via des procédures appelées par code, mais pas par une fonction qui renvoie des valeurs dans une feuille de calcul.

    Habituellement, en VB(A), une fonction renvoie une valeur et ne modifie pas de valeurs (variables, cellules, objets, ...) en dehors d'elle-même.

    La modification de valeurs (variables, cellules, objets, ...) est plutôt dévolue à des procédures, appelées manuellement ou via VBA.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 256
    Points : 91
    Points
    91
    Par défaut
    Ok, merci.

    Houlà, je commence presque à regretter l'API Windows en C ...

    Plus sérieusement, qu'appelle-t-on une procédure dans Excel, commment en créer une pour résoudre mon problème ?

    Merci.

    Edit : c'est bon, l'aide m'a renseigné, une procédure, c'est une "function" ou une "sub", donc il me faudrais une "sub" plutôt qu'une "function" ?
    Je vais essayer ça.

    Sinon, quelle est la différence entre tapper le code dans le répertoire "module" plutôt que dans les FeuilX du dossier "Microsoft Excel Objets" ?

    Merci.

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 946
    Points
    55 946
    Billets dans le blog
    131
    Par défaut
    Les procédures et fonctions se trouvant dans un module de feuille sont attachées à cette feuille. Lorsque tu veux les utiliser dans un autre module de feuille ou un module standard, tu dois les préfixer du nom de la feuille.

    Il est donc souvent plus intéressant de placer ces procédures et fonctions dans un module standard pour qu'elles soient vraiment publiques.

    Pour ce qui est de ton problème, il faudrait peut-être le reformuler. Que désires-tu réaliser?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 256
    Points : 91
    Points
    91
    Par défaut
    Ok, merci pour cette précision.

    J'ai ré-exposé mon problème clairement dans une nouvelle discution : http://www.developpez.net/forums/sho...73#post3537073

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

Discussions similaires

  1. [MySQL] Envoyer mail depuis mysql suite à requête est-ce possible ?
    Par Debutant10 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 02/04/2013, 00h00
  2. [XL-2003] Connaître la cellule depuis laquelle la fonction VBA est appelée
    Par al1_24 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/08/2012, 10h53
  3. Savoir par "qui" une fonction est appelée ?
    Par rambc dans le forum Général Python
    Réponses: 2
    Dernier message: 02/11/2009, 13h53
  4. Réponses: 2
    Dernier message: 15/06/2009, 13h46
  5. requete dans fonction est ce possible
    Par maxeur dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 26/01/2007, 11h21

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