Hallo Leute!
Ich habe eine Frage über Hyperlinks.
Also, ich habe eine Excel-Tabelle, in der in einer Spalte verschiedene Dateinamen eingetragen sind, von pdf-Dateien, die sich im gleichen Ordner befinden, wo die Excel-Datei sich befindet.
Ich möchte beim Anklicken auf eine Zelle, dass sich die pdf-Datei öffnet, die im gleichen Ordner wie die Excel-Datei ist, und genau so heißt, wie was in der Zelle eingetragen ist.
Z.B., in der Zelle ist ,,Datei001.pdf" eingetragen. Beim Anklicken auf öffnet sich dann ,,Datei001.pdf", die sich im gleichen Ordner wie die Excel-Datei befindet.
Kann man sowas bei Excel machen?
Ich freue mich auf jede Meldung!
Liebe Grüße,
Carlos
Hallo,
in Rechtsklick auf die Zelle klicken und dann auf Hyperlink gehen und die Zieladresse angeben.
Oder wenn du das dynamisch möchtest per VBA den Hyperlink an einer speziellen Adresse eintragen lassen.
Andreas
Hallo Andreas!
Danke für Deine Antwort! Ich habe aber hunderten von Dateien und eine manuelle Zuweisung, wie Du vorschlägst, würde Jahren dauern. Ich möchte das automatisch machen. Also, wenn ich die Zelle anklicke, soll das System, im gleichen Ordner, wo sich die Excel-Datei befinden, nach einer Datei suchen, die genau den gleichen Namen hat, wie was in der Zelle eingetragen ist, und sie öffnen.
Z.B. wenn in der Zelle das Wort ,,Datei001.pdf" eingetragen ist, soll die Datei ,,Datei001.pdf" im Ordner gesucht und geöffnet werden. Wenn das System die Datei nicht findet, soll ein MsgBox eine Fehlermeldung geben (z.B. Fehler: Die Datei existiert nicht).
Kann man so was machen?
Liebe Grüße,
Carlos
Hallo,
die Geschichte mit den Hyperlinks ist nicht gerade das Gelbe vom Ei - eleganter ist die Lösung über VBA!
hierzu benötigst du ein wenig Code ....
Also erstelle im VBA-Editor der Arbeitsmappe ein Modul und benenne es nach Belieben.
in dieses Modul fügst du folgende Zeilen ein:
Option Explicit
'Benötigter API-Aufruf
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Sub Oeffnen()
Dim strPfad As String
Dim strDatei As String
strPfad = ThisWorkbook.Path & "\" 'Der Speicherort deiner ExcelDatei + Backslash
strDatei = ActiveCell.Value 'Der Inhalt der markierten Zelle
If strDatei <> "" Then
'Wenn der Dateinamen übergeben wurde, die Datei öffnen
ShellExecute Application.hwnd, "Open", strPfad & strDatei, _
vbNullString, vbNullString, vbNormalFocus
Else
MsgBox "Die Zelle mit dem Dateinamen wurde nicht angeklickt!", vbExclamation, "Datei öffnen"
End If
End Sub
Dann erstellst du auf dem Arbeitsblatt einen Button und weist ihm das Makro 'Oeffnen' zu
Alternativ kannst du natürlich das Makro auch über eine Tastenkombination aufrufen, die du dann halt dem Makro zuweisen musst.
Tja und das war's eigentlich ---> Zelle mit Dateinameninhalt markieren und Makro ausführen ---> Datei wird geöffnet.
HTH
p.s. Musterdatei im Anhang
[Anhang gelöscht durch Administrator]
Hallo Leute!
Ich habe (fast) eine Lösung gefunden!
Also, ich habe eine andere Spalte erstellt. In jeder Zelle habe ich eine Formel geschrieben. Z.B. in der Zelle B4 habe ich folgendes geschrieben:
=HYPERLINK("C:\Mein Ordner\" & A3;"open file")
Das einzige Problemchen jetzt ist, dass ich statt "C:\Mein ordner\" eine Funktion finden möchte, die den Ordner definiert, in dem die Excel-Datei sich befindet.
Kann man so was machen?
Gruß,
Carlos
Danke, Database! Ich glaube aber, dass ich bei der ,,=Hyperlink"-Lösung bleiben werde. Mit einer VBA-Prozedur müsste ich das Format zu ,,.xlsm" ändern.
Gruß,
Carlos
Gefunden!
=HYPERLINK(A3;"open file")
Ohne Pfad. Das System sucht anscheinend automatisch im gleichen Ordner, wo sich die Excel-Datei befindet. So einfach =)
Gruß,
Carlos
Hallo,
naja, wenn du mit der Hyperlinklösung glücklich bist - warum nicht. ;D
ZitatMit einer VBA-Prozedur müsste ich das Format zu ,,.xlsm" ändern
Denke, dass sich der Aufwand ziemlich in Grenzen halten würde ;)