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 :

Simuler un clic par soft sur une forme placée dans une feuille de calculs.


Sujet :

Macros et VBA Excel

  1. #1
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut Simuler un clic par soft sur une forme placée dans une feuille de calculs.
    Nouveau problème, nouvelle question à cent sous :
    J'ai une série de formes dans une feuille de calculs
    Un clic sur n'importe laquelle de ces formes (shapes) exécute une macro unique
    Dans cette macro, j'identifie la forme avec Application.caller.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Boutons()
    Dim Bouton As string
        Msgbox Application.Caller
        'du code sans intérêt ici
    End Sub
    Jusque là, pas de pb.

    Je souhaite maintenant identifier une forme sélectionnée par soft
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    LeBouton = "Laforme " & No
    'après quoi je souhaiterais exécuter 
    Boutons nomBouton
    Sauf que Boutons ne peut recevoir de paramètre puisque le clic sur une forme ne permet pas d'en envoyer un.
    Une idée ?
    J'en ai bien une consistant à utiliser une macro intermédiaire appelant la procédure Boutons avec le paramètre bouton si clic sur la forme, avec paramètre "fabriqué" si appel par soft mais je ne trouve pas ça très "élégant"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub PasSioux()
    Dim Bouton As string
        Bouton = Application.Caller
        Boutons Bouton
    End sub
     
    Sub Boutons(Bouton)
        Msgbox Bouton
        'du code sans intérêt ici
    End Sub
    Et par soft
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Soft()
    Dim Bouton As string
       Bouton = "Laforme " & No
       Boutons Bouton
    End sub
    Une autre solution plus mieux ?

    (toi fring, qui a travaillé sur les shapes ? )

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Salut Ousk,

    Désolé mais...je ne comprend rien à ce que tu souhaites faire, tu peux essayer de l'expliquer autrement ?
    Je souhaite maintenant identifier une forme sélectionnée par soft
    C'est quoi ce "soft" ?
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonsoir et amitiés, Fring,

    Je suppose que Ousk a voulu dire "shape sélectionnée par le code".
    Peut-être en en connaissant le N° et en voulant en extraire le nom et/ou se référer à l'objet ?
    Pas vraiment sûr d'avoir vraiment saisi, moi non plus... (juste une idée)...

  4. #4
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    bonsoir,

    pour moi aussi le cavalier c'est trompé de titre .. où j'ai encore rien compris, par contre pour ma par j'aurai utilisé sa solution pasSioux.. en metttant la procedure Boutons(Bouton as string) dans un module de façon à avoir un code mieux organisé
    JacqueS.

    Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

    Pour devenir mon ami laissez moi un message

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Merci à vous trois de votre généreuse attention.
    J'ai réglé le problème, c'est ok.
    Ucfoutu, tu as tout compris.
    fring, le soft n'a pas d'importance.
    JackOuYA, m'étonne pas que tu n'aies pas compris, les procédures dont je parle sont déjà dans un module. Une forme n'a pas besoin de code derrière la feuille de calculs.

    Maintenant, pour être plus clair sur ce que je voulais :
    La forme désignée par 1 clic doit changer.
    Je veux simplement pouvoir le faire également par soft pour remplacer un éventuel utilisateur, donc utiliser la même procédure que pour le clic.
    J'ai déplacé les paramètres d'une procédure à une autre et c'est tout bon.
    Pour le clic : Une procédure qui identifie la forme qui appelle une procédure paramétrée.
    Par soft : Envoi direct des paramètres à la procédure paramétrée.
    Oui, ma question était idiote mais j'ai été perturbé par cette histoire de tri, faut m'excuser. Je me mets à voir des pièges partout
    Bonne soirée à tous et encore merci.
    (Je déleste ma question sans intérêt)

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    752
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 752
    Points : 832
    Points
    832
    Par défaut
    Je ne sais pas si j'ai très bien compris, mais dans ce sujet il est question d'appel de procédure paramétrée par l'attribut onclick d'un shape:
    http://www.developpez.net/forums/d62...pele-onaction/

    Dites-le moi si je suis carrément à coté de la plaque.

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par decondelite
    Dites-le moi si je suis carrément à coté de la plaque.
    Oui, mais c'est pas grave
    L'explication ? Contrairement aux objets de la boîte à outils contrôles, une forme n'a pas d'événement clic proprement dit. On peut cependant lui affecter directement une macro, ce qui revient au même mais dispense d'avoir à coder dans la feuille de code de la feuille de calculs. La macro peut alors se trouver dans un module standard, ce qui simplifie l'organisation du code si chère à JackOuYA qui, apparemment, ne le savait pas
    Par contre, en fin de la discussion que tu cites, fring donne la méthode que j'utilise pour récupérer le nom de la forme. Ce qui peut être intéressant de savoir.
    Mais merci de ton intérêt.

    Bonne journée

Discussions similaires

  1. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  2. Détecter le clic sur la touche F1 dans une form.
    Par demando77 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 26/05/2008, 16h11
  3. Réponses: 2
    Dernier message: 16/01/2008, 18h40
  4. [c#]Afficher une interface webservices dans une form
    Par jambono dans le forum Services Web
    Réponses: 1
    Dernier message: 21/10/2006, 11h30
  5. Réponses: 4
    Dernier message: 16/05/2006, 23h15

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