Notifications
Clear all

Menubar

7 Posts
2 Usuários
0 Reactions
1,635 Visualizações
(@eduhaag)
Posts: 36
Trusted Member
Topic starter
 

Ola pessoal, estou desenvolvendo um sistema de automação de loja completo dentro do excel com VBA.
Estou com um serio problema, preciso inserir uma barra de menu, tipo essas dos softwares da miscrosoft (arquivo, exibir, editar).
Mas não faço a menor ideia de como inserir uma barra assim no meu userform, nem mesmo sei se é possivel essa façanha dentro do excel.
Alguem poderia me dar uma mãozinha com isso?

 
Postado : 31/01/2013 8:21 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!
Isso é possível, mas tanto quanto eu sei que envolvem o uso de API.

Leia:
http://www.dailydoseofexcel.com/archive ... -userform/

Tem um modelo em: http://www.jkp-ads.com/downloadscript.asp?filename=UserFormMenu.zip

Option Explicit
'Exemplo de código escrito por RobDog888 (vbforums.com)
'Macros deve estar habilitado para o código para executar
'Adicionar uma referência a biblioteca de objetos de escritório MS xx.0 (Se necessário, dependendo da app)
'Adicionar um controle de imagem e CommandButton para o UserForm.
Private moCBImage As Office.CommandBar
 
Private Sub CommandButton1_Click()
    Unload Me
End Sub
 
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    moCBImage.Delete
    Unload Me
End Sub
 
Private Sub Image1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    'Invoke the menu on a right click on the Image control
    If Button = xlSecondaryButton Then
        moCBImage.ShowPopup
    End If
End Sub
 
Private Sub UserForm_Initialize()
    Dim oCBSavePic As Office.CommandBarButton
    Dim oCBLoadPic As Office.CommandBarButton
    Dim oCBClearPic As Office.CommandBarButton
    'Add a titlebar caption
    Me.Caption = "RobDog888 Context Menu Demo"
    'Add the parent command bar popup
    Set moCBImage = Application.CommandBars.Add("cbImage", msoBarPopup, , True)
    With moCBImage
        .Name = "cbImage"
        .Enabled = True
    End With
    'Add the first child menu item to the popup
    Set oCBSavePic = moCBImage.Controls.Add(msoControlButton, 1, "8889", , True)
    With oCBSavePic
        .Caption = "Save Picture"
        .Enabled = True
        .FaceId = 3 'Save bitmap resource image id
        .OnAction = "SaveImage"
        .Style = msoButtonIconAndCaption
        .Visible = True
    End With
    'Add the second child menu item to the popup
    Set oCBLoadPic = moCBImage.Controls.Add(msoControlButton, 1, "8890", , True)
    With oCBLoadPic
        .Caption = "Load Picture"
        .Enabled = True
        .FaceId = 23 'Open folder bitmap resource image
        .OnAction = "LoadImage"
        .Style = msoButtonIconAndCaption
        .Visible = True
    End With
    'Add the third child menu item to the popup
    Set oCBClearPic = moCBImage.Controls.Add(msoControlButton, 1, "8891", , True)
    With oCBClearPic
        .BeginGroup = True
        .Caption = "Clear Picture"
        .Enabled = True
        .FaceId = 2087 'Delete bitmap resource image
        .OnAction = "ClearImage"
        .Style = msoButtonIconAndCaption
        .Visible = True
    End With
End Sub
 
 
'Behind Module1
Option Explicit
'This is where the event procedures for the menu item clicks need to be.
'Example code written by RobDog888 (vbforums.com)
'Macros must be enabled for the code to run
 
Public Sub SaveImage()
    MsgBox "Save Picture", vbOKOnly + vbInformation, "RobDog888's Context Menu Demo"
End Sub
 
Public Sub LoadImage()
    MsgBox "Load Picture", vbOKOnly + vbInformation, "RobDog888's Context Menu Demo"
End Sub
 
Public Sub ClearImage()
    MsgBox "Clear Picture", vbOKOnly + vbInformation, "RobDog888's Context Menu Demo"
End Sub
 
 
 
'Behind ThisWorkbook (for Excel as an example)
Option Explicit
'Show UserForm at workbook opening.
'Example code written by RobDog888 (vbforums.com)
'Macros must be enabled for the code to run
 
Private Sub Workbook_Open()
    UserForm1.Show vbModeless
End Sub

Att

 
Postado : 31/01/2013 8:31 am
(@eduhaag)
Posts: 36
Trusted Member
Topic starter
 

Bom, eu imaginei que talvez pudesse ser mais facil, que fosse um objeto que se adiciona ao userform, igual é no visualStudio.
Mas dei uma olhada no exemplo que postou, e não entendi quase nada.
Talvez se existisse um controle activex fosse mais facil.
Mesmo assim obrigado pela ajuda.

 
Postado : 31/01/2013 8:45 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
(@eduhaag)
Posts: 36
Trusted Member
Topic starter
 

É não tem jeito, com o uso de API's, julgo ser praticamente impossivel para mim, a criação dessa menubar.
Mas agradeço muito a colaboração dos amigos que tentaram ajudar,
Mas vou tentar algo que fique em um visual meia boca com a treeview sugerida pelo amigo joseA.
Obrigado

 
Postado : 01/02/2013 8:12 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Existem outras maneiras sem o uso de API's
Veja uma delas: http://marcosoftx.blogspot.com.br/

Existem outras

 
Postado : 07/02/2013 2:41 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Veja aqui tbM, se precisar de ajuda mostre...

http://www.tomasvasquez.com.br/forum/viewtopic.php?f=20&t=1994&p=9293&hilit=menu#p9293

 
Postado : 08/02/2013 10:26 am