Pb de contrôle de barre de commande en vba

Le
cmoi
Bonjour,

J'ai le code suivant:

Dans un module:

Public Const btntxt0$ = "Worksheet Menu Bar"
Public Const btntxt1$ = "&mon-texte"
Public cbar1 As CommandBar, cbtn1 As CommandBarPopup

Dans ThisWorkbook:

Private Sub Workbook_Deactivate()
Set cbar1 = CommandBars(btntxt0)
cbar1.Controls(btntxt1).Enabled = False
End Sub

La ligne Set cbar1 = CommandBars(btntxt0) provoque une erreur 91 "variable
objet non définie". Pourquoi ????? !!!!

Merci pour le temps et la peine.

cmoi
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #5331641
' Ta variable cbar1 représente la barre des menus d'excel
Set cbar1 = CommandBars(btntxt0)

'Cette ligne dit que tu as un CONTROLE de la barre des menus Excel
'qui s'appelle btntxt1 -> "Worksheet Menu Bar" qui est sans doute
'pas vrai ... btntxt1 étant le nom de la barre d'outils.

cbar1.Controls(btntxt1).Enabled = False

Si tu remplaces "btntxt1" par le "vrai" nom d'un contrôle
existant de la barre des menus d'excel, cela va fonctionner.
Exemple :
cbar1.Controls("Edition").enabled = False






"cmoi" Bonjour,

J'ai le code suivant:

Dans un module:

Public Const btntxt0$ = "Worksheet Menu Bar"
Public Const btntxt1$ = "&mon-texte"
Public cbar1 As CommandBar, cbtn1 As CommandBarPopup

Dans ThisWorkbook:

Private Sub Workbook_Deactivate()
Set cbar1 = CommandBars(btntxt0)
cbar1.Controls(btntxt1).Enabled = False
End Sub

La ligne Set cbar1 = CommandBars(btntxt0) provoque une erreur 91 "variable
objet non définie". Pourquoi ????? !!!!

Merci pour le temps et la peine.

cmoi
cmoi
Le #5331551
Merci MichDenis,

Il y avait effectivement une erreur de code à la deuxième ligne que j'ai
corrigée comme ceci, mais c'est la première qui provoque l'erreur:
Private Sub Workbook_Deactivate()
Set cbar1 = CommandBars(btntxt0) '--- Erreur 91 ici ---
Set cbtn1 = cbar1.Controls(btntxt1)
cbar1.Controls(cbtn1).Enabled = False
End Sub

Mais la première ligne: Set cbar1 = CommandBars(btntxt0) provoque toujours
la même erreur. Il s'agit bien de la barre de menus Excel dans laquelle j'ai
ajouté un contrôle CommandBarPopup défini par la constante btntxt1

"MichDenis"
' Ta variable cbar1 représente la barre des menus d'excel
Set cbar1 = CommandBars(btntxt0)

'Cette ligne dit que tu as un CONTROLE de la barre des menus Excel
'qui s'appelle btntxt1 -> "Worksheet Menu Bar" qui est sans doute
'pas vrai ... btntxt1 étant le nom de la barre d'outils.

cbar1.Controls(btntxt1).Enabled = False

Si tu remplaces "btntxt1" par le "vrai" nom d'un contrôle
existant de la barre des menus d'excel, cela va fonctionner.
Exemple :
cbar1.Controls("Edition").enabled = False






"cmoi" 47e54ee3$0$876$
Bonjour,

J'ai le code suivant:

Dans un module:

Public Const btntxt0$ = "Worksheet Menu Bar"
Public Const btntxt1$ = "&mon-texte"
Public cbar1 As CommandBar, cbtn1 As CommandBarPopup

Dans ThisWorkbook:

Private Sub Workbook_Deactivate()
Set cbar1 = CommandBars(btntxt0)
cbar1.Controls(btntxt1).Enabled = False
End Sub

La ligne Set cbar1 = CommandBars(btntxt0) provoque une erreur 91 "variable
objet non définie". Pourquoi ????? !!!!

Merci pour le temps et la peine.

cmoi





MichDenis
Le #5331531
Et oui en lisant rapidement, j'ai passé par dessus un détail important ...

Tu inscris ton code dans le ThisWorkbook de ton classeur.... et à cet
endroit tu dois obligatoirement faire référence à l'objet application
dans l'hiérarchisation de la ligne de commande comme ceci :

Set cbar1 = Application.CommandBars(btntxt0)
Si tu préfères, tu peux aussi utiliser cette syntaxe :
Set c = ThisWorkbook.Application.CommandBars(1)

Dans tous les autres modules (les modules "feuille", les modules "Standard" et
les modules "de classe") sauf celui du ThisWorkbook.
la syntaxe de la commande suivante est acceptable

Set cbar1 = CommandBars(btntxt0)

Je te suggère de relancer un autre fil avec la question suivante :
Pourquoi une telle chinoiserie ?

Peut être quelques illuminés en ce dimanche de Pâques pourrait te donner
la réponse .... moi, je vais me coucher ;-))


"cmoi" Merci MichDenis,

Il y avait effectivement une erreur de code à la deuxième ligne que j'ai
corrigée comme ceci, mais c'est la première qui provoque l'erreur:
Private Sub Workbook_Deactivate()
Set cbar1 = CommandBars(btntxt0) '--- Erreur 91 ici ---
Set cbtn1 = cbar1.Controls(btntxt1)
cbar1.Controls(cbtn1).Enabled = False
End Sub

Mais la première ligne: Set cbar1 = CommandBars(btntxt0) provoque toujours
la même erreur. Il s'agit bien de la barre de menus Excel dans laquelle j'ai
ajouté un contrôle CommandBarPopup défini par la constante btntxt1

"MichDenis"
' Ta variable cbar1 représente la barre des menus d'excel
Set cbar1 = CommandBars(btntxt0)

'Cette ligne dit que tu as un CONTROLE de la barre des menus Excel
'qui s'appelle btntxt1 -> "Worksheet Menu Bar" qui est sans doute
'pas vrai ... btntxt1 étant le nom de la barre d'outils.

cbar1.Controls(btntxt1).Enabled = False

Si tu remplaces "btntxt1" par le "vrai" nom d'un contrôle
existant de la barre des menus d'excel, cela va fonctionner.
Exemple :
cbar1.Controls("Edition").enabled = False






"cmoi" 47e54ee3$0$876$
Bonjour,

J'ai le code suivant:

Dans un module:

Public Const btntxt0$ = "Worksheet Menu Bar"
Public Const btntxt1$ = "&mon-texte"
Public cbar1 As CommandBar, cbtn1 As CommandBarPopup

Dans ThisWorkbook:

Private Sub Workbook_Deactivate()
Set cbar1 = CommandBars(btntxt0)
cbar1.Controls(btntxt1).Enabled = False
End Sub

La ligne Set cbar1 = CommandBars(btntxt0) provoque une erreur 91 "variable
objet non définie". Pourquoi ????? !!!!

Merci pour le temps et la peine.

cmoi





Publicité
Poster une réponse
Anonyme