Custom werkbalk probleem

Status
Niet open voor verdere reacties.

Webster18

Gebruiker
Lid geworden
31 aug 2007
Berichten
618
Hallo,

Ik heb volgende probleem:

Ik heb een kleine applicatie geschreven met een custom werkbalk die ik in VBA heb aangemaakt. Via de werkbalk kan de gebruiker tussen de verschillende Excel bladen navigeren en ook userforms openen.
Het is de bedoeling dat de gebruiker het Excelbestand kan opslaan met een zelf gekozen naam. Het moet ook mogelijk zijn dat de gebruiker een vorig bestand en een nieuw bestand tegelijk opent. En hier zit nu het probleem. Op de werkbalk zit ook een "exit" functie waarbij het werkblad wordt afgesloten. Wanneer meerdere Excel bestanden zijn geopend, werkt de werkbalk enkel voor het laatst geopende bestand m.a.w. ook al ben je aan het werk in een ander bestand, wanneer je de 'Exit' functie aanroept in de custom werkbalk wordt het laatst geopende bestand gesloten i.p.v. het bestand waarin je aan het werk bent.
Heeft iemand een idee hoe ik dit voorkom. Als ik de exit functie van de standaard Excelmenu gebruik werkt dit wel.
 
Wat is de code achter die Exit functie?

Waarschijnlijk verwijs je niet naar het juiste bestand.

Wigi
 
Code:
sub exit()
application.quit
end sub

misschien deze gebruiken
 
Meer details

Bedankt voor de reacties. Het probleem is echter iets complexer (mijn fout, ik gaf te weinig details). Hierbij wat meer info :

Volgende scenario geeft problemen

Ik heb een workbook (project1.xls) waarbij in de auto_open macro de procedure "DemoMenuSystem" wordt aangeroepen

Code:
Public Const csBar  As String = "ATPx Menu"

Sub DemoMenuSystem()
' creates and installs a demo menubar

Dim aMenu As Object
Dim bar As Object
On Error Resume Next

With CommandBars.Add(csBar, msoBarTop, , True)
'add top-level menus to the menu-style command bar
 With .Controls.Add(Type:=msoControlPopup, Temporary:=True)
    .Caption = "&File"
 End With
 With .Controls.Add(Type:=msoControlPopup, Temporary:=True)
    .Caption = "S&ystem Test"
 End With
 With .Controls.Add(Type:=msoControlPopup, Temporary:=True)
    .Caption = "&AEC Alignment"
 End With
 With .Controls.Add(Type:=msoControlPopup, Temporary:=True)
    .Caption = "&Setup"
    .Tag = "Setup"
 End With
 With .Controls.Add(Type:=msoControlPopup, Temporary:=True)
    .Caption = "&Extra"
 End With
 With .Controls.Add(Type:=msoControlPopup, Temporary:=True)
    .Caption = "&Help"
 End With
End With

With CommandBars("ATPx Menu").Controls("File").Controls
'add a file /print submenu
  With .Add(Type:=msoControlButton)
    .FaceId = PrintIcon
    .Caption = "Print Resultsheet"
    .OnAction = "PrintCommand"
    .BeginGroup = True 'adds seperator in front of item
  End With
 End With

 With CommandBars("ATPx Menu").Controls("System Test").Controls
  With .Add(Type:=msoControlButton, Temporary:=True)
    .Caption = "&Plate to Plate absorption"
    .OnAction = "DummyCommand"
    .Parameter = "ST1"
  End With
.........


De gebruiker kan workbook "project1.xls" opslaan als vb. "project2.xls" (dit moet mogelijk zijn).
Bij een volgende gelegenheid opent de gebruiker "project1.xls" (dit is namelijk de blanco template) en daarna "project2.xls" (vb. als geheugensteuntje bij het invullen).
Wanneer na het invullen van "project1" deze workbook moet worden gesloten gebeurt volgende :

1. Bij aanroepen van het "exit" commando via de custom menubalk wordt "project2" gesloten (de VBA code van project2 wordt dus uitgevoerd).

2. Na sluiten van "project2" blijft dus "project1" openstaan. Maar wanneer de gebruiker dan de custom menu balk gebruikt wordt deze actie niet in "project1" uitgevoerd maar wordt "project2" opnieuw geopend.

Hoe kan ik dit voorkomen. Mijn VBA kennis is te beperkt en ik zie geen mogelijkheid. Kunnen jullie mij verder helpen.

groeten,
 
Opgelost

Ik heb het probleem opgelost door niet via een custom menu te werken maar via buttons in Excel zelf (via hotspot en macro's). Dit werkt beter.

Bedankt voor de reacties
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan