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 les clics


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 2
    Par défaut Automatiser les clics
    Salut,

    Mon probleme est le suivant, je suis amené à modifier les mode d'execution d'une macro, en eliminant tous les clicks que l'utilisateur doit faire, desormais la macro doit s'effectuer d'un seul coup,

    Le code est tres lourd, le stagier qui a programmé la macro l'as concus comme un labyrinthe, j'ai essayé de supprimer les useforme, mais après rien ne fonctionnait,

    j'ai essayé les codes suivants en vain:

    -En utilisant la fonction call:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call Sheets("Achantier").Avec_chantier_Click
    -En utilisant show et value:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Formulaire.Show
     Achantier.Value = True
     Comparaison.Value = True
     Graph.Value = True
    Tout en vain, alors merci beaucoup pour celui qui m'aidera a repodre à la question:

    Comment appeler les fonctions bidule_click() sans avoir à cliquer

    Merci

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonjour,
    Cela s'utilise comme n'importe quel autre macro

    (sans utilisé call qui est déconseillé par un des tutos de ce site du fait de la synatxe particulière qu'il nécessite, c'est juste pour ne pas prendre de mauvaise habitude)
    dans ton module tu met

    Ou si tu aime taper du texte
    Par contre si ta macro est déclaré en privée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub bidule_Click()
    Elle ne peut, bien évidement, être appelé que depuis le module ou elle se trouve.

    Ps : dès que tu donne un morceau de code utilise les balise code, il y a une démo sur le premier message du forum

  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
    Par défaut
    Bonjour,

    Je ne comprends pas le mécanisme de ta pensée...

    Si je comprends bien, tu veux que s'exécute(nt) sans cliquer dessus le(s) bloc(s) d'instructions contenus dans l'évènement click d'un/plusieurs contrôle(s) ...

    Ben... mets donc ce(s) blocs d'instruction dans une procédure et exécute-la ! (nul besoin de passer par ce subterfuge de simulation d'un click devenu indésirable et donc inutile !)

    Quelque chose m'échappe, là ...

  4. #4
    Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 2
    Par défaut explication
    Bonjour,

    Pour acceder à toutes les procedures, j'ai déclaré toutes les procedures public.
    "mets les d'instruction dans une procédure "
    Je ne veux pas m'aventurer a modifier le code car c'est un vrai labyrinthe
    Merci ucfoutou pour avoir fait la remarque, je vais essayer de bien expliquer les choses,
    Un stagiaire a developpé une macro qui permet l'analyse des ordres de fabrications de l'entreprise, il ya deux types d'ordres de fabrication:
    avec chantier et sans chantier
    Au depart il ya une boite de dialogue "formulaire" qui s'affiche:
    1. avec chantier
    2. Sans chantier

    supposons qu'on clique sur avec chantier, il ya une autre boite de dialogue qui s'affiche:
    il faut cliquer une premiere fois
    1.a. comparaison
    il faut cliquer une deuxieme fois:
    1.b. graphe

    donc 3 clicks,
    on refait la meme chosepour l'option:
    2. sans chantier

    Le shema d'execution est le suivant

    formulaire---|
    |-> Achantier|
    | |-> Comparaison
    | |-> Graph
    |
    |-> Schantier|
    |-> Comparaison
    |-> Graph

    Ce qui fait 6 clicks, sachant que la macro est tres lente et demande une 1/2 heure pour s'executer, le but etant d'automatiser tous ces click, comme ca on pourrait lancer la macro le weekend et consulter les resultats lundi matin tout en buvant son café

    Donc j'ai fait les lignes de codes suivantes:
    Pour executer Avec chantier, pour schantier, ce sera pareil

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Formulaire.Show
    Achantier.Value = True
    Comparaison.Value = True
    Graph.Value = True
    et la il m'affiche la boite de dialogue formulaire, ensuite je doit cliquer
    Donc voila, comment automatiser tous ces cliques?
    Merci pour votre aide

    Philippe

  5. #5
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Une solution,
    a la fin de l'initialisation de l'user form tu lance la première macro a la fin de celle ci tu lance la deuxième, etc.

    Après si tu ne veux pas que cela soit automatisé a chaque fois tu peux créer une variable booléenne publique que tu initialise a vrai quand tu veux automatisé la procédure et tu la teste avant de lancer la macro suivante

    En fait tu n'automatise pas le clique tu lance directement la macro suivante, ce qui est plus efficace

    exemple a la fin de la macro UserForm_Activate tu peux mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if auto then
    'tu rempli les champs avec les valeur que tu souhaite puis
    Comparaison_click
    end if
    Avec en tête d'un module
    A la fin de comparaison tu met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if auto then
    'tu rempli les champs avec les valeur que tu souhaite puis
    Graph_click
    end if
    etc.

  6. #6
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour philip31 Krovax l' ami ucfoutu le forum
    je pense qu'il faut travailler sur ton code 1/2 heure cela me parait trés long au lieu de chercher a simuler des click enfin c' est que je pense.

Discussions similaires

  1. automatiser les sauvegardes avec mysql administrator
    Par beckham07 dans le forum Outils
    Réponses: 1
    Dernier message: 09/03/2006, 13h58
  2. [macro] Automatiser les macros
    Par argv666 dans le forum Access
    Réponses: 6
    Dernier message: 08/11/2005, 17h37
  3. [Bean] Automatiser les appels de setters / getters
    Par shinchun dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 27/12/2004, 15h18
  4. Gérer les clics sur les boutons
    Par cyberlewis dans le forum Windows
    Réponses: 4
    Dernier message: 08/02/2004, 15h34

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