tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
1146
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    KlaDi KlaDi ist offline Mitglied Brokat
    Registriert seit
    Aug 2006
    Ort
    Europe - Germany - Mainz
    Beiträge
    296
    Hallo,

    ich habe ein Makro erstellt, das sich aus einer Tabelle den Dateinamen holt. Anschließend diese Datei sucht und dann in der selben Tabelle einen Hyperlink auf die Datei erstellt.

    Mein Problem ist nun, das bei manchen Dateien der Hyperlink nicht erstellt wird. Wenn ich Ihn per Hand erstelle, dann funktioniert das erstmal einwandfrei. Klicke ich aber auf den Link, kommt der Fehler: Cannot open the specified file.

    In dem Pfad zur Datei sind unter anderem diese Klammern: [] enthalten, z.B.:
    C:\Dateien [neu]\Datei1.pdf

    Bei manchen Dateien scheinen die []-Klammern nicht zu stören, bei anderen aber doch.

    Weiß jemand wo das Problem liegen kann?

    gruß klaus.
     

  2. #2
    Registriert seit
    Jan 2004
    Beiträge
    212
    hi
    nebenbei: Hyperlinks in Excel ohne VBA erstellen...

    Excel denkt bei den eckigen Klammern wohl das es eine Exceldatei ist und du eine Unterseite davon ansprechen willst. Oder, wenn du sagst es funktioniert bei einigen, könnte es sich an Leerzeichen stören.
    Gibst du den Pfad/Dateiname in doppelten Anführungszeichen ein " ?

    DD
     
    There are 10 types of people in this world.
    Those who understand binary and those who don't.
    ____________________________________________

    EvE-Online 21-Tage Trial mit Startkapital - PN an mich

  3. #3
    KlaDi KlaDi ist offline Mitglied Brokat
    Registriert seit
    Aug 2006
    Ort
    Europe - Germany - Mainz
    Beiträge
    296
    Hi DD,

    ich gebe den Hyperlink über ein Variable ein.

    Mein Tabelle ist so aufgebaut, das in der Spalte B die Dateinamen stehen, diesen lese ich mit meinem Makro aus, anschließend suche ich die Datei in der Verzeichnisstruktur unterhalb meines Excelsheets. Wenn die Datei gefunden wird, wird der Hyperlink dann erstellt.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    
    Option Explicit
     
    Sub createHyperlinks()
    Dim intRow As Integer
    Dim Dateiname As String
    Dim DateipfadUndName As String
    Dim Pfadbegin As String
        Pfadbegin = "E:\"
     
     
    For intRow = 2 To 3994
        Dateiname = getFilename(intRow)
        DateipfadUndName = DateiSuchen(Dateiname)
        If (DateipfadUndName <> vbNullString) Then
            createLink WorksheetFunction.Substitute(DateipfadUndName, Pfadbegin, ""), Dateiname, intRow
        End If
    Next intRow
     
    End Sub
    Private Function getFilename(ByVal paLine As Integer)
        getFilename = Range("B" & paLine).Value
    End Function
     
    Private Function DateiSuchen(paDateiname As String) As String
    'http://www.ms-office-forum.net/forum/showthread.php?t=237230
        Dim aryPfad()
        Dim i As Integer
        Dim bolGefunden As Boolean
        
        aryPfad = Array("E:\", "E:\Dateien\", "E:\Dateien [neu]\", "E:\Dateien [altes Zeug]\", "E:\Dateien [Unsinn]\", "E:\Dateien[Zu checken]\")
        i = 0
        bolGefunden = False
        Do
            If Len(Dir(aryPfad(i) & paDateiname)) = 0 Then
                    i = i + 1
             Else
                 bolGefunden = True
             End If
        Loop Until (i > UBound(aryPfad)) Or bolGefunden
        
        If bolGefunden Then
            DateiSuchen = aryPfad(i) & paDateiname
        Else
            DateiSuchen = vbNullString
        End If
    End Function
     
    Private Sub createLink(ByVal paPath As String, ByVal paName As String, ByVal paLine As Integer)
        Range("A" & paLine).Select
        Worksheets(1).Hyperlinks.Add Anchor:=Selection, Address:=paPath, TextToDisplay:=paName
    End Sub
    Die Funktion Dateisuchen habe ich von hier übernommen: 'http://www.ms-office-forum.net/forum/showthread.php?t=237230

    gruß klaus.
     

  4. #4
    Registriert seit
    Jan 2004
    Beiträge
    212
    heya,

    beim Test bei mir selbst mit normalen Dateinamen bringt Fehler.
    Und zwar erzeugt der Links mit '/' seperator was aber den Internet-shema entspricht, für Lokale Dateien/Verzeichnisse wird '\' verwendet.

    Entweder übergibst du den vollständigen Pfad per "file:///E:/...." Syntax
    oder du fügst den gefundenen Pfad als Hyperlinkformel ein:
    Code :
    1
    
        ActiveCell.FormulaR1C1 = "=HYPERLINK(""Dateipfad/-name"",""Linkname"")"
    Im String selbst sind die jeweils 2 doppelten Anführungszeichen notwendig, sonst würde er das als Stringende interpretieren.

    DD
     
    There are 10 types of people in this world.
    Those who understand binary and those who don't.
    ____________________________________________

    EvE-Online 21-Tage Trial mit Startkapital - PN an mich

  5. #5
    KlaDi KlaDi ist offline Mitglied Brokat
    Registriert seit
    Aug 2006
    Ort
    Europe - Germany - Mainz
    Beiträge
    296
    Hallo,

    erstmal danke für Deine Antwort(en).

    Also Fehler hatte ich bisher keine, wenn ich das Makro ausführe..Vielleicht hab ich beim kürzen des Codes einen Fehler gemacht.

    Ich hab noch ein wenig getestet und das Problem scheint mit dem Pfad zusammenzuhängen, meine Makro erstellt den Hyperlink mit einer relative Pfadangabe, was zu dem Fehler führt, das die Datei nicht gefunden werden konnte.
    Erstelle ich aber den absoluten Pfad klappt das ganze einwandfrei.

    Mein Problem ist jetzt nur, das ich keine absoluten Pfade setzen kann, da ich diese Dateien immer wieder zwischen Festplatten hin- und herkopieren werde und ich möchte nicht jedesmal beim öffnen des Excelsheets ein Makro ausführen um die Hyperlinks anzupassen.

    Weiß vielleicht noch jemand weiter?

    gruß klaus.
     

  6. #6
    KlaDi KlaDi ist offline Mitglied Brokat
    Registriert seit
    Aug 2006
    Ort
    Europe - Germany - Mainz
    Beiträge
    296
    Hallo,

    also ich habe mein Problem jetzt so gelöst, in dem ich einfach ein \ dem Dateipfad + -namen vorangestellt habe. Klappt einwandfrei.

    gruß klaus.
     

Ähnliche Themen

  1. Hyperlinks in Office 2003 auf Datei öffnet nicht
    Von willimc im Forum Office-Anwendungen
    Antworten: 2
    Letzter Beitrag: 07.02.09, 15:27
  2. Office 2003 Professional. mit Visual Studio 2005 Tools For Office
    Von ganaboboy im Forum .NET Windows Forms
    Antworten: 3
    Letzter Beitrag: 24.06.07, 13:10
  3. Hyperlinks funktionieren nicht!
    Von bigfella im Forum HTML & XHTML
    Antworten: 3
    Letzter Beitrag: 09.10.06, 23:43
  4. im Menü funktionieren meine Hyperlinks nicht!
    Von mingolein im Forum Flash Plattform
    Antworten: 4
    Letzter Beitrag: 29.10.04, 22:28
  5. Antworten: 2
    Letzter Beitrag: 12.05.04, 08:46