OVH Cloud OVH Cloud

Affichage feuille par menu bar

3 réponses
Avatar
fabrice
Bonjour =E0 tous,=20

Petit probl=E8me de vacances :

J'ai cr=E9=E9 un menubar (par VBA), j'ai cr=E9=E9 une sub afin=20
d'ouvrir la feuille que j'ai besoin par ce menu.
Le probl=E8me c'est que la sub fonctionne quand je=20
l'essai, mais elle ne fonctionne pas lorsque je la lance=20
du menubar.=20
Voici comment est structur=E9e la menu bar

ANNEE
Ann=E9e1
1er semestre : appel feuil1=20
2 =E9me semestre : appel feuil2
Ann=E9e2
1er semestre : appel feuil3
2=E9me semestre : appel feuil4
=20
Pour l'appel de la feuille j'ai fait un :
feuil.visible=3D true
et feuil.visible =3Dfalse pour fermer les autres


D'avance merci pour votre aide

@+

3 réponses

Avatar
Frédéric Sigonneau
Bonsoir,

En supposant que la macro (sub) qui doit être exécutée quand on clique sur, par
exemple, la commande
"1er semestre" du menu, ressemble à ça :

Sub PremierTrim()
'ton code
End Sub

,dans la procédure de création de ta commande de menu, tu dois renseigner sa
propriété OnAction en lui donnant le nom de la macro comme valeur :

LaCommande.OnAction="PremierTrim"

Un exemple complet ici, à adapter à ton besoin :

http://perso.wanadoo.fr/frederic.sigonneau/code/BO/CreerMenu.txt

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour à tous,

Petit problème de vacances :

J'ai créé un menubar (par VBA), j'ai créé une sub afin
d'ouvrir la feuille que j'ai besoin par ce menu.
Le problème c'est que la sub fonctionne quand je
l'essai, mais elle ne fonctionne pas lorsque je la lance
du menubar.
Voici comment est structurée la menu bar

ANNEE
Année1
1er semestre : appel feuil1
2 éme semestre : appel feuil2
Année2
1er semestre : appel feuil3
2éme semestre : appel feuil4

Pour l'appel de la feuille j'ai fait un :
feuil.visible= true
et feuil.visible úlse pour fermer les autres

D'avance merci pour votre aide

@+


Avatar
fabrice
Voici une partie de la barre que j'avais créé. Ellle
fonctionne car je commande d'autre sub par les boutons.
C' est seulement la commande d'affichage d'une feuille et
de fermeture des autres qui ne fonctionne pas en partant
de la barre.

Sub MakeMenuBar()
Dim NewMenuBar As CommandBar
Dim NewMenu As CommandBarControl
Dim NewItem As CommandBarControl
Dim submenuitem As CommandBarButton

' Delete menu bar if it exists
Call DeleteMenuBar

' Add a menu bar
Set NewMenuBar = CommandBars.Add(MenuBar:=True)
With NewMenuBar
.Name = "Contrôle Planing"
.Visible = True
End With

' Copy the File menu from Worksheet Menu Bar
CommandBars("Worksheet Menu Bar").FindControl
(ID:0002).Copy _
Bar:=CommandBars("Contrôle Planing")

CommandBars("Worksheet Menu Bar").FindControl
(ID:0004).Copy _
Bar:=CommandBars("Contrôle Planing")

CommandBars("Worksheet Menu Bar").FindControl
(ID:0006).Copy _
Bar:=CommandBars("Contrôle Planing")

CommandBars("Worksheet Menu Bar").FindControl
(ID:0009).Copy _
Bar:=CommandBars("Contrôle Planing")

' Menu affichage semestre
Set NewMenu = NewMenuBar.Controls.Add _
(Type:=msoControlPopup)
NewMenu.Caption = "Semestres"

' Add a new menu item
Set NewItem = NewMenu.Controls.Add
(Type:=msoControlPopup)
NewItem.Caption = "Tranche 1"

' Add a new menu item
Set submenuitem = NewItem.Controls.Add
(Type:=msoControlButton)
With submenuitem
submenuitem.Caption = "1er Semestre"
submenuitem.OnAction = "macro3"
End With

' Add a new menu item
Set submenuitem = NewItem.Controls.Add
(Type:=msoControlButton)
With submenuitem
submenuitem.Caption = "2éme Semestre"
submenuitem.OnAction = "macro2"

( je ne l'ai pas collé entiére !!)


Voici les sub que j'ai créé
Sub Macro2()

Sheets("Premier Semestre").Visible = True
Sheets("feuil2").Visible = False
End Sub



Sub Macro3()

Sheets("Feuil2").Visible = True
Sheets("Premier Semestre").Visible = False

End Sub

Lorsque j'essai à partir de VBA elle fonctionne !!?

J'y comprend plus rien !!!












End With
-----Message d'origine-----
Bonsoir,

En supposant que la macro (sub) qui doit être exécutée
quand on clique sur, par

exemple, la commande
"1er semestre" du menu, ressemble à ça :

Sub PremierTrim()
'ton code
End Sub

,dans la procédure de création de ta commande de menu,
tu dois renseigner sa

propriété OnAction en lui donnant le nom de la macro
comme valeur :


LaCommande.OnAction="PremierTrim"

Un exemple complet ici, à adapter à ton besoin :

http://perso.wanadoo.fr/frederic.sigonneau/code/BO/CreerM
enu.txt


FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour à tous,

Petit problème de vacances :

J'ai créé un menubar (par VBA), j'ai créé une sub afin
d'ouvrir la feuille que j'ai besoin par ce menu.
Le problème c'est que la sub fonctionne quand je
l'essai, mais elle ne fonctionne pas lorsque je la
lance


du menubar.
Voici comment est structurée la menu bar

ANNEE
Année1
1er semestre : appel feuil1
2 éme semestre : appel feuil2
Année2
1er semestre : appel feuil3
2éme semestre : appel feuil4

Pour l'appel de la feuille j'ai fait un :
feuil.visible= true
et feuil.visible úlse pour fermer les
autres



D'avance merci pour votre aide

@+



.




Avatar
Frédéric Sigonneau
Bonsoir,

J'ai recopié ton code sans rien y changer (juste rajouté un End With et un End
Sub manquants en fin de la procédure MakeMenuBar) et ça marche normalement. Je
veux dire que les macros 3 et 2 sont bien exécutées quand je sélectionne
respectivement les commandes '1er Semestre' et '2éme Semestre' du sous menu
'Tranche 1' du menu 'Semestres'.
Désolé, il m'est difficile dans ce cas d'aller plus loin, mais le problème est
sans doute ailleurs dans ton code.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Voici une partie de la barre que j'avais créé. Ellle
fonctionne car je commande d'autre sub par les boutons.
C' est seulement la commande d'affichage d'une feuille et
de fermeture des autres qui ne fonctionne pas en partant
de la barre.

Sub MakeMenuBar()
Dim NewMenuBar As CommandBar
Dim NewMenu As CommandBarControl
Dim NewItem As CommandBarControl
Dim submenuitem As CommandBarButton

' Delete menu bar if it exists
Call DeleteMenuBar

' Add a menu bar
Set NewMenuBar = CommandBars.Add(MenuBar:=True)
With NewMenuBar
.Name = "Contrôle Planing"
.Visible = True
End With

' Copy the File menu from Worksheet Menu Bar
CommandBars("Worksheet Menu Bar").FindControl
(ID:0002).Copy _
Bar:=CommandBars("Contrôle Planing")

CommandBars("Worksheet Menu Bar").FindControl
(ID:0004).Copy _
Bar:=CommandBars("Contrôle Planing")

CommandBars("Worksheet Menu Bar").FindControl
(ID:0006).Copy _
Bar:=CommandBars("Contrôle Planing")

CommandBars("Worksheet Menu Bar").FindControl
(ID:0009).Copy _
Bar:=CommandBars("Contrôle Planing")

' Menu affichage semestre
Set NewMenu = NewMenuBar.Controls.Add _
(Type:=msoControlPopup)
NewMenu.Caption = "Semestres"

' Add a new menu item
Set NewItem = NewMenu.Controls.Add
(Type:=msoControlPopup)
NewItem.Caption = "Tranche 1"

' Add a new menu item
Set submenuitem = NewItem.Controls.Add
(Type:=msoControlButton)
With submenuitem
submenuitem.Caption = "1er Semestre"
submenuitem.OnAction = "macro3"
End With

' Add a new menu item
Set submenuitem = NewItem.Controls.Add
(Type:=msoControlButton)
With submenuitem
submenuitem.Caption = "2éme Semestre"
submenuitem.OnAction = "macro2"

( je ne l'ai pas collé entiére !!)

Voici les sub que j'ai créé
Sub Macro2()

Sheets("Premier Semestre").Visible = True
Sheets("feuil2").Visible = False
End Sub

Sub Macro3()

Sheets("Feuil2").Visible = True
Sheets("Premier Semestre").Visible = False

End Sub

Lorsque j'essai à partir de VBA elle fonctionne !!?

J'y comprend plus rien !!!

End With
-----Message d'origine-----
Bonsoir,

En supposant que la macro (sub) qui doit être exécutée
quand on clique sur, par

exemple, la commande
"1er semestre" du menu, ressemble à ça :

Sub PremierTrim()
'ton code
End Sub

,dans la procédure de création de ta commande de menu,
tu dois renseigner sa

propriété OnAction en lui donnant le nom de la macro
comme valeur :


LaCommande.OnAction="PremierTrim"

Un exemple complet ici, à adapter à ton besoin :

http://perso.wanadoo.fr/frederic.sigonneau/code/BO/CreerM
enu.txt


FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour à tous,

Petit problème de vacances :

J'ai créé un menubar (par VBA), j'ai créé une sub afin
d'ouvrir la feuille que j'ai besoin par ce menu.
Le problème c'est que la sub fonctionne quand je
l'essai, mais elle ne fonctionne pas lorsque je la
lance


du menubar.
Voici comment est structurée la menu bar

ANNEE
Année1
1er semestre : appel feuil1
2 éme semestre : appel feuil2
Année2
1er semestre : appel feuil3
2éme semestre : appel feuil4

Pour l'appel de la feuille j'ai fait un :
feuil.visible= true
et feuil.visible úlse pour fermer les
autres



D'avance merci pour votre aide

@+



.