Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1020to1024
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Beliebiges File verknüpfen

Beliebiges File verknüpfen
11.11.2008 08:05:39
Urmila
Hallo,
ich möchte gerne eine Verlinkung haben aber:
In einer Liste werden Dokumente aufgelistet und das Erstellungsdatum dazu, siehe Liste hierzu https://www.herber.de/bbs/user/56664.xls
Dazu sind jeweils Files im Ordner "C:\Files\" hinterlegt. Die Files sind unterschiedlich, also mal pdf, doc, xls oder tif oder was auch immer. Wie ist der Code für die Verlinkung des Files (Filename stets: Name_Datum z.B. "Monatsabschluss_01.01.2008.xls" oder "doc")
Ich hoffe es ist verständlich und ihr könnt mir helfen....
LG
Urmila

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Beliebiges File verknüpfen
11.11.2008 11:11:00
fcs
Hallo Urmila,
hier mein Vorschlag.
Gruß
Franz

Sub HyperlinksDateinamen()
Dim wks As Worksheet, lngZeile As Long, intDatei As Integer
Dim strDateiSuch As String, varEingabe As Variant, strMsg As String
Dim objFileSearch As FileSearch
Const strPfad As String = "C:\Files" 'Verzeichnis mit Dateien
Set wks = ActiveSheet
Set objFileSearch = Application.FileSearch
With wks
'Alle vorhandenen Hyperlinks in Spalte 2 löschen
wks.Columns(2).Hyperlinks.Delete
'Ab Zeile 4 nach den Dateinamen suchen und ggf. Hyperlink in Spalte 2 hinzufügen
For lngZeile = 4 To .Cells(.Rows.Count, 2).End(xlUp).Row
If Not IsEmpty(.Cells(lngZeile, 2)) Then 'leere Zellen überspringen
'gesuchte Datei aus werten Spalte 2 und 3 zusammensetzen
strDateiSuch = .Cells(lngZeile, 2).Text & "_" & .Cells(lngZeile, 3).Text & ".*"
intDatei = 0
'Dateinamen im Ordner suchen
With objFileSearch
.NewSearch
.SearchSubFolders = False 'Unterordner nicht durchsuchen
.LookIn = strPfad
.Filename = strDateiSuch
Select Case .Execute(SortBy:=msoSortByFileName, SortOrder:=msoSortOrderAscending)
Case 0
MsgBox strDateiSuch & " im Verzeichnis " & strPfad & " nicht gefunden!"
Case 1
intDatei = 1
wks.Hyperlinks.Add Anchor:=wks.Cells(lngZeile, 2), Address:=varEingabe
Case Else
strMsg = "Für " & strDateiSuch & " wurden im Verzeichnis " & strPfad _
& " mehrere Dateien gefunden!" & vbLf
For intDatei = 1 To .FoundFiles.Count
strMsg = strMsg & vbLf & intDatei & " :  " & .FoundFiles(intDatei)
Next
strMsg = strMsg & vbLf & vbLf & "Für Hyperlink bitte Nr eingeben."
varEingabe = InputBox(Prompt:=strMsg, Title:="Hyperlinks einfügen", _
Default:=1)
If varEingabe  "" Then
intDatei = CInt(varEingabe)
If Not (intDatei >= 1 And intDatei  0 Then
wks.Hyperlinks.Add Anchor:=wks.Cells(lngZeile, 2), _
Address:=objFileSearch.FoundFiles(intDatei)
End If
End Select
End With
End If
Next
End With
End Sub


Anzeige
AW: Beliebiges File verknüpfen
11.11.2008 12:27:00
Urmila
Danke Franz,
aber was ist der Code nur für den Hyperlink?
Ich will ja nur einen Hyperlink einfügen das sich zusammensetzt aus "Dokument_Ausgabedatum".xyz
das xyz soll ja irgendwas sein also .xls oder .pdf oder .doc etc.
Der Skript ist zu umfangreich, ich kann da leider nicht verstehen was wofür steht bzw. was was macht?
LG
Urmila
AW: Beliebiges File verknüpfen
11.11.2008 13:22:00
Urmila
Habe bisher was gefunden, bzw umgekuppelt, habe nun ne Frage zu der Zeile:
Bereich.Formula = "=HYPERLINK(""" & Laufwerk & strFile""")"
Wie kann ich hierbei noch den Namen für den Link eingeben?
In diesem Fall zeigt er ja den ganzen Pfad an, ich will aber nur z.B. DOK stehen haben?
Wie geht das?
LG
Urmila
Anzeige
AW: Beliebiges File verknüpfen
11.11.2008 15:46:00
fcs
Hallo urmila,
dein neuer Ansatz fügt in der Zelle die der Variablen Bereich zugewiesen ist eine Formel mit einem entsprechenden Hyperlink ein.
Das entsprechende Makro schaut dann so aus:

Sub HyperlinkFormel()
Dim bereich As Range, Laufwerk As String, strFile As String, strMsg As String
Dim varEingabe
Const SpalteName As Long = 2 'Spalte B, Spalte mit den Namen
Const SpalteDatum As Long = 3 'Spalte C, Spalte mit dem Datum
Const strPfad As String = "C:\Files\" 'Verzeichnis mit Dateien
Set bereich = ActiveCell
strFile = Cells(bereich.Row, SpalteName).Text & "_" & Cells(bereich.Row, SpalteDatum).Text
'Meldungstext zusammenfügen
strMsg = "Bitte die Datei-Endung (doc, pdf, xls etc.) für die " & vbLf _
& "Datei: " & strFile & "" _
& "eingeben"
'Input-Box zur Eingabe der Datei-Endung für für den Hyperlink anzeigen
varEingabe = InputBox(Prompt:=strMsg, Title:="Zelle " & bereich.Address _
& ": Hyperlink einfügen", Default:="xls")
If varEingabe  "" Then 'Eingabe wurde nicht abgebrochen
'Dateiname für Hyperlink aus Eingabe generieren
strFile = strFile & "." & varEingabe
'Hyperlink einfügen gewählt
bereich.Formula = "=HYPERLINK(""" & strPfad & strFile & """, ""DOK"")"
End If
End Sub


Du solltest dann jedoch überlegen, ob du nur noch per Formel ohne Makro arbeitest.
Wenn du in Spalte D jeweils die Dateiendung einträgst, dann sieht die Formel in E4 zum Beispiel so aus:


=HYPERLINK("C:\Files\"&B4&"_"&TEXT(C4;"TT.MM.JJJJ")&"."&D4; "DOK")


Gruß
Franz

Anzeige
AW: Beliebiges File verknüpfen
11.11.2008 14:57:13
fcs
Hallo Urmila,
ich hab dir jetzt mal eine einfache und eine Komfort-Version erstellt.
Beide Versionen fügen für die aktive Zelle einen Hyperlink ein. Dabei werden Name und Datum der Datei aus der Zeile der aktiven Zelle ausgelesen.
Die Komfort-Version sucht im Verzeichnis, ob es passende Dateinamen gibt und zeigt dann die gefundenen Dateinamen zur Auswahl per Nummerneingabe an. So ist sichergestellt, dass der Hyperlink auch funktioniert.
Die Einfach-Version zeigt eine Eingabebox zur Eingabe der Dateiendung an und erstellt nach OK einen Hyperlink. Bei Eingabe einer falschen Endung funktioniert der Hyperlink nicht.
Den Code zum Einfügen eines Hyperlinks solltest du aus der Einfach-Version nachvollziehen können.
Gruß
Franz
P.S. Der Code in der 1. Antwort auf deine Frage erstellt die Hyperlinks für sämtliche Einträge in Spalte 2. Nur bei Mehrfach vorkommenden Namens-Treffern oder fehlender Datei wird eine Meldung angezeigt.

Sub HyperlinkDateinameZelleKomfort()
'hyperlink für aktiven Zelle einfügen mit Daten aus Zeile der Zelle
Dim wks As Worksheet, lngZeile As Long, intDatei As Integer, rngZelle As Range
Dim strDateiSuch As String, varEingabe As Variant, strMsg As String
Dim objFileSearch As FileSearch
Const SpalteName As Long = 2 'Spalte B, Spalte mit den Namen
Const SpalteDatum As Long = 3 'Spalte C, Spalte mit dem Datum
Const strPfad As String = "C:\Files" 'Verzeichnis mit Dateien
Set wks = ActiveSheet
Set rngZelle = ActiveCell
Set objFileSearch = Application.FileSearch
With wks
'Für Zeile der aktiven Zelle nach den Dateinamen suchen und _
ggf. Hyperlink in Spalte 2 hinzufügen
lngZeile = rngZelle.Row
'ggf. Hyperlink der Zelle löschen
rngZelle.Hyperlinks.Delete
If Not IsEmpty(.Cells(lngZeile, SpalteName)) Then 'leere Zellen überspringen
'gesuchte Datei aus Werten Spalte 2 und 3 zusammensetzen
strDateiSuch = .Cells(lngZeile, SpalteName).Text & "_" & _
.Cells(lngZeile, SpalteDatum).Text & ".*"
Else
Exit Sub
End If
End With
'Dateinamen im Ordner suchen
With objFileSearch
.NewSearch
.SearchSubFolders = False 'Unterordner nicht durchsuchen
.LookIn = strPfad
.Filename = strDateiSuch
'Prüfen ob Dateien zu Name und Datum gefunden wurden
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) = 0 Then
'Es wurde keine passende Datei im Verzeichnis gefunden
MsgBox strDateiSuch & " im Verzeichnis " & strPfad & " nicht gefunden!"
Else
'Es wurden Dateien passend zu Name + Datum gefunden
'Input-Box zur Auswhl der gewünschten Datei anzeigen
'Meldungstext zusammenfügen inkl. gefundene Dateinamen
strMsg = "Für " & strDateiSuch & " wurden im Verzeichnis " & strPfad _
& .FoundFiles.Count & " Dateien gefunden!" & vbLf
For intDatei = 1 To .FoundFiles.Count
strMsg = strMsg & vbLf & intDatei & " :  " & .FoundFiles(intDatei)
Next
strMsg = strMsg & vbLf & vbLf & "Zum Einfügen des Hyperlinks in Zelle " _
& "bitte Nr eingeben."
'Input-Box zur Auswahl der Datei für Hyperlink anzeigen
varEingabe = InputBox(Prompt:=strMsg, Title:="Zelle " & rngZelle.Address _
& ": Hyperlink einfügen", Default:=1)
If varEingabe  "" Then 'Eingabe wurde nicht abgebrochen
'Eingabe in Zahl umwandeln und prüfen
intDatei = Val(varEingabe)
If Not (intDatei >= 1 And intDatei  "" Then 'Eingabe wurde nicht abgebrochen
'Dateiname für Hyperlink aus Eingabe generieren
strDateiSuch = strPfad & strDateiSuch & "." & varEingabe
'Hyperlink einfügen, wenn Datei gewählt
ActiveSheet.Hyperlinks.Add Anchor:=rngZelle, Address:=strDateiSuch
End If
Else
Exit Sub
End If
End Sub


Anzeige
AW: Beliebiges File verknüpfen
12.11.2008 07:06:00
Urmila
Hallo Franz,
ich komme nicht mal mit einem Script klar und schon schickst du mir weitere 2 ;-)
Ich werde das gleich mal ausprobieren, ich danke dir vieelmals
Liebe Grüße
Urmila

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige