Avatar billede tida Juniormester
10. januar 2002 - 15:46 Der er 5 kommentarer og
1 løsning

Rullegardin i værktøjslinien !!

Jeg er interesseret i at oprette et rullegardin, indeholdende en liste med tekster og værdier som jeg hyppigt benytter. Da det er generelt gældende ønsker jeg ikke at knytte proceduren til en fil men som en del af min værktøjslinie.

Systemet skal herefter indsætte det valgte i den aktuelle celle.

Er det overhovedet muligt ?
Avatar billede rvm Nybegynder
10. januar 2002 - 16:15 #1
Det lyder lidt som om du leder efter samme funktion som Word har med autotekster - det har Excel desværre ikke, men du er inde på den rigtige løsning.

Start med at optage at du sætter et eller andet ind.
Vælg Vis/Værktøjslinier/Tilpas
Vælg fanen \"Kommandoer\"
Vælg Kategorien \"Ny menu\" og træk den op på din værktøjslinie

Vælg derefter kategorien makoer og træk den brugerdefinere knap op i menuen
Højreklik på knallen og tildel den din tidligere optagne makro

Gentag sidste proces, ved hver ny makro

Mvh

Richardt
Avatar billede rvm Nybegynder
10. januar 2002 - 16:16 #2
knallen = knappen *S*
Avatar billede tida Juniormester
10. januar 2002 - 16:22 #3
Den løsning har jeg allerede, men det duer ikke da min liste er på 50 punkter eller mere.
Jeg ønsker istedet et rullegardin.
Avatar billede bak Forsker
10. januar 2002 - 21:07 #4
Sikken en opgave! Så fik jeg da bevæget mig ud i noget jeg ikke har prøvet før, men har er sådan et rullegardin.
Du har nu to valgmuligheder:
1. i det regneark hvor du smider koden ind, kan du lave en liste i ark1 kolonne A lige lang du ønsker. Når arket åbnes bliver det automatisk indlæst. (du kunne jo smide det hele over i personal.xls)
2.Du kan slette alle linier med tre stjerner og selv sætte listen direkte ind i VBA. (eks er vist med test osv.)


Sub auto_open()
Set tw = ThisWorkbook.Worksheets(1)  \'***
x = Application.WorksheetFunction.CountA(tw.Columns(1)) \'***
Set rng = tw.Range(\"a1:A\" & x) \'***
Set myBar = CommandBars _
    .Add(Name:=\"Custom\", Position:=msoBarTop, _
    Temporary:=True)
With myBar
    .Controls.Add Type:=msoControlComboBox, ID:=1
    .Visible = True
End With
With CommandBars(\"Custom\").Controls(1)
    \'.AddItem \"test 1\", 1
    \'.AddItem \"test 2\", 2
    \'.AddItem \"test 3\", 3
    \'.AddItem \"test 4\", 4
    For i = 1 To x                          \'***
      .AddItem rng.Cells(i, 1), i          \'***
    Next i                                  \'***
        .ListIndex = 1
    .Caption = \"Test data\"
    .DescriptionText = \"Se testdata\"
    .OnAction = \"PutInCell\"
End With
End Sub

Sub PutInCell()
On Error GoTo ud
Dim userChoice As Long
userChoice = CommandBars(\"Custom\").Controls(1).ListIndex
us1 = CommandBars(\"Custom\").Controls(1).List(userChoice)
ud:
ActiveCell.Value = us1
End Sub

Avatar billede fobian Nybegynder
11. januar 2002 - 08:48 #5
Hej Tida

Prøv at kopere denne kode ind i et modul i et regneark og afspil Macromenu. Det er et eksempel på hvordan det kan løses.

Sub Macromenu()
Dim ctlGFKnap As Object
ThisWorkbook.Activate

Application.CommandBars.Add Name:=\"Macroer\"
CommandBars(\"Macroer\").Visible = True
Set ctlGFKnap = Application.CommandBars(\"Macroer\").Controls.Add(Type:=msoControlComboBox, before:=1)
With ctlGFKnap
   
    .AddItem \"Macro 1\", 1
    .AddItem \"Macro 2\", 2
    .AddItem \"Macro 3\", 3
    .AddItem \"Macro 4\", 4
    .AddItem \"Macro 5\", 5
    .AddItem \"Macro 6\", 6
    .AddItem \"Macro 7\", 7
    .AddItem \"Macro 8\", 8
    .AddItem \"Macro 9\", 9
    .AddItem \"Macro 10\", 10
    .AddItem \"Macro 11\", 11
    .AddItem \"Macro 12\", 12
    .AddItem \"Macro 13\", 13
    .AddItem \"Macro 14\", 14
    .AddItem \"Macro 15\", 15
    .AddItem \"Macro 16\", 16
    .AddItem \"Macro 17\", 17
    .AddItem \"Macro 18\", 18
    .Width = 100
    .DropDownLines = 10
    .DropDownWidth = 100
    .ListIndex = 0
    .Text = \"Afspil en macro\"

    .OnAction = \"Valg\"
 
End With

End Sub

Sub Valg()
Select Case CommandBars(\"Macroer\").Controls(1).ListIndex
Case 1
MacroEt
Case 2
MacroTo
End Select
\'
End Sub


Function MacroEt()
MsgBox \"Du har valgt et\"
End Function

Function MacroTo()
MsgBox \"Du har valgt to\"
End Function

\'osv.
Avatar billede tida Juniormester
11. januar 2002 - 09:20 #6
Tak til bak.....det var lige hvad jeg søgte og den kører bare perfekt !
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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