Avatar billede boro23 Forsker
13. februar 2014 - 11:50 Der er 7 kommentarer og
1 løsning

Finde arknavne i fil

Hej igen. Jeg har en fil med 15-20 ark. Er det muligt i et nyt ark at finde arknavnene i filen, som f.eks A1 = 1. arknavn, B1 = 2. arknavn, C1 = 3. arknavn osv. Evt. som VBA kode.
Avatar billede kabbak Professor
13. februar 2014 - 12:58 #1
Jeg lavede denne for år siden, måske kan den bruges


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.Kabbak  ©")
    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.Kabbak ©"
            ActiveCell.Font.Color = vbBlue
            ActiveCell.Font.Bold = True
            ActiveCell.Font.Italic = True
            Range("A1:E1").HorizontalAlignment = xlCenter
            Range("A1:E1").Merge
           
        End If
        Range("a2:f31").ClearContents        ' sletter alle data i området til hyperlink
        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 kollonne 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("A31:A59").Cut Range("B2")
        Range("A60:A88").Cut Range("C2")
        Range("A89:A117").Cut Range("D2")
        Range("A118:A146").Cut Range("E2")
        Columns("A:E").ColumnWidth = 22
    Else
        Exit Sub
    End If
End Sub
Avatar billede Slettet bruger
13. februar 2014 - 14:41 #2
Et alternativ er at oprette en navngiven formel som føllger:

Navn: wsNames
Formel:=RIGHT(GET.WORKBOOK(1);LEN(GET.WORKBOOK(1))-FIND("]";GET.WORKBOOK(1)))

Herefter kan du indsætte følgende i A1 og kopiere nedad:

=INDEX(wsNames;ROW(1:1))
Avatar billede boro23 Forsker
17. februar 2014 - 09:40 #3
Hej kabbak, din kode virker efter hensigten, 1000 tak for hjælpen, smider du et svar.

Hej dkhanknu
Jeg kan ikke få din løsnig til at virke, er det fordi formlerne er på engelsk? vil gerne afprøve løsningen. Har du mulighed for at oploade et eksempel? Opretter gerne en ny tråd.
Avatar billede kabbak Professor
17. februar 2014 - 10:31 #4
;-)
Avatar billede Slettet bruger
17. februar 2014 - 10:56 #5
Avatar billede Slettet bruger
17. februar 2014 - 11:06 #6
Hvis du kigger i Navnestyring vil du se noget der er kaldt shName. Den er overflødig i den her forbindelse. Det er kun wsNames der er relevant.

Hans
Avatar billede boro23 Forsker
17. februar 2014 - 11:44 #7
Hej Hans, fantastisk og 1000 tak, jeg opretter en tråd til point
Avatar billede Slettet bruger
17. februar 2014 - 11:56 #8
Glem det bare.
Jeg samler ikke.

Hans
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