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 :

Bouton qui exécute d'autres boutons macros [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2013
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 14
    Points : 8
    Points
    8
    Par défaut Bouton qui exécute d'autres boutons macros
    bonjour,

    Dans un même classeur, j'ai 5 onglets différents et dans chaque onglet j'ai un bouton qui exéctute une macro (donc au total 5 boutons dans le classeur).

    j'aimerai créer un bouton global dans un nouvel onglet qui exécuterai l'ensemble des 5 boutons macro des autres onglets.

    Est-ce possible? si oui, comment??

    J'ai crée un bouton global où j'ai enregistré une macro en faisant la manip manuellement (aller sur chaque onglet et cliquer sur les 5 boutons macro les uns après les autres) mais une fois que je clic sur le boutton global rien ne se passe...les 5 boutons macro ne s'éxecute pas.

  2. #2
    Membre régulier
    Inscrit en
    Mai 2011
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 85
    Points : 122
    Points
    122
    Par défaut
    Chacun de tes boutons doit appeler une procédure différente du coup t'as juste à faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    sug general()
     
    call procedure1
    call procedure2
    ...
    call procedure5
     
    end sub

  3. #3
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 068
    Points
    32 068
    Par défaut
    Citation Envoyé par Fred.dz Voir le message
    Chacun de tes boutons doit appeler une procédure différente du coup t'as juste à faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    sub general()
     
    call procedure1
    call procedure2
    ...
    call procedure5
     
    end sub

    C'est sub, pas sug, mais +1, car c'est la manière propre de faire. Si le code est tout embarqué dans l'évenement Button_Click, alors il est vivement conseillé de le sortir dans une procédure. ça permet de désolidariser l'interface et le métier, et ça améliore la lisibilité et la maintenabilité de l'application.

    Ne pas oublier de citer l'onglet dans ladite procédure, par contre, le piège quand on fait ça, c'est d'appliquer la mauvaise procédure au mauvais onglet.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2013
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 14
    Points : 8
    Points
    8
    Par défaut ça ne fontionne pas
    j'ai utilisé CALL mais cela ne fontionne pas, les macros appelées dans la macro general ne s'exécute pas.
    Est-ce normal??

    voici les macros (c'est pratiquement la même macro dans chaque onglet donc j'ai mis idem...) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Sub macro16()
     
    Rang ("r2:u300").ClearContents
    Set dest = Range("r2")
    Set r = Range("A1:m90")
    For col = 2 To r.Columns.Count
    For lig = 2 To r.Rows.Count
    If r.Cells(lig, col).Value <> 0 Then
     DestLigne = DestLigne + 1
     dest.Cells(DestLigne, 1).Value = r.Cells(lig, 1).Value
     dest.Cells(DestLigne, 2).Value = r.Cells(lig, col).Value
     dest.Cells(DestLigne, 3).Value = r.Cells(1, col).Value
     dest.Cells(DestLigne, 4).Value = Range("a1")
    End If
    Next
    Next
     
    End Sub
     
    Sub macro25()
    idem macro précedente...
    End Sub
     
    Sub macro36()
    idem...
    End Sub
     
    Sub macro37()
    idem...
    End Sub
     
    Sub macro48()
    idem...
    End Sub
     
    Sub macrogeneral()
    Call macro16
    Call macro25
    Call macro36
    Call macro37
    Call macro48
    End Sub

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Essaye:

    Remplace simplement, "module1" par le nom du module se reportant au Sub macro25.

  6. #6
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 94
    Points : 173
    Points
    173
    Par défaut
    Si les macros ne sont pas écrites dans le même module que macrogeneral, alors il faut les appeler en précisant le module : Module1.macro16 (ou Feuilxx si le code est dans une feuille).

  7. #7
    Futur Membre du Club
    Inscrit en
    Juin 2013
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 14
    Points : 8
    Points
    8
    Par défaut même module
    la macrogeneral se trouve dans le même module que les autres macros donc je n'ait pas à préciser le module normalement..

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par CDGESTION Voir le message
    la macrogeneral se trouve dans le même module que les autres macros donc je n'ait pas à préciser le module normalement..
    Y a t-il au moins une méthode qui marche parmis celle qui ont été proposé ? Si oui, le(s)quel(s) ?

    Citation Envoyé par CDGESTION Voir le message

    voici les macros (c'est pratiquement la même macro dans chaque onglet donc j'ai mis idem...) :
    Donc, les macros sont créées dans des feuilles ?
    Dernière modification par AlainTech ; 15/06/2013 à 13h38. Motif: Fusion de 2 messages

  9. #9
    Futur Membre du Club
    Inscrit en
    Juin 2013
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 14
    Points : 8
    Points
    8
    Par défaut fichier test
    voici le fichier ci-joint :

    En appuyant sur le bouton general dans l'onglet récap, j'aimerai que les boutons (16,25,36,37 et 48) des autres onglets s'exécutent.

    Or avec la macro que j'ai mis rien ne se passe...

    Si quelqu'un peut m'éclairer svp
    merci.
    Fichiers attachés Fichiers attachés

  10. #10
    Futur Membre du Club
    Inscrit en
    Juin 2013
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 14
    Points : 8
    Points
    8
    Par défaut oui
    Citation Envoyé par Nouveau2 Voir le message
    Donc, les macros sont créées dans des feuilles ?

    oui les macros sont crées dans des feuilles differentes d'un même classeur excel.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Personnellement, je n'ai accès à aucune Macro dans ton fichier Excel

  12. #12
    Futur Membre du Club
    Inscrit en
    Juin 2013
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Nouveau2 Voir le message
    Bonjour,

    Essaye:

    Remplace simplement, "module1" par le nom du module se reportant au Sub macro25.
    A la base j'avais mis la macro general dans le même module donc pas besoin de préciser le module puis je l'ai placé dans un autre module et la j'ai précisé le module de reférence des macros mais rien n'y fait sa ne fonctionne toujours pas.

  13. #13
    Invité
    Invité(e)
    Par défaut
    Il n'y a aucune macro dans ton fichier Excel. Il est vierge de tout code.

    J'ai copié coller ton code du dessus, et je ne comprends pas grand chose à ce code. Aucune variable n'est déclaré.

    A quoi correspond par exemple ?

    C'est une destination ?

  14. #14
    Futur Membre du Club
    Inscrit en
    Juin 2013
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Nouveau2 Voir le message
    Personnellement, je n'ai accès à aucune Macro dans ton fichier Excel
    c'est normal en piece joint ça ne prend pas les fichiers avec macro.

    Mais la macro je l'ai cité plus haut...

    Chaque onglet à un bouton avec la même macro ( ce qui change se sont seulement les cellules (range..))
    Et dans le dernier onglet un bouton general avec la macro suivante pour activer les autres bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub macrogeneral()
    Call macro16
    Call macro25
    Call macro36
    Call macro37
    Call macro48
    End Sub
    Mais ça ne fonctionne pas.

  15. #15
    Invité
    Invité(e)
    Par défaut
    Bon, ben en tout cas, quoi qu'il en soit, ta Macro n'est pas bonne tel quel.
    Tu as forcément un message d'erreur, non ?

    Sinon, tu peux faire un clique droit sur ton bouton (n°16 par exemple), et affecter une macro. Là, tu aura une liste de macro.

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

Discussions similaires

  1. [Débutant] Bouton qui offre une autre fenêtre et sur l'onglet adéquat
    Par juninho dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/06/2014, 09h20
  2. Bouton qui renvoie à d'autres boutons..
    Par Chipsus dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/04/2010, 14h09
  3. [AC-2000] inserer dans un état un bouton qui ouvre un autre état
    Par rankynette dans le forum IHM
    Réponses: 2
    Dernier message: 01/03/2010, 21h13
  4. [OpenOffice][Tableur] bouton qui ne veut pas marcher (macro assignée ne se déclenche pas)
    Par mipps dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 12/01/2009, 12h16
  5. Bouton qui affecte d'autres boutons
    Par pennylanesworld dans le forum Flash
    Réponses: 1
    Dernier message: 05/11/2006, 07h07

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