Avatar billede petert Forsker
09. marts 2014 - 10:17 Der er 1 kommentar og
1 løsning

Hjælp til Makro.

Hej
Jeg søger hjælp til til makro der kan indsætte Hyberlink fra anden mappe.
Kort info. jeg har et opmærkningsark over netværks kabler. I en anden mappe har jeg en lang række testresultater for hver kabel forbindelser.
Disse testresultater kan både optræde som PDF,HTML,eller begge dele.
I Opmærkningsarket har jeg i kolonne J listen med kabel opmærkningen.
Eks.
P0010210
P0010211
P0010212
P0010213

I en selvstændig mappe (som kun indeholder test resultaterne, til tider 2-300 stk.) har jeg eks.
P0010210.pdf
P0010211.pdf
P0010212.pdf
P0010213.pdf
og /eller
P0010210.html
(da disse kan udskrives i disse to formater.)
Det jeg ønsker at kunne gøre er følgende.
Jeg trykker på en knap i Excel, en dialog box kommer op, jeg vælger hvilken mappe filerne ligger i, og makroen indsætte et hyberlink i kolonne K (hvis pds) eller L (hvis html) i samme række som passer med nummeret i kolonne J.
Er der nogle der kan hjælpe mig med dette ?
jeg har et ark som viser opgaven meget enkelt, som jeg kan sende.

MVH
Petert
Jeg kører Win 7
Office 2010
Avatar billede supertekst Ekspert
23. marts 2014 - 11:03 #1
Dim sti As String                                  'alternativ - derf. som constant drev/mappe
Dim mappeNavn As String
Private Sub UserForm_initialize()
    sti = ActiveWorkbook.Path
    findMapper sti
End Sub
Private Sub findMapper(mappesti)
Dim fs, f, f1, fc, filNavn As String
     
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(mappesti)
    Set fc = f.subFolders
    For Each f1 In fc
        mappeNavn = f1.Name
        Me.ListBox1.AddItem mappeNavn
    Next
End Sub
Private Sub ListBox1_Click()
    mappeNavn = Me.ListBox1
End Sub
Private Sub CommandButton1_Click()
Dim ræk As Integer, nr As String
    For ræk = 2 To ActiveCell.SpecialCells(xlLastCell).Row
        Range("J" & ræk).Select
        If Selection <> "" Then
Rem test om HL er beregnet
            If Selection <> "" And Range("K" & ræk) = "" And Range("L" & ræk) = "" Then
                nr = Selection
               
                If findFil(nr, ".pdf") = True Then
Rem opret hyperlink - PDF
                    ActiveSheet.Hyperlinks.Add Anchor:=Range("K" & ræk), Address:= _
                        mappeNavn & "\" & nr & ".pdf", TextToDisplay:=mappeNavn & "\" & nr & ".pdf"
                End If
               
                If findFil(nr, ".html") = True Then
Rem opret hyperlink - HTML
                    ActiveSheet.Hyperlinks.Add Anchor:=Range("L" & ræk), Address:= _
                        mappeNavn & "\" & nr & ".html", TextToDisplay:=mappeNavn & "\" & nr & ".html"
                End If
            End If
        Else
            Exit Sub
        End If
    Next ræk
End Sub
Private Function findFil(nr, suffix)
Dim fs, f, f1, fc, filNavn As String
     
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set fc = fs.GetFolder(sti & "\" & mappeNavn)
    For Each f1 In fc.Files
        If InStr(f1.Name, nr & suffix) > 0 Then
            findFil = True
            Exit Function
        End If
    Next
   
    findFil = False
End Function
Avatar billede petert Forsker
23. marts 2014 - 11:29 #2
Tusind tak for hjælpen. Det virker perfekt.
MVH
Petert
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