Boucle sur bouton

Bonjour à tous,

Je vais essayé d'être claire et précise. Je cherche une méthode d'exécuter l'ensemble des commandbutton ( au total 11 commandbutton) présents dans un onglet en utilisant une boucle. Est ce possible ?

Bonsoir,

Un CommandButton est normalement fait pour cliquer dessus, ce qui déclenche quelque chose qu'on a prévu en le mettant en place.

Si tu ne t'en sers pas comme boutons, tu t'es peut-être trompée sur le type de contrôles dont tu avais besoin.

Explique ton problème : on n'"exécute" pas un bouton (sauf quand on le supprime ! ),c'est lui qui lance une exécution.

Cordialement.

Hello,

Ces commandbuttons, ce sont des contrôles de formulaire ou des contrôles activex?

Si ce sont des controles activex, voila qqlchose qui boucle sur tous les commandbutton activex. Par contre je ne sais pas comment faire pour lancer la macro associée.

Private Sub Test()
Dim btn As OLEObject, name As String, i As Long
Dim feuille As Worksheet

Set feuille = ActiveSheet

For Each btn In feuille.OLEObjects
    name = btn.name
    If btn.OLEType = xlButtonOnly Then
        'lancer la macro, ce que je ne sais pas faire =)
    End If
Next
End Sub

C'est bien ce que je disais, il peut être intéressant de boucler sur des boutons pour les modifier...

Si pour exécuter les macros, il faut voir comment les interactions de programme sont conçues...

Mais de toute façon, soulever un problème de cet ordre, c'est vraisemblablement que l'ensemble n'a pas été conçu pour former un tout fonctionnel, soit parce qu'on a additionné des bouts de code d'origines diverses, soit que la conception au départ s'est avérée insuffisamment réfléchie.

Mais le véritable problème est bien la raison pour laquelle on le soulève sous cette forme.

Bonjour,

Merci pour vos réponses. En fait l'objectif est d’exécuter l'ensemble des boutons activeX de ma feuille automatiquement en cliquant sur le premier par exemple ou sur un nouveau bouton créé.

En gros simuler l'execution de l'ensemble de mes boutons = simuler les click sur chaque bouton de ma feuille

Bonjour,

Il suffisait de n'en faire qu'un pour lancer l'ensemble.

Ou maintenant d'en faire un 12e qui fait le tout.

D'ailleurs c'est la solution la plus simple !!

Private Sub CommandButton12_Click()
    CommandButton1_Click
    CommandButton2_Click
    CommandButton3_Click
    CommandButton4_Click
    CommandButton5_Click
    CommandButton6_Click
    CommandButton7_Click
    CommandButton8_Click
    CommandButton9_Click
    CommandButton10_Click
    CommandButton11_Click
End Sub

Mais il vaudrait mieux voir auparavant ce que font ces macros...

Cordialement.

@MFerrand,

A titre personnel, aurais-tu une idée pour boucler ces macros sans taper tous les noms? Pour ma part j'ai tenté la chose suivante sans succès (et je pense savoir pourquoi elle ne fonctionne pas: sur deux feuilles distinctent deux commandbutton peuvent avoir le même nom, donc la commande CommandButton1_Click() est non unique)

For Each btn In feuille.OLEObjects
    name = btn.name
    If btn.OLEType = xlButtonOnly Then
        Application.Run name & "_Click"
   End If
Next

Salut d3d9x !

Application.Run qu'on pouvait penser utiliser pour une boucle en recomposant les noms de macros "Click" déclenche une erreur 1004...

Pourquoi ? Si tu arrives à me l'expliquer... !

Comme le dit Banzai, en pareil cas mieux vaut prendre la formulation acceptée par Excel plutôt que d'insister dans une voix où Excel renâcle...

Ceci étant, lancer une dizaine de macros à la suite... il vaudrait mieux savoir ce qu'elles vont faire et si elles ne vont pas "se marcher sur les pieds".

Je ne m'y risquerais pas dans mes fichiers, j'aurais toutes les chances d'avoir des "résultats inattendus" (mais le code affecté au bouton ne me sert en général qu'à lancer telle ou telle action...)

Attendons la suite !

Cordialement.

Re

chaque bouton effectue un traitement distinct, et ta solution MFerrand marche parfaitement ! Merci

Rechercher des sujets similaires à "boucle bouton"