Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Dateien suchen und Hyperlinks erstellen lassen

Dateien suchen und Hyperlinks erstellen lassen
01.10.2013 11:21:51
Bob
Hallo,
ich habe ein Tabellenblatt, welches in einer Spalte eine Vielzahl von 9-stelligen Teilenummern hat. In den nächsten Spalten sollen Hyperlinks auf entsprechende Datenblätter und weiteren Dokumenten eingefügt werde. Ist es mit einem vba-Script möglich anhand der Teilenummer in bestimmten Ordner nach dem passenden Dokument zu suchen und dies als Hyperlink in einer benachbarten Zelle zur Verfügung zu stellen? Das passende Dokument enthält im Dateinamen die Teilenummer wie z.B. 112233445.pdf oder 223344556_x.pdf? Der Dateiname kann also u.U. weitere Buchstaben vor oder nach der Teilenummer enthalten.
Gruß
Bob

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateien suchen und Hyperlinks erstellen lassen
01.10.2013 15:13:45
Steffen

Sub Teile()
'ausgehend, dass die Teilenummern in Spalte A stehen und die Verlinkung in Spalte B
lRow = Cells(Rows.Count, 1).End(xlUp).Row
For a = 1 To lRow
Dateiname = CStr(Left(Cells(a, 1), 9)) & ".pdf" 'erstellt den Dateinamen mit Teilenummer
ActiveSheet.Hyperlinks.Add Anchor:=Cells(a, 2), Address:= _
"\\C:\Testordner\" & Dateiname _ 'Ablagestruktur anpassen
, TextToDisplay:=Dateiname
Next a
End Sub
Gruß Steffen

Anzeige
AW: Dateien suchen und Hyperlinks erstellen lassen
02.10.2013 11:17:10
Bob
Hallo Steffen,
vielen Dank dafür. Ein Fehler tritt beim Kompilieren auf und zwar beim ", TextToDsiplay:=Dateiname"
Gruß
Bob

AW: Dateien suchen und Hyperlinks erstellen lassen
06.10.2013 11:42:16
Christian
Hallo Hans,
da du leider meine emails ignorierst, hier per Forum:
Bitte meine Datei
https://www.herber.de/bbs/user/87393.xls
löschen!
Vielen Dank,

Anzeige
AW: Dateien suchen und Hyperlinks erstellen lassen
01.10.2013 15:27:20
fcs
Hallo Bob,
hier ein Makro mit entsprechende Fähigkeiten, dass du an deine Anforderungen anpassen musst.
mfg
Franz
'Code in einem allgemeinen Modul
'Erstellt unter Windows Viste, Excel 2010
Option Explicit
Private fsObj As Object, fsFolder As Object
Private wks As Worksheet, lngZeile As Long
Sub HyperlinksEinfuegen()
Dim strOrdner As String
Dim intSpalte As Integer
Dim strTeileNummer As String
On Error GoTo Fehler
Set wks = ActiveSheet
'Startordner für Dateisuche - gf. per Dialog auswählen
strOrdner = "C:\Users\Public\Abteilung D"
'Beispiel für Ordnerstruktur
'C:\Users\Public\Abteilung D
'C:\Users\Public\Abteilung D\Manual
'C:\Users\Public\Abteilung D\Zeichung
'    GoTo Weiter01 '
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Bitte Ordner mit Dokumenten zu Teile-Nummern auswahlen"
.InitialFileName = strOrdner & Application.PathSeparator
If .Show = -1 Then
strOrdner = .SelectedItems(1)
Else
GoTo Fehler
End If
End With
Weiter01:
Set fsObj = VBA.CreateObject("Scripting.FileSystemObject")
Set fsFolder = fsObj.getfolder(strOrdner)
With wks
'Zeilen in SPalte mit Teilenummern abarbeiten - Hier Spalte A
For lngZeile = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
strTeileNummer = .Cells(lngZeile, 1).Text
'Suchmuster für Dateiname ? = 1 beliebiges Zeichen, # = 1 beliebige Ziffer, _
* = beliebige Zeichenkette
Call prcMakeHyperlink(strSubfolder:="", _
strFileLike:="*" & strTeileNummer & "*.pdf", lngSpalte:=2)
Call prcMakeHyperlink(strSubfolder:="Zeichnung", _
strFileLike:="*" & strTeileNummer & "*.dwg", lngSpalte:=3)
Call prcMakeHyperlink(strSubfolder:="Manual", _
strFileLike:="*" & strTeileNummer & "*.pdf", lngSpalte:=4)
Next
End With
Fehler:
With Err
Select Case .Number
Case 0 'Alles OK
Case 76
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description & vbLf & vbLf _
& "Pfad: " & strOrdner, , "Makro: HyperlinksEinfuegen"
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description, , "Makro: HyperlinksEinfuegen"
End Select
End With
'Objektvariablen zurücksetzen
Set wks = Nothing: Set fsObj = Nothing: Set fsFolder = Nothing
End Sub
Sub prcMakeHyperlink(strSubfolder As String, strFileLike As String, lngSpalte, _
Optional strNoFile As String = "No File")
'strSubfolder = Unterordner in dem gesucht werden soll
'strFileLike  = Vergleichsfilter für Like-Operator
'lngSpalte    = Spalte in der Hyperlink eingefügt werden soll
'strNoFile    = Optionaler Text wenn keine Datei gefunden wurde  = "No File"
Dim fsFile As Variant, fsSubFolder As Object
Dim strDatei As String
If strSubfolder = "" Then
'Suche im Hauptordner
Set fsSubFolder = fsFolder
Else
'Suche in Unterordner
Set fsSubFolder = fsObj.getfolder(fsFolder.Name & Application.PathSeparator &  _
strSubfolder)
End If
'Dateinamen im Ordner mit Suchmuster vergleichen und Hyperlink in Spalte einfügen
strDatei = ""
With wks
.Cells(lngZeile, lngSpalte).ClearContents
For Each fsFile In fsSubFolder.Files
If fsFile.Name Like strFileLike Then
strDatei = fsFile.Path
.Hyperlinks.Add Anchor:=.Cells(lngZeile, lngSpalte), Address:=strDatei, _
TextToDisplay:=fsFile.Name
Exit For
End If
Next fsFile
If strDatei = "" Then
.Cells(lngZeile, lngSpalte).Value = strNoFile
End If
End With
Set fsSubFolder = Nothing
Set fsFile = Nothing
End Sub

Anzeige
AW: Dateien suchen und Hyperlinks erstellen lassen
02.10.2013 12:00:22
Bob
Hallo Franz,
bei mir kommt es immer zum Fehler 76 "Pfad nicht gefunden", obwohl ich den Pfad entsprechend angepasst habe. Erwähnenswert ist, dass ein Dokument bzw. Hyperlink gefunden und eingetragen wird.
Was wahrscheinlich noch fehlt, ist, dass ich mehrere Hyperlinks pro Teilenummer benötige. Pro Teilenummer müssen drei Dokumente verlinkt werden, die in unterschiedlichen Ordnern liegen.
Gruß
Bob

Anzeige
AW: Dateien suchen und Hyperlinks erstellen lassen
03.10.2013 08:24:13
fcs
Hallo Bob,
ich habe jetzt noch ein paar Prüfungen für die Verzeihnisse eingebaut und an verschiedenen Stellen den Parameter "Path" statt "Name".
Wahrscheinlich war das in meiner Test-Umgebung egal - aber bei anderen Verzeichnissen möglicherweise nicht.
Im Ordner-Auswahldialog wählst du den übergeordneten Ordner aus, der alle Unterordner mit den Dokumenten enthält.
Die Unterordner, den Dateifilter und die Spalte in der die Hyperlinks angelegt werden sollen gibst du in diesen Zeilen an.
        'Suche von pfd-Dokument im Hauptordner - Hyperlink in Spalte B
If fncMakeHyperlink(strSubfolder:="", _
strFileLike:="*" & strTeileNr & "*.pdf", _
lngSpalte:=2) = False Then GoTo Fehler
'Suche von dwg-Dokument im Unterordner Zeichnung - Hyperlink in Spalte C
If fncMakeHyperlink(strSubfolder:="Zeichnung", _
strFileLike:="*" & strTeileNr & "*.dwg", _
lngSpalte:=3) = False Then GoTo Fehler
'Suche von pdf-Dokument im Unterordner Manual - Hyperlink in Spalte D
If fncMakeHyperlink(strSubfolder:="Manual", _
strFileLike:="*" & strTeileNr & "*.pdf", _
lngSpalte:=4) = False Then GoTo Fehler
Gruß
Franz
'Code in einem allgemeinen Modul
'Erstellt unter Windows Viste, Excel 2010
Option Explicit
Private fsObj As Object, fsFolder As Object
Private wks As Worksheet, lngZeile As Long
Sub HyperlinksEinfuegen()
Dim strOrdner As String
Dim intSpalte As Integer
Dim strTeileNr As String
On Error GoTo Fehler
Set wks = ActiveSheet
'Startordner für Dateisuche - ggf. per Dialog auswählen
strOrdner = "C:\Users\Public\Abteilung D"
'Beispiel für Ordnerstruktur
'C:\Users\Public\Abteilung D
'C:\Users\Public\Abteilung D\Manual
'C:\Users\Public\Abteilung D\Zeichung
'    GoTo Weiter01 '
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Bitte Haupt-Ordner mit Unterordnern und Dokumenten zu " _
& "Teile-Nummern auswahlen"
.InitialFileName = strOrdner & Application.PathSeparator
If .Show = -1 Then
strOrdner = .SelectedItems(1)
Else
GoTo Fehler
End If
End With
Weiter01:
If Dir(strOrdner, vbDirectory) = "" Then
MsgBox "Ordner" & vbLf & strOrdner & vbLf & "existiert nicht!", _
vbInformation + vbOKCancel, "Hyperlinks anlegen"
GoTo Fehler
End If
Set fsObj = VBA.CreateObject("Scripting.FileSystemObject")
Set fsFolder = fsObj.getfolder(strOrdner)
With wks
'Zeilen in SPalte mit Teilenummern abarbeiten - Hier Spalte A
For lngZeile = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
strTeileNr = .Cells(lngZeile, 1).Text
'Suchmuster für Dateiname ? = 1 beliebiges Zeichen, # = 1 beliebige Ziffer, _
* = beliebige Zeichenkette
'Suche von pfd-Dokument im Hauptordner - Hyperlink in Spalte B
If fncMakeHyperlink(strSubfolder:="", _
strFileLike:="*" & strTeileNr & "*.pdf", _
lngSpalte:=2) = False Then GoTo Fehler
'Suche von dwg-Dokument im Unterordner Zeichnung - Hyperlink in Spalte C
If fncMakeHyperlink(strSubfolder:="Zeichnung", _
strFileLike:="*" & strTeileNr & "*.dwg", _
lngSpalte:=3) = False Then GoTo Fehler
'Suche von pdf-Dokument im Unterordner Manual - Hyperlink in Spalte D
If fncMakeHyperlink(strSubfolder:="Manual", _
strFileLike:="*" & strTeileNr & "*.pdf", _
lngSpalte:=4) = False Then GoTo Fehler
Next
End With
Fehler:
With Err
Select Case .Number
Case 0 'Alles OK
Case 76
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description & vbLf & vbLf _
& "Pfad: " & strOrdner, , "Makro: HyperlinksEinfuegen"
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description, , "Makro: HyperlinksEinfuegen"
End Select
End With
'Objektvariablen zurücksetzen
Set wks = Nothing: Set fsObj = Nothing: Set fsFolder = Nothing
End Sub
Function fncMakeHyperlink(strSubfolder As String, strFileLike As String, lngSpalte, _
Optional strNoFile As String = "No File") As Boolean
'strSubfolder = Unterordner in dem gesucht werden soll
'strFileLike  = Vergleichsfilter für Like-Operator
'lngSpalte    = Spalte in der Hyperlink eingefügt werden soll
'strNoFile    = Optionaler Text wenn keine Datei gefunden wurde  = "No File"
Dim fsFile As Variant, fsSubFolder As Object
Dim strDatei As String
fncMakeHyperlink = True
If strSubfolder = "" Then
'Suche im Hauptordner
Set fsSubFolder = fsFolder
Else
If Dir(fsFolder.Path & Application.PathSeparator & strSubfolder, _
vbDirectory) = "" Then
If MsgBox("Der Unter-Ordner" & vbLf _
& fsFolder.Path & Application.PathSeparator & strSubfolder & vbLf _
& "existiert nicht!", _
vbQuestion + vbOKCancel, "Hyperlinks anlegen") = vbCancel Then
fncMakeHyperlink = False
End If
Exit Function
End If
'Suche in Unterordner
Set fsSubFolder = fsObj.getfolder(fsFolder.Path & Application.PathSeparator & _
strSubfolder)
End If
'Dateinamen im Ordner mit Suchmuster vergleichen und Hyperlink in Spalte einfügen
strDatei = ""
With wks
.Cells(lngZeile, lngSpalte).ClearContents
For Each fsFile In fsSubFolder.Files
If fsFile.Name Like strFileLike Then
strDatei = fsFile.Path
.Hyperlinks.Add Anchor:=.Cells(lngZeile, lngSpalte), Address:=strDatei, _
TextToDisplay:=fsFile.Name
Exit For
End If
Next fsFile
If strDatei = "" Then
.Cells(lngZeile, lngSpalte).Value = strNoFile
End If
End With
Set fsSubFolder = Nothing
Set fsFile = Nothing
End Function

Anzeige
AW: Dateien suchen und Hyperlinks erstellen lassen
04.10.2013 07:32:49
Bob
Hallo Franz,
das sieht schon recht gut bei mir aus. Meine Ordnerstruktur ist folgende:
C:\Hauptordner\Datenblätter
C:\Hauptordner\Zeichnung\2012\
C:\Hauptordner\Zeichnung\2013\
Leider funktioniert es nicht, wenn ich in "strSubfolder:="Manual" den Ordner Manual mit Zeichnung\2012 ersetze. Gibt es einen anderen Weg?
Die Datenblätter-Links werden schon eingetragen, aber in Spalte C und nicht in B.
Gruß
Bob

Anzeige
AW: Dateien suchen und Hyperlinks erstellen lassen
04.10.2013 09:27:18
Bob
Hallo Franz,
haut doch hin. Habe wohl Slash und Backslash verwechselt...
Eine Frage schließt sich allerdings noch an: Nach Start des Makros wird die Teilenummer schnell
mit Hyperlinks gefüllt. Im Anschluss daran dauert es bestimmt. 2-3 Minuten bis alle weiteren Links
gefunden sind (In meinem Beispiel waren es nur 43 Teilenummern). Excel geht dann richtig "in die Knie"
Woran kann es liegen?
Gruß
Bob

Anzeige
AW: Dateien suchen und Hyperlinks erstellen lassen
04.10.2013 19:26:20
fcs
Hallo Bob,
wenn sehr viele Dateien in den Unterordnern sind, dann sind in dem Makro sehr viele Zugriffe auf das Dateiverwaltungssystem erforderlich. Da wird die Makroausführung schnell langsam.
Ich hab das Ganze jetzt umprogrammiert, so die Dateinamen und Pfad der Dateien in den Unterordnern jeweils in ein Datenarray eingelesen werden und die Hyperlinks spaltenweise und nicht mehr zeilenweise eingtragen werden. So sollte das Erzeugen der Hyperlinks wesentlich schneller erfolgen.
Gruß
Franz
'Code in einem allgemeinen Modul
'Erstellt unter Windows Viste, Excel 2010
Option Explicit
Private fsObj As Object, fsFolder As Object
Private wks As Worksheet, lngZeile As Long
Sub HyperlinksEinfuegen()
Dim strOrdner As String
On Error GoTo Fehler
Set wks = ActiveSheet
'Startordner für Dateisuche - ggf. per Dialog auswählen
strOrdner = "C:\Users\Public\Hauptordner"
'Beispiel für Ordnerstruktur
'C:\Users\Public\Hauptordner
'C:\Users\Public\Hauptordner\Datenblätter
'C:\Users\Public\Hauptordner\Zeichung\2012
'C:\Users\Public\Hauptordner\Zeichung\2013
'    GoTo Weiter01 '
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Bitte Haupt-Ordner mit Unterordnern und Dokumenten zu " _
& "Teile-Nummern auswahlen"
.InitialFileName = strOrdner & Application.PathSeparator
If .Show = -1 Then
strOrdner = .SelectedItems(1)
Else
GoTo Fehler
End If
End With
Weiter01:
If Dir(strOrdner, vbDirectory) = "" Then
MsgBox "Ordner" & vbLf & strOrdner & vbLf & "existiert nicht!", _
vbInformation + vbOKCancel, "Hyperlinks anlegen"
GoTo Fehler
End If
Set fsObj = VBA.CreateObject("Scripting.FileSystemObject")
Set fsFolder = fsObj.getfolder(strOrdner)
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
'Suchmuster für Dateiname ? = 1 beliebiges Zeichen, # = 1 beliebige Ziffer, _
* = beliebige Zeichenkette
'Suche von pfd-Dokument im Hauptordner - Hyperlink in Spalte B
If fncMakeHyperlink(strSubfolder:="Datenblätter", _
strFileLike:="*.pdf", _
lngSpalte:=2) = False Then GoTo Fehler
'Suche von dwg-Dokument im Unterordner Zeichnung - Hyperlink in Spalte C
If fncMakeHyperlink(strSubfolder:="Zeichnung\2012", _
strFileLike:="*.pdf", _
lngSpalte:=3) = False Then GoTo Fehler
'Suche von pdf-Dokument im Unterordner Manual - Hyperlink in Spalte D
If fncMakeHyperlink(strSubfolder:="Zeichnung\2013", _
strFileLike:="*.pdf", _
lngSpalte:=4) = False Then GoTo Fehler
Fehler:
With Err
Select Case .Number
Case 0 'Alles OK
Case 76
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description & vbLf & vbLf _
& "Pfad: " & strOrdner, , "Makro: HyperlinksEinfuegen"
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description, , "Makro: HyperlinksEinfuegen"
End Select
End With
'Objektvariablen zurücksetzen
Set wks = Nothing: Set fsObj = Nothing: Set fsFolder = Nothing
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
End Sub
Function fncMakeHyperlink(strSubfolder As String, strFileLike As String, lngSpalte, _
Optional strNoFile As String = "No File") As Boolean
'strSubfolder = Unterordner in dem gesucht werden soll
'strFileLike  = Vergleichsfilter für Like-Operator
'lngSpalte    = Spalte in der Hyperlink eingefügt werden soll
'strNoFile    = Optionaler Text wenn keine Datei gefunden wurde  = "No File"
Dim fsFile As Variant, fsSubFolder As Object
Dim strDatei As String
Dim arrFilePath() As String, arrFileName() As String, intFile As Integer
Dim strTeileNr As String
Dim strLike As String
fncMakeHyperlink = True
If strSubfolder = "" Then
'Suche im Hauptordner
Set fsSubFolder = fsFolder
Else
If Dir(fsFolder.Path & Application.PathSeparator & strSubfolder, _
vbDirectory) = "" Then
If MsgBox("Der Unter-Ordner" & vbLf _
& fsFolder.Path & Application.PathSeparator & strSubfolder & vbLf _
& "existiert nicht!", _
vbQuestion + vbOKCancel, "Hyperlinks anlegen") = vbCancel Then
fncMakeHyperlink = False
End If
Exit Function
End If
'Suche in Unterordner
Set fsSubFolder = fsObj.getfolder(fsFolder.Path & Application.PathSeparator & _
strSubfolder)
End If
'Dateinamen und Name+Pfad in Arrayeinlesen
Erase arrFileName, arrFilePath
intFile = 0
For Each fsFile In fsSubFolder.Files
intFile = intFile + 1
ReDim Preserve arrFileName(1 To intFile)
ReDim Preserve arrFilePath(1 To intFile)
arrFileName(intFile) = fsFile.Name
arrFilePath(intFile) = fsFile.Path
Next
'Zeilen in SPalte mit Teilenummern abarbeiten - Hier Spalte A
With wks
For lngZeile = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
strTeileNr = .Cells(lngZeile, 1).Text
strLike = "*" & strTeileNr & strFileLike
'Dateinamen im Ordner mit Suchmuster vergleichen und Hyperlink in Spalte einfügen
strDatei = ""
With wks
.Cells(lngZeile, lngSpalte).ClearContents
For intFile = 1 To UBound(arrFileName)
If arrFileName(intFile) Like strLike Then
strDatei = arrFilePath(intFile)
.Hyperlinks.Add Anchor:=.Cells(lngZeile, lngSpalte), Address:=strDatei, _
TextToDisplay:=arrFileName(intFile)
Exit For
End If
Next intFile
If strDatei = "" Then
.Cells(lngZeile, lngSpalte).Value = strNoFile
End If
End With
Next
End With
Set fsSubFolder = Nothing
Set fsFile = Nothing
End Function

Anzeige
AW: Dateien suchen und Hyperlinks erstellen lassen
05.10.2013 20:38:47
Bob
Hallo Franz,
das sieht sehr gut aus! Vielen Dank dafür. Hat mir wirklich weitergeholfen.
Eine Frage hätte ich noch: Gibt es auch eine Möglichkeit, dass man einen Hyperlink als
Funktion einträgt, also nicht den Hyperlink, der z.B. mittels rechter Maustaste auswählbar ist.
Hatte ein Problem, dass ein Freund die Excel-Datei mit einer älteren Excel-Version (2003) geöffnet hat
und alle Hyperlinks danach defekt waren.
Gruß
Bob

Anzeige
AW: Dateien mit Like suchen und in Liste eintragen
06.10.2013 16:32:28
fcs
Hallo Bob,
die Hyperlinks funktionieren natürlich nur wenn bei dem Freund alle Dateien inklusive der Datei mit den Hyperlinks in der gleichen Ordnerstruktur gespeichert sind. Der Grund ist, dass die Hyperlink-Adressen relativ zu der Datei in der die Hyperlinks stehen gespeichert werden.
So funktioniert es z.B. nicht wen die Excel-Datei direkt aus der E-Mail geöffnet wird, da hier die Datei immer in einem temporären Verzeichnis gespeichert wird.
Man könnte es auch so machen, das in den Zellen der Dateiname der gefundenen Datei ohne Hyperlink eingetragen wird. Die Information zu den Ordnern und dem Dateityp wird in den ersten 3 Zeilen der Liste eingetragen. Per Doppelklick in die Zellen kann dann die Datei nach Bestätigung geöffnet werden. Auch dies setzt natürlich voraus, dass beim E-Mail-Empfänger die Datendateien in der gleichen Ordnerstruktur verfügbar sind.
Hier eine entsprechende Beispiel-Datei.
https://www.herber.de/bbs/user/87552.xlsm
mfg
Franz
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Dateien suchen und Hyperlinks automatisch erstellen in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle ein neues Arbeitsblatt.
  2. Gib die Teilenummern in Spalte A ein. Stelle sicher, dass die Teilenummern 9-stellig sind, wie im Beispiel.
  3. Öffne den VBA-Editor mit ALT + F11.
  4. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (deineDatei)", dann "Einfügen" > "Modul".
  5. Kopiere den folgenden Code in das Modul:
Sub HyperlinksEinfuegen()
    Dim strOrdner As String
    Dim wks As Worksheet
    Dim lngZeile As Long

    Set wks = ActiveSheet
    strOrdner = "C:\Users\Public\Hauptordner" ' Pfad zum Hauptordner anpassen

    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Bitte Haupt-Ordner auswählen"
        If .Show = -1 Then
            strOrdner = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With

    For lngZeile = 2 To wks.Cells(wks.Rows.Count, 1).End(xlUp).Row
        Dim strTeileNr As String
        strTeileNr = wks.Cells(lngZeile, 1).Text
        Call fncMakeHyperlink("", "*" & strTeileNr & "*.pdf", 2)
    Next lngZeile
End Sub

Function fncMakeHyperlink(strSubfolder As String, strFileLike As String, lngSpalte As Integer) As Boolean
    ' Hier erfolgt die Logik zum Suchen der Dateien und Erstellen des Hyperlinks
    ' ...
End Function
  1. Passe den Pfad strOrdner an deinen Hauptordner an.
  2. Führe das Makro aus mit F5, um Hyperlinks zu erstellen.

Häufige Fehler und Lösungen

  • Fehler 76: Pfad nicht gefunden

    • Überprüfe den angegebenen Pfad. Stelle sicher, dass der Ordner existiert und korrekt eingegeben wurde.
  • Hyperlinks werden nicht erstellt

    • Vergewissere dich, dass die Namen der Dateien die Teilenummer enthalten und die Dateiendungen korrekt sind (z.B. .pdf).
  • Langsame Ausführung

    • Wenn du viele Dateien hast, kann die Ausführung langsam werden. Überlege, die Hyperlinks in einem Array zu speichern und anschließend in die Zellen einzufügen.

Alternative Methoden

  • Excel Link auf Ordner erstellen: Du kannst auch direkt Links zu Ordnern erstellen, indem du die Adresse des Ordners eingibst:
ActiveSheet.Hyperlinks.Add Anchor:=Cells(1, 1), Address:="C:\Users\Public\Hauptordner", TextToDisplay:="Mein Ordner"
  • Excel Datei Link erstellen: Verwende die HYPERLINK-Funktion in Excel, um einen Link zu einer Datei zu erstellen:
=HYPERLINK("C:\Users\Public\Hauptordner\Datei.pdf", "Öffne Datei")

Praktische Beispiele

  1. Hyperlinks zu PDF-Dokumenten erstellen:

    • Verwende das Makro, um Hyperlinks zu erstellen, die auf PDF-Dokumente in verschiedenen Ordnern verlinken.
  2. Links zu verschiedenen Dateitypen:

    • Du kannst das Skript anpassen, um auch Links zu anderen Dateitypen wie .dwg oder .docx zu erstellen.

Tipps für Profis

  • Ordner in Excel verlinken: Nutze den HYPERLINK()-Befehl, um auf häufig verwendete Ordner schnell zugreifen zu können.
  • Automatisierte Dokumentenerfassung: Überlege, eine Datenbank oder ein Dashboard zu erstellen, das die gesammelten Hyperlinks strukturiert darstellt.
  • Verlinkungen testen: Stelle sicher, dass alle Hyperlinks funktionieren, besonders wenn du die Datei auf verschiedene Rechner weitergibst.

FAQ: Häufige Fragen

1. Wie kann ich den Pfad zu den Ordnern anpassen?
Du kannst den Pfad direkt im VBA-Code anpassen, indem du die Zeile strOrdner = "C:\Users\Public\Hauptordner" änderst.

2. Funktioniert das auch in älteren Excel-Versionen?
Ja, das Makro wurde unter Excel 2010 erstellt, sollte aber auch in anderen Versionen funktionieren, solange VBA unterstützt wird. Achte darauf, die Hyperlinks entsprechend anzupassen.

3. Warum sind einige Hyperlinks defekt?
Hyperlinks sind relativ zu dem Ordner, in dem die Excel-Datei gespeichert ist. Achte darauf, dass die Ordnerstruktur bei anderen Benutzern identisch ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige