Avatar billede somaliomar Praktikant
29. januar 2003 - 09:59 Der er 23 kommentarer og
2 løsninger

Knap til en macro på værkstøjslinjen

Hvordan laver jeg en knap på værktøjslinjen, der starter en macro i et Excel-dokument? Det skal være sådan, at knappen kun er aktiv sålænge det dokument, som har fået tildelt knappen, er åben! Det skulle være ligetil, men jeg kan ikke finde ud af det.

Jeg har allerede lavet en knap på værktøjslinjen som aktiverer macroen, men problemet er, at knappen ikke forsvinder når Excel-dokumentet er lukket.

/Omar
Avatar billede b_hansen Novice
29. januar 2003 - 10:09 #1
Løsningen på dit problem er at lave en tilføjelse i Before close (eller noget i den stil).
Her laver du en programstump, der sletter den relevante knap/værktøjslinie.
Avatar billede b_hansen Novice
29. januar 2003 - 10:09 #2
så skal du osse lige huske at tilføje den i workbook open, så vidt jeg husker
Avatar billede kildeby Nybegynder
29. januar 2003 - 10:26 #3
Du skal oprette en "arkskabelon" dette gør du ved at oprette en projektmappe og derefter gemme den som skabelon (gem som - ind i filtype og vælg *.xlt) derefter kan du oprette din "macroknap" i denne skabelon og den vil så kun være tilgængelig i de regnearker der er oprettet ud fra denne skabelon. Se forøvrigt HJÆLP under "oprette en arkskabelon til nye projektmapper".
Avatar billede somaliomar Praktikant
29. januar 2003 - 12:51 #4
b_hansen >> Jeg tror, at jeg benytter mig af din forslag om at lave noget kode der tilføjer og fjerner knappen. Men hvordan gør jeg det? Har du allerede en kode der tilføjer en knap og derefter assigner en macro til knappen? Og bagefter sletter den?
Avatar billede b_hansen Novice
29. januar 2003 - 13:38 #5
Næsten somaliomar. Jeg har lavet noget kode, der tilføjer og sletter en menubjælke. Måske det kan hjælpe?
Det forudsætter dog, at du har tilføjet menulinien til det aktuelle ark. I this workbook tilføjer du følgende kode:

Private Sub Workbook_Open()
    Application.CommandBars("Menu til informationsystem").Visible = True
End Sub   

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.CommandBars("Menu til informationsystem").Visible = False
    Application.CommandBars("Menu til informationsystem").Delete
End Sub
Avatar billede b_hansen Novice
29. januar 2003 - 13:41 #6
Hvis du laver det som en selvstændig menubjælke, behøver du ikke assigne makroen hver gang.
Avatar billede b_hansen Novice
07. februar 2003 - 07:50 #7
har du fået det til at virke somaliomar?
Avatar billede somaliomar Praktikant
07. februar 2003 - 07:51 #8
Nej ikke helt...
Avatar billede somaliomar Praktikant
07. februar 2003 - 07:52 #9
Er der en anden måde at gøre det på end at oprette en selvstændig menubjælke?
Avatar billede b_hansen Novice
07. februar 2003 - 07:56 #10
Det vil jeg da tro, men jeg har ikke selv testet det. Men du kan jo eventuelt prøve at optage en makro, hvor du tilføjer en knap og tilhørende makro til en eksisterende menu, og bagefter sletter den igen.
Så deler du kodestumpen op i den del, der opretter menupunktet, som placeres i Private Sub Workbook_Open()
Den del, der sletter igen, placerer du herefter under Private Sub Workbook_BeforeClose(Cancel As Boolean)

Det burde virke. Men ellers burde det nu ikke være noget problem med en selvstændig menubjælke. Den kan jo placeres ved siden af en eksisterende, så det ser ud som om, der er tale om én.
Avatar billede somaliomar Praktikant
07. februar 2003 - 07:58 #11
Det har jeg prøvet, men macro-generatoren vil ikke optage den kode, der skal til for at tilføje og fjerne en knap på værktøjslinjen.
Avatar billede b_hansen Novice
07. februar 2003 - 08:10 #12
Jeg har fundet to muligheder for at tilføje menupunkter ved at optage en makro:
Application.CommandBars("Menuens navn").Controls.Add Type:= _
        msoControlButton, ID:=2949, Before:=6
Application.CommandBars("Menuens navn").Controls.Add Type:= _
        msoControlButton, ID:=2950, Before:=6
Den første tilføjer et "brugerdefineret menupunkt" og den anden tilføjer en "brugerdefineret knap"

Jeg har fået fremtryllet følgende slettemulighed:
Application.CommandBars("Brugerdefineret genvejsmenu5").Controls(1).Delete

Det skal bemærkes, at jeg testede på en brugerdefineret menu, jeg havde lavet i forvejen. Hvorvidt det virker på standardmenuerne, ved jeg ikke. Umiddelbart kan jeg finde ud af at tildele en makro.
Avatar billede bak Forsker
07. februar 2003 - 10:52 #13
Indsæt disse to makroer i ThisWorkBook.
Den første indsætter knap når regnearket åbnes og den næste fjerner den igen når det lukkes.
I punktet .OnAction=  skriver du navnet på den makro du ønsker at knappen skal køre.
Vær opmærksom på at Before 25 vil få knappen til at være nummer 25. Dette nummer skal bruges når den slettes igen.
Knappen lægges i Standard-menubjælken. Denne hedder ikke nødvendigvis standard på dansk.

Private Sub Workbook_Open()
Dim test As Object
    Set test = Application.CommandBars("Standard").Controls.Add(Type:=msoControlButton, ID _
        :=266, Before:=25, temporary:=True)
    With test
        .Caption = "Hent regneark"
        .OnAction = "Hent_Ark"
    End With
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Application.CommandBars("Standard").Controls(25).Delete
End Sub
Avatar billede somaliomar Praktikant
07. februar 2003 - 10:56 #14
bak >> Det virker sgu!! Gider du ikke lige smide et svar?
Avatar billede b_hansen Novice
07. februar 2003 - 10:59 #15
jeg bøjer mig i støvet for bak *S*
Avatar billede somaliomar Praktikant
07. februar 2003 - 11:01 #16
b_hansen >> Det gør vi begge to (men jeg gør det ikke i støvet) :)
Avatar billede somaliomar Praktikant
07. februar 2003 - 11:02 #17
Jeg venter lige til bak svarer, så fordeler jeg pointene ligeligt mellem jer to... Jeg håber det er i orden.
Avatar billede bak Forsker
07. februar 2003 - 11:03 #18
Tak for points.
Du behøver ikke bøje dig, hansen. Jeg stjæler jo også stumper med arme og ben :-)
Avatar billede b_hansen Novice
07. februar 2003 - 11:03 #19
nej, pointene tilkommer bak. Han er kommet med den helstøbte løsning.
Avatar billede bak Forsker
07. februar 2003 - 11:03 #20
og så lige svaret...
Avatar billede bak Forsker
07. februar 2003 - 11:04 #21
PS. Jeg deler gerne med hansen. Han gør et godt forabejde.
Avatar billede somaliomar Praktikant
07. februar 2003 - 11:05 #22
b_hansen >> Jeg ved det! Men du har sgu brugt din dyrebare tid på, at finde en løsning på problemet. Det er det mindste jeg kan gøre :)
Avatar billede somaliomar Praktikant
07. februar 2003 - 11:06 #23
Det er også i orden med bak...
Avatar billede b_hansen Novice
07. februar 2003 - 11:08 #24
nå så ok da *S* Jeg takker for pointene
Avatar billede somaliomar Praktikant
07. februar 2003 - 11:09 #25
Jeg takker for jeres tid... :)
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