Avatar billede steensommer Praktikant
10. august 2003 - 11:27 Der er 11 kommentarer og
1 løsning

Menu-linie problem

Hej

Jeg har en projektmappe som fungerer som patientliste hvorfra andre projektmapper kan opstartes.
For at minimere brugerens mulighed for at lave fejl har jeg fjernet Worksheet Menu linien hvilket fungerer fint når den startes men når jeg har været inde i en af de andre mapper og disse afsluttes (og vha vba aktiverer patientlisten) gendannes menuen - hvad kan gøres?

Følgende vba er lagt i Thisworkbook: workbook_Open (og forsøgt lagt i workbook.activate uden effekt).

Application.CommandBars("Worksheet Menu Bar").Enabled = False

vh Steen
Avatar billede sjap Praktikant
10. august 2003 - 14:16 #1
Spørgsmål:
Er det fordi "workbook.activate" er en handling - dvs. en funktion, der aktiverer en workbook (altså ikke registrerer om den er aktiveret)

Rent gæt:
Findes der en GotFocus/LostFocus hændelse - så kan funktionen måske placeres der.
Avatar billede bak Forsker
10. august 2003 - 14:47 #2
superjab-> nej til begge ting :-)
Private Sub Workbook_Activate()
burde give en handling når mappen aktiveres

kan vi ikke lige se koden der lukker de andre projektmapper og aktiverer patientlisten ?
Avatar billede steensommer Praktikant
10. august 2003 - 16:25 #3
Jo den er her:

Sub ActiveWorkbookClose()
Application.ScreenUpdating = False
   
    On Error Resume Next

Windows("Patientliste.xls").Activate
ThisWorkbook.Close True

Application.ScreenUpdating = True
End Sub
Avatar billede bak Forsker
10. august 2003 - 18:25 #4
Det ser lidt besynderlig ud.
Hvordan får du gendannet menuen ?
Jeg mener, i hvilket modul og fil ligger gendannelsen.
Avatar billede steensommer Praktikant
10. august 2003 - 19:26 #5
Den skal IKKE gendannes i de aktuelle projektmapper. I patientlisten er der overhovedet ingen menulinie, i 2 andre har jeg konstrueret en separat menulinie!
Menulinien kommmer helt af sig selv - også hvis der opstår en eller anden fejl i vba (den er faktisk ret svær at blive af med)
Avatar billede bak Forsker
10. august 2003 - 21:52 #6
Steen->
Den separate menulinie du selv konstruerer, bruges sansynligvis
CommandBars(1).Controls.Add
CommandBars(1) er det samme som CommandBars("Worksheet Menu Bar"), altså laver du ikke en ny, men ændrer den gamle.

Jeg tror at du i en af de mapper du lukker først har en sub som denne
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call DeleteMenuBar
End Sub

Den laver en restore af den originale commandbar og da du har enabled CommandBars(1) vil den vises, når subben er kørt.....

Indviklet ????
Avatar billede bak Forsker
10. august 2003 - 21:59 #7
PS du er velkommen til at sende regnearkene
tommybak@netscape.net
Avatar billede steensommer Praktikant
10. august 2003 - 21:59 #8
Nej ikke indviklet - du var helt sikkert på sporet af noget rigtig. Det fik mig til at kigge i Workbook_BeforeClose hvor følgende linie havde sneget sig ind:
    Application.CommandBars("Worksheet Menu Bar").Enabled = True
Med andre ord gør den det modsatte af det der var meningen
Avatar billede steensommer Praktikant
10. august 2003 - 22:16 #9
Nå - jeg fjernede ovenstående hvorefter den når jeg lukker mappen skriver (lukket med ovenstående ActiveworkbookClose):

Application-defined or object-defined error

Ved du hvad det betyder???
Jeg vil da meget gerne sende den til dig men de er efterhånden blevet lidt store og du er vel fortsat på nettet vha telefonlinien??? ;0))
Avatar billede bak Forsker
10. august 2003 - 22:26 #10
send til tbc@linak.dk
Avatar billede steensommer Praktikant
27. august 2003 - 07:53 #11
Hov Tommy - du mangler da at få dine point. Kunne du ikke lige svare?
Avatar billede steensommer Praktikant
03. januar 2004 - 13:47 #12
Nå så lukker jeg :0(
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester