Avatar billede rosco Novice
01. november 2004 - 20:13 Der er 7 kommentarer og
2 løsninger

Vedrørende, http://eksperten.dk/spm/428409 Menu på ark 1

Jeg har 80 ark der bygger på samme skabelon.
Der er en kort beskrivelse i celle Q2.
Hvordan får jeg den til at opdele hyperlinks i kolonnerne A og C
Og så arkets beskrivelse i  fra Q2 i kolonnerne B og D.

hvordan skal koden så se ud?
Avatar billede kabbak Professor
01. november 2004 - 21:40 #1
smid lige den kode du bruger nu, herind.
så skal jeg se på den
Avatar billede kabbak Professor
01. november 2004 - 21:56 #2
Public Sub Menu()
Dim W As Integer, K As Integer, A As Integer
A = MsgBox("Vil du indsætte et ark ved navn MENU, eller opdatere eksisterende, hvor der er Hyperlink til dine ark", vbYesNo, "MENU OPRETTER  v.Holger Bak ©")
If A = 6 Then
R = 2 ' styrer række inden for hyperlink
K = 1 ' styrer kolonner inden for hyperlink
For Each ws In Worksheets
If ws.Name = "Menu" Then GoTo Findes
Next ws

  Set NewSheet = Worksheets.Add ' opretter nyt ark
  NewSheet.Name = "Menu"        ' navngiver det nye ark
 
Findes:
  Worksheets("Menu").Activate
  Range("a1").Select
  If ActiveCell.Value = "" Then
  ActiveCell.Value = "MENU Styring    v.Holger Bak ©"
  ActiveCell.Font.Color = vbBlue
  ActiveCell.Font.Bold = True
  ActiveCell.Font.Italic = True

    Range("A1:E1").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:D41").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

    If ws.Name = "Menu" Then GoTo Næste ' Hopper over hovedarket "Menu"
 
  ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="'" & ws.Name & "'" & "!A1"
    Worksheets("Menu").Cells(R, K).FormulaR1C1 = ws.Name ' skriver hyperlink på alle sider inden for området
    Worksheets("Menu").Cells(R, K + 1) = Sheets(ws.Name).Range("Q2")
    R = R + 1
    If R = 42 Then
    R = 2
    K = 3
    End If
   
Næste:
  Next ws
  Else
Exit Sub
End If
End Sub
Avatar billede rosco Novice
02. november 2004 - 21:38 #3
Jeg bruger din kode, med den rettelse at hyperlinks er fordelt på kun to kolonner A og D.

Public Sub Menu()
Dim W As Integer, K As Integer, A As Integer, ws As Variant, NewSheet As Variant
A = MsgBox("Vil du indsætte et ark ved navn MENU, eller opdatere eksisterende, hvor der er Hyperlink til dine ark", vbYesNo, "MENU OPRETTER  v.Holger Bak ©")
If A = 6 Then
W = 1 ' styrer række inden for hyperlink
K = 1 ' styrer kolonner inden for hyperlink
For Each ws In Worksheets
If ws.Name = "Menu" Then GoTo Findes
Next ws

  Set NewSheet = Worksheets.Add ' opretter nyt ark
  NewSheet.Name = "Menu"        ' navngiver det nye ark
 
Findes:
  Worksheets("Menu").Activate
  Range("a1").Select
  If ActiveCell.Value = "" Then
  ActiveCell.Value = "MENU Styring    v.Holger Bak ©"
  ActiveCell.Font.Color = vbBlue
  ActiveCell.Font.Bold = True
  ActiveCell.Font.Italic = True

    Range("A1:E1").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:f31").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:a150").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 kolonne A ----------------------------
    Range("A2:A150").Select
    Selection.Sort Worksheets("Menu").Columns("A"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
     
      '--------------- Flytter data over i 4 kolonner ------------------------
    Range("A41:A80.Select
    Selection.Cut
    Range("C2").Select
    ActiveSheet.Paste
    Columns("A:D").Select
    Selection.ColumnWidth = 22
Range("d30").Select

   
Range("d30").Select
       
Else
Exit Sub
End If
End Sub
Avatar billede rosco Novice
02. november 2004 - 21:50 #4
Jeg prøvede forslaget, 01/11-2004 21:56:58
det virker.
Hvis jeg udvider antallet af ark er det så blot i disse linier jeg skal rette?

Range("a2:D41").Select 

If R = 42 Then
Avatar billede kabbak Professor
02. november 2004 - 22:12 #5
Nu har jeg ændret, så tæller den selv, og du behøver ikke at gøre noget.


Public Sub Menu()
Dim R As Integer, K As Integer, A As Integer, LR As Integer
A = MsgBox("Vil du indsætte et ark ved navn MENU, eller opdatere eksisterende, hvor der er Hyperlink til dine ark", vbYesNo, "MENU OPRETTER  v.Holger Bak ©")
If A = 6 Then
R = 2 ' styrer række inden for hyperlink
K = 1 ' styrer kolonner inden for hyperlink
For Each ws In Worksheets
If ws.Name = "Menu" Then GoTo Findes
Next ws

  Set NewSheet = Worksheets.Add ' opretter nyt ark
  NewSheet.Name = "Menu"        ' navngiver det nye ark
 
Findes:
LR = Int((Worksheets.Count) / 2) + 1
  Worksheets("Menu").Activate
  Range("a1").Select
  If ActiveCell.Value = "" Then
  ActiveCell.Value = "MENU Styring    v.Holger Bak ©"
  ActiveCell.Font.Color = vbBlue
  ActiveCell.Font.Bold = True
  ActiveCell.Font.Italic = True

    Range("A1:E1").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:D" & LR).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

    If ws.Name = "Menu" Then GoTo Næste ' Hopper over hovedarket "Menu"
 
  ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="'" & ws.Name & "'" & "!A1"
    Worksheets("Menu").Cells(R, K).FormulaR1C1 = ws.Name ' skriver hyperlink på alle sider inden for området
    Worksheets("Menu").Cells(R, K + 1) = Sheets(ws.Name).Range("Q2")
    R = R + 1
    If R = LR + 1 Then
    R = 2
    K = 3
    End If
   
Næste:
  Next ws
  Else
Exit Sub
End If
End Sub
Avatar billede rosco Novice
02. november 2004 - 22:16 #6
Det er kun A2 der fungerer som hyperlink??
Avatar billede kabbak Professor
02. november 2004 - 22:23 #7
sorry

Public Sub Menu()
Dim R As Integer, K As Integer, A As Integer, LR As Integer
A = MsgBox("Vil du indsætte et ark ved navn MENU, eller opdatere eksisterende, hvor der er Hyperlink til dine ark", vbYesNo, "MENU OPRETTER  v.Holger Bak ©")
If A = 6 Then
R = 2 ' styrer række inden for hyperlink
K = 1 ' styrer kolonner inden for hyperlink
For Each ws In Worksheets
If ws.Name = "Menu" Then GoTo Findes
Next ws

  Set NewSheet = Worksheets.Add ' opretter nyt ark
  NewSheet.Name = "Menu"        ' navngiver det nye ark
 
Findes:
LR = Int((Worksheets.Count) / 2) + 1
  Worksheets("Menu").Activate
  Range("a1").Select
  If ActiveCell.Value = "" Then
  ActiveCell.Value = "MENU Styring    v.Holger Bak ©"
  ActiveCell.Font.Color = vbBlue
  ActiveCell.Font.Bold = True
  ActiveCell.Font.Italic = True

    Range("A1:E1").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:D" & LR).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
Cells(R, K).Select
    If ws.Name = "Menu" Then GoTo Næste ' Hopper over hovedarket "Menu"
 
  ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="'" & ws.Name & "'" & "!A1"
    Worksheets("Menu").Cells(R, K).FormulaR1C1 = ws.Name ' skriver hyperlink på alle sider inden for området
    Worksheets("Menu").Cells(R, K + 1) = Sheets(ws.Name).Range("Q2")
    R = R + 1
    If R = LR + 1 Then
    R = 2
    K = 3
    End If
   
Næste:
  Next ws
  Else
Exit Sub
End If
End Sub
Avatar billede rosco Novice
02. november 2004 - 22:28 #8
Du skal have mange tak, det rígtig god funktion du har fået lavet.
Avatar billede kabbak Professor
02. november 2004 - 22:30 #9
tak for rosen og point ;-))
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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Driftsstærk IT-profil til Forsvarsministeriets Materiel- og Indkøbsstyrelse

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Teknologirådgiver inden for AI-området til Teknologiafdelingen

Capgemini Danmark A/S

AI/Data Engineer

Politiets Efterretningstjeneste

AI/ML udvikler i PET