(troppo vecchio per rispondere)
menu a tendina
alex
2006-08-01 13:46:57 UTC
con vba excel non e' possibile creare in una form dei menu a discesa tipo
tendina ?
Norman Jones
2006-08-01 14:39:25 UTC
Ciao Alex,
Post by alex
con vba excel non e' possibile creare in una form dei menu a discesa tipo
tendina ?
Non ho capito bene. Potresti rispiegare, magari con un esempio?


---
Regards,
Norman
Mauro Gamberini
2006-08-01 14:45:26 UTC
Post by alex
con vba excel non e' possibile creare in una form dei menu a discesa tipo
tendina ?
Le ComboBox non vanno bene?
O vuoi un menu tipo menu standard
con File, Modifica, Visualizza, ecc?
--
---------------------------
Mauro Gamberini
http://www.riolab.org/
alex
2006-08-01 15:08:52 UTC
Post by Mauro Gamberini
Le ComboBox non vanno bene?
O vuoi un menu tipo menu standard
con File, Modifica, Visualizza, ecc?
ecco esatto volevo poter creare una cosa del genere magari non file
modifica, visulizza pero' lo stite e' quello.
alex
2006-08-01 15:09:28 UTC
Post by Norman Jones
Non ho capito bene. Potresti rispiegare, magari con un esempio?
si i classici menu tipo file, visualizza,modifica come ha detto mauro.
Norman Jones
2006-08-01 15:45:02 UTC
Ciao Alex,
Post by alex
si i classici menu tipo file, visualizza,modifica come ha detto mauro.
Prova qualcosa del genere:

'=============>>
Public Sub Tester0010()
Dim CMenu1 As CommandBarControl
Dim cbMainMenuBar As CommandBar
Dim iHelpMenu As Long
Dim cbcCustomMenu As CommandBarControl

On Error Resume Next
Application.CommandBars("Worksheet Menu Bar"). _
Controls("MyMenu").Delete
On Error GoTo 0

Set cbMainMenuBar = Application.CommandBars _
("Worksheet Menu Bar")

iHelpMenu = cbMainMenuBar.FindControl(ID:=30010).Index
'
Set cbcCustomMenu = cbMainMenuBar.Controls. _
Add(Type:=msoControlPopup, _
Before:=iHelpMenu, _
Temporary:=True)

cbcCustomMenu.Caption = "MyMenu"
With cbcCustomMenu.Controls.Add(Type:=msoControlPopup)
.Caption = "Pippo"
.Tag = "Pippo"

Set CMenu1 = .Controls.Add(Type:=msoControlButton)
With CMenu1
.Caption = "&Sub_Menu1"
.FaceId = 48
.OnAction = "myMacro1"
End With

Set CMenu1 = .Controls.Add(Type:=msoControlButton)
With CMenu1
.Caption = "S&ub_Menu2"
.FaceId = 49
.OnAction = "myMacro2"
End With
End With

End Sub
'<<=============


---
Regards,
Norman
alex
2006-08-01 16:12:50 UTC
Prova qualcosa del genere:

provo subitissimo!!! ma.... a che evento genero tutto questo??
ad un pulsante??
ad un modulo?? devo inserire i menu in un userform
Post by Norman Jones
'=============>>
Public Sub Tester0010()
Dim CMenu1 As CommandBarControl
Dim cbMainMenuBar As CommandBar
Dim iHelpMenu As Long
Dim cbcCustomMenu As CommandBarControl
On Error Resume Next
Application.CommandBars("Worksheet Menu Bar"). _
Controls("MyMenu").Delete
On Error GoTo 0
Set cbMainMenuBar = Application.CommandBars _
("Worksheet Menu Bar")
iHelpMenu = cbMainMenuBar.FindControl(ID:=30010).Index
'
Set cbcCustomMenu = cbMainMenuBar.Controls. _
Add(Type:=msoControlPopup, _
Before:=iHelpMenu, _
Temporary:=True)
cbcCustomMenu.Caption = "MyMenu"
With cbcCustomMenu.Controls.Add(Type:=msoControlPopup)
.Caption = "Pippo"
.Tag = "Pippo"
Set CMenu1 = .Controls.Add(Type:=msoControlButton)
With CMenu1
.Caption = "&Sub_Menu1"
.FaceId = 48
.OnAction = "myMacro1"
End With
Set CMenu1 = .Controls.Add(Type:=msoControlButton)
With CMenu1
.Caption = "S&ub_Menu2"
.FaceId = 49
.OnAction = "myMacro2"
End With
End With
End Sub
'<<=============
---
Regards,
Norman
alex
2006-08-01 16:27:40 UTC
Prova qualcosa del genere:
ho provato ma il mymenu va a finire nel menu excel io volevo metterlo nella
userform si puo' fare?
Post by Norman Jones
'=============>>
Public Sub Tester0010()
Dim CMenu1 As CommandBarControl
Dim cbMainMenuBar As CommandBar
Dim iHelpMenu As Long
Dim cbcCustomMenu As CommandBarControl
On Error Resume Next
Application.CommandBars("Worksheet Menu Bar"). _
Controls("MyMenu").Delete
On Error GoTo 0
Set cbMainMenuBar = Application.CommandBars _
("Worksheet Menu Bar")
iHelpMenu = cbMainMenuBar.FindControl(ID:=30010).Index
'
Set cbcCustomMenu = cbMainMenuBar.Controls. _
Add(Type:=msoControlPopup, _
Before:=iHelpMenu, _
Temporary:=True)
cbcCustomMenu.Caption = "MyMenu"
With cbcCustomMenu.Controls.Add(Type:=msoControlPopup)
.Caption = "Pippo"
.Tag = "Pippo"
Set CMenu1 = .Controls.Add(Type:=msoControlButton)
With CMenu1
.Caption = "&Sub_Menu1"
.FaceId = 48
.OnAction = "myMacro1"
End With
Set CMenu1 = .Controls.Add(Type:=msoControlButton)
With CMenu1
.Caption = "S&ub_Menu2"
.FaceId = 49
.OnAction = "myMacro2"
End With
End With
End Sub
'<<=============
---
Regards,
Norman
Norman Jones
2006-08-01 17:29:07 UTC
Ciao Alex,
Post by alex
ho provato ma il mymenu va a finire nel menu excel
E' colpa mia - avevo mal capito la tua domanda.
Post by alex
io volevo metterlo nella userform si puo' fare?
Credo che non sia possibile come un Menu.

Dovresti spiegare più dettagliatamente lo scopo del 'menu' . Possibilmente,
sarebbe possibile usare dell'etichette o dei CommandButton.


---
Regards,
Norman
alex
2006-08-02 06:55:07 UTC
E' colpa mia - avevo mal capito la tua domanda.
Post by Norman Jones
Credo che non sia possibile come un Menu.
Dovresti spiegare più dettagliatamente lo scopo del 'menu' .
Possibilmente, sarebbe possibile usare dell'etichette o dei CommandButton.
grazie mille norman, lo scopo potrebbe essere quello di non avere molti
pulsanti in una maschera video che svolgono varie operazioni, ma bensi dei
menu a cascata con all'interno le funzioni tipo apre userform1,apreuserform2
stampa report ecc.ecc.
Sono riuscito a spiegarmi come si deve? putroppo so e ammetto di spiegarmi
sempre male
Mauro Gamberini
2006-08-02 07:12:35 UTC
Post by alex
grazie mille norman, lo scopo potrebbe essere quello di non avere molti
pulsanti in una maschera video che svolgono varie operazioni, ma bensi dei
menu a cascata con all'interno le funzioni tipo apre
userform1,apreuserform2 stampa report ecc.ecc.
Soluzione con ComboBox.
Metti una ComboBox.
All'interno carichi le voci.
Alla selezione di una voce corrisponde
un'azione.

Esempio.

Questo nel modulo di codice della UserForm:

'Inserisci le voci nella ComboBox all'apertura della UserForm
Private Sub UserForm_Activate()
ComboBox1.Clear
ComboBox1.AddItem ("Stampa")
ComboBox1.AddItem ("Visualizza UserForm2")
'ecc
End Sub

'A seconda della tua scelta, stampi, apri UserForm, ecc...
Private Sub ComboBox1_Click()
Select Case ComboBox1.Text
Case Is = "Stampa"
Foglio1.PrintOut
Case Is = "Visualizza UserForm2"
UserForm2.Show
'ecc
End Select
End Sub
--
---------------------------
Mauro Gamberini
http://www.riolab.org/
alex
2006-08-02 08:56:37 UTC
Post by Mauro Gamberini
Esempio.
'Inserisci le voci nella ComboBox all'apertura della UserForm
Private Sub UserForm_Activate()
grazie mille mauro ora provo subito