08. oktober 2007 - 22:55Der er
8 kommentarer og 1 løsning
Egen værktøjslinie
Hey
Jeg vil nu vove mig ud i at prøve at lave min egen værktøjslinie i Excel via vba (ikke vedhæfte den via Funktioner - Tilpas).
Jeg har bare et lille spørgsmål. Værktøjslinen skal være i en skabelon som flere brugere benytter. Og koden skal ligge i en xla-fil. Alle makroer ligger også heri, der eksisterer allerede.
Men indtil nu har værktøjslinien jo været vedhæftet skabelonen og er dermed "gemt" i mange tidligere Excel-ark.
Disse skal ikke åbne med den "gamle" vedhæftede værktøjslinie men i stedet med den nye... hvis man skal "kigge" på dem igen.
Er der nogle som kan fortælle mig om det er muligt at "blokere" en gl. vedhæftet værktøjslinie i allerede gemte ark og samtidig bruge en ny værktøjslinie.
Gider du udbygge eksemplet med et par knapper så jeg kan se hvordan jeg skal lave det i xla-filen ?
1) Kan man også selv bestemme knappens "billede" 2) Kan man lave denne type værktøjslinie "skjult" ved lukning af skabelonen. I tilfælde af at man åbner to versioner af skabelonen og kommer til at lukke den ene igen så skal værktøjslinien ikke forsvinde (man skal kunne højreklikke og vise den igen). Men den skal forsvinde når der ikke er nogen skabelon åben.
Du får et eksempel på hvordan jeg sletter en gammel menulinje og laver den anden via kode.
1. Billedet, har jeg ikke fundet ud af, jeg bruger tekst.
2. har jeg ikke testet.
Sub auto_open() For Each cbar In CommandBars If cbar.Name = "MinBar" Then CommandBars("MinBar").Delete ' sletter MinBar, hvis den er der i forvejen End If Next Set cbar1 = CommandBars.Add(Name:="MinBar", Position:=msoBarTop)
cbar1.Visible = True Set newItem = CommandBars("MinBar").Controls.Add(Type:=msoControlButton)
With newItem .BeginGroup = True .FaceId = 420 .Caption = "(Lav menu)" .Style = msoButtonCaption .OnAction = "Menu" End With
Set newItem = CommandBars("MinBar").Controls.Add(Type:=msoControlButton) With newItem .BeginGroup = False .Caption = "(Gentag overskrift)" .Style = msoButtonCaption .OnAction = "linje" End With
Set newItem = CommandBars("MinBar").Controls.Add(Type:=msoControlButton) With newItem .BeginGroup = False .Caption = "(Sti)" .Style = msoButtonCaption .OnAction = "Sti" End With
Range("A1:i1").Select With Selection .HorizontalAlignment = xlCenter End With Selection.Merge With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = 3 End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = 3 End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = 3 End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = 3 End With End If Range("a2:i31").Select ' sletter alle data i området til hyperlink Selection.ClearContents ' der kan jo være fjernet sider ??? Range("a2").Select '-----------------------------------------Der laves hyperlink til alle ark ------------- For Each ws In Worksheets Worksheets("Menu").Range("a2:a260").Cells(W, K).Select ' reseverer et område til at skrive hyperlink i
If ws.Name = "Menu" Then GoTo Næste ' Hopper over hovedarket "Menu"
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="'" & ws.Name & "'" & "!A1" ActiveCell.FormulaR1C1 = ws.Name ' skriver hyperlink på alle sider inden for området W = W + 1 Næste: Next ws '------------------------------Soterer kollonne A ---------------------------- Range("A2").Select Range(Selection, Selection.End(xlDown)).Select Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal
'--------------- Flytter data over i 4 kolonner ------------------------ R = 2 For I = 31 To 252 Step 28 Range("A" & I & ":A" & I + 28).Cut Cells(2, R).Select ActiveSheet.Paste R = R + 1 Next Columns("A:I").Select Selection.EntireColumn.AutoFit Range("A1").Select
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.