Activer un "Controle ActiveX" à partir d'une macro

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

Dans ma feuille j'ai un bouton (Controle ActiveX | nom : "BoutonVues") que je voudrais activer (faire comme si manuellement je cliquais dessus) à partir d'une macro dans "ThisWorkBook" lors de la fermeture du classeur.

J'ai fait un essai dans un module standard.

Si j'écris :
VB:
ActiveSheet.Shapes.Range(Array("BoutonVues")).Select
le bouton est bien sélectionné.

En revanche, si j'écris :
VB:
ActiveSheet.Shapes.Range(Array("BoutonVues")).Activate
Erreur !!

Comment faire pour que ça marche ?
 

Roland_M

XLDnaute Barbatruc
Re : Activer un "Controle ActiveX" à partir d'une macro

re

c'est très simple,

tu dis avoir un bouton activeX de créé sur ta feuille !?
alors, exemple ici sur le code feuille avec un CommandButton que tu as nommé BoutonVues

Code:
Private Sub BoutonVues_Click()
MsgBox "xxx"
End Sub


Sub Essai() 'ici tu tapes f5 et tu verras l'action du button se faire
BoutonVues = True
End Sub
 
Dernière édition:

Magic_Doctor

XLDnaute Barbatruc
Re : Activer un "Controle ActiveX" à partir d'une macro

Bonsoir Roland_M,

Un grand merci, ça marche très bien !

En fait, je ne savais pas où caser exactement "BoutonVues = True".

Bonne fin de soirée.

PS : c'est bien Léo que l'on voit sur ton avatar ?
 

Magic_Doctor

XLDnaute Barbatruc
Re : Activer un "Controle ActiveX" à partir d'une macro

Rebonsoir,

Les choses ne sont jamais simples...
Je voudrais réaliser cette opération non pas du module de la feuille où se trouve le bouton "BoutonVues", mais à partir d'un module standard.

J'ai écri ceci :
VB:
Sub Essai2() 'ici tu tapes f5 et tu verras l'action du button se faire

Dim x As OLEObject

Set x = Sheets("BTX").OLEObjects("BoutonVues")

x.Select 'ça marche

'x = True 'ça ne marche pas

End Sub

Comment solutionner le problème ?
 
Dernière édition:

Magic_Doctor

XLDnaute Barbatruc
Re : Activer un "Controle ActiveX" à partir d'une macro

Bonsoir Eriiiic,

Désolé mais ça ne marche pas à partir d'un module standard.
Mais je pense qu'il faut auparavant déclarer dans ce même module l'objet "BoutonVues" pour qu'il sache ce que c'est et où il est.
 

eriiic

XLDnaute Barbatruc
Re : Activer un "Controle ActiveX" à partir d'une macro

Justement, c'est Feuil1. qui lui dit où il est
J'ai testé sans problème
 

Pièces jointes

  • Classeur3.xlsm
    20.5 KB · Affichages: 42
  • Classeur3.xlsm
    20.5 KB · Affichages: 38

Magic_Doctor

XLDnaute Barbatruc
Re : Activer un "Controle ActiveX" à partir d'une macro

Re,

Effectivement, ça marche.
C'est très curieux.
Dans mon classeur, la feuille se nomme "BTX". Je nomme ta feuille "BTX" et je modifie la mini-macro en conséquence, ça marche.
Maintenant je nomme le bouton "BoutonVues", je fais la modif dans la macro :
VB:
Sub test()
    Sheets("BTX").BoutonVues = True
End Sub
Ça ne marche plus...

Ennervant Excel !
 

Magic_Doctor

XLDnaute Barbatruc
Re : Activer un "Controle ActiveX" à partir d'une macro

Parfois on voit compliqué-tordu et ce fut le cas pour ce fil.
Le bouton déclenche une macro.
Je voudrais déclencher la macro ailleurs. Je me dis "faut cliquer sur le bouton". Et je me fixe sur le bouton. Comment donc faire en sorte pour cliquer sur le bouton en dehors de la feuille et que la macro s'exécute ? ... enfin, une histoire de boutons...
Bref, la solution est évidente : on déclenche directement la macro d'où on veut !

VB:
Sub MortAuBouton()

ChangeEtat      'la macro déclenchée par le bouton

End Sub

Ce devait être la fatigue de la latitude.
 

Discussions similaires