OVH Cloud OVH Cloud

Menu visible sur demande

2 réponses
Avatar
bartez
Bonjour,

Je cherche afficher un sous menu masqué par défaut et à le lancer (dans une
barre de menu perso)
C'est le 2em menu de la barre
et le 4em sous menu de ce menu
je ne vois pas quoi rajouter à la ligne ci-dessous pour atteindre ce
sous-menu

CommandBars.ActiveMenuBar.Controls(2).Visible = True

Bartez

2 réponses

Avatar
michdenis
Bonjour Bartez,

La formulation de ta question laisse à désirer !

Je te donne un exemple pour masquer la commande suivante :

barre des menus / données / filtre / filtre automatique.

En utilisant les index des objets.
Application.commandbars(1).Controls(7).Controls(2).controls(1).visible = true or false

1 = barre des menus : son nom "Worksheet menu bar"
7 = Septième contrôle sur la ligne des menus affichés : "Données"
2 = 2 ième éléments du sous-menu "Données" : "Filtrer"
1 = premier élément du sous menu "Filtrer" : "Filtre automatique"

L'utilisation des "index" a ses limites car un usager pourrait modifier configuration de base...et le code ne serait
plus adéquat.

On peut utiliser les ID mais je ne crois pas que ces ID soient fiables d'une version d'excel à une autre....
avec les id la ligne de commande serait : Ceci est valide pour toutes les versions d'excel de 97 à 2003.
(avec réserve sur les id)
'------------------------
With Application.CommandBars
.Item(1).FindControl(ID:‰9, Recursive:=True).Enabled = False
.Item("Toolbar List").Enabled = False
End With
'------------------------

C'est aussi vrai pour quelques noms de commande du menu ... mais les différences sont beaucoup moindre !!!


On peut réécrire la même ligne de code mais en utilisant leur nom

Application.commandbars("Worksheet menu bar").Controls("Données").Controls("Filtrer").controls("Filtre
automatique").visible = true or false

C'est exactement le même principe avec les barres d'outils personnalisées.


Salutations!




"bartez" a écrit dans le message de news:
Bonjour,

Je cherche afficher un sous menu masqué par défaut et à le lancer (dans une
barre de menu perso)
C'est le 2em menu de la barre
et le 4em sous menu de ce menu
je ne vois pas quoi rajouter à la ligne ci-dessous pour atteindre ce
sous-menu

CommandBars.ActiveMenuBar.Controls(2).Visible = True

Bartez
Avatar
bartez
Bonjour Denis,

C'est encore toi qui me donne l'info qu'il me manquait
C'est exactement ce que je cherchais à faire. Je n'avais pas compris que la
commande Controls pouvaient se succéder pour descendre en cascade dans les
menus.
Encore merci pour les infos.

@mic Bartez


"michdenis" a écrit dans le message de news:

Bonjour Bartez,

La formulation de ta question laisse à désirer !

Je te donne un exemple pour masquer la commande suivante :

barre des menus / données / filtre / filtre automatique.

En utilisant les index des objets.
Application.commandbars(1).Controls(7).Controls(2).controls(1).visible true or false

1 = barre des menus : son nom "Worksheet menu bar"
7 = Septième contrôle sur la ligne des menus affichés : "Données"
2 = 2 ième éléments du sous-menu "Données" : "Filtrer"
1 = premier élément du sous menu "Filtrer" : "Filtre automatique"

L'utilisation des "index" a ses limites car un usager pourrait modifier
configuration de base...et le code ne serait

plus adéquat.

On peut utiliser les ID mais je ne crois pas que ces ID soient fiables
d'une version d'excel à une autre....

avec les id la ligne de commande serait : Ceci est valide pour toutes les
versions d'excel de 97 à 2003.

(avec réserve sur les id)
'------------------------
With Application.CommandBars
.Item(1).FindControl(ID:‰9, Recursive:=True).Enabled = False
.Item("Toolbar List").Enabled = False
End With
'------------------------

C'est aussi vrai pour quelques noms de commande du menu ... mais les
différences sont beaucoup moindre !!!



On peut réécrire la même ligne de code mais en utilisant leur nom

Application.commandbars("Worksheet menu
bar").Controls("Données").Controls("Filtrer").controls("Filtre

automatique").visible = true or false

C'est exactement le même principe avec les barres d'outils personnalisées.


Salutations!




"bartez" a écrit dans le message de news:


Bonjour,

Je cherche afficher un sous menu masqué par défaut et à le lancer (dans
une

barre de menu perso)
C'est le 2em menu de la barre
et le 4em sous menu de ce menu
je ne vois pas quoi rajouter à la ligne ci-dessous pour atteindre ce
sous-menu

CommandBars.ActiveMenuBar.Controls(2).Visible = True

Bartez