Juli 15, 2020, 12:32:10

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Hyperlink: Nur, wenn Datei vorhanden ist.

Begonnen von Carlos_C, Februar 21, 2011, 15:21:06

⏪ vorheriges - nächstes ⏩

Carlos_C

Hallo Leute!

Ich habe eine Frage bzgl. Hyperlinks.

Also, ich habe eine Excel-Tabelle, in der in einer Spalte (Spalte B) verschiedene Dateinamen aufgelistet sind und in einer anderen Spalte (Spalte E) Hyperlinks zu diesen Dateien vorhanden sind.

Diese Hyperlinks habe ich mit folgenden Formeln programmiert:

Z.B. für die Zelle E4:
=HYPERLINK("Dateien\" & $B4 & ".pdf";"open file")

Funktioniert wunderbar! Man klickt auf ,,open file" an, und die pdf-Datei öffnet sich.

Aber das, wenn die Datei im Ordner ,,Dateien" vorhanden ist...

Nun möchte ich, dass, der Text ,,open file" NUR zu sehen ist, wenn die Datei im Ordner vorhanden ist.

Ist diese Aufgabe ohne VBA zu erfüllen? Kann man eine Formel in der Zelle E4 eintragen, um das zu verwirklichen?

Ich freue mich auf jeden Vorschlag!

Liebe Grüße,

Carlos
Gruß,

Carlos

Carlos_C

Hallo Leute!

Hätte jemand vielleicht eine Antwort auf meine Frage?

Liebe Grüße,

Carlos
Gruß,

Carlos

database

Hallo,

ich glaube nicht, dass du da ohne VBA was erreichen wirst.

Per Formel ein verzeichnis durchsuchen ist IMHO nicht möglich.

Sieh mal da rein, wir hatten eine ähnliche Anfrage schon mal:
http://www.access-o-mania.de/forum/index.php?topic=12971.0

HTH

lumbumba

evtl das:

Public Function IsFile(ByVal sFile As String) As Boolean
    IsFile= IIf(Len(Dir(sFile)) > 0, True, False)
End Function


und in die Zelle dann
=WENN(IsFile(PathAndFile);HYPERLINK(PathAndFile;"open File");"")

wobei du beachten solltest, das mit jedem Recalc des Tabellenblattes die Festplatte jedesmal für die Suche gestresst wird.
---

Carlos_C

Hallo Leute Database und Lumbumba!

Vielen Dank für Eure Antworten! Das klappt aber nicht so ganz bei mir.

Ich habe ein paar Fragen:

1.   Was bedeutet ,,In Zwischenablage kopieren"? Ich habe (bei Excel 2007) folgendes gemacht: Auf Registerkarte Entwicklertools\Links auf Visual Basic angeklickt. Dann oben auf ,,VBA Project (,,Dateiname")" mit der rechten Maustaste geklickt und dann Einfügen\Modul. In dem Modul habe ich die Prozedur kopiert, die mir Lumbumba gegeben hat. Ist das ,,In Zwischenablage kopieren"? Oder habe ich es falsches gemacht?
2.   Das in Frage 1. Ausgeführte Prozedur klappt, aber nicht ganz. Also, in der Zelle trage ich, wie Lumbumba vorgeschlagen, folgendes:

=WENN(IsFile("C:\Projekte\2011\Projekt 110205\Dateien\Datei01.pdf");HYPERLINK("C:\Projekte\2011\Projekt 110205\ Dateien\Datei01.pdf";"open File");"")

   Die Zelle, in der ich das eingetragen habe, aktualisiert sich aber NUR, wenn ich die Zelle mit der linken Maustaste anklicke, und auf F2 + Enter drücke. Wenn ich die Datei01.pdf rausnehme vom Ordner ,,Projekt 110205" oder sie umbenenne, und die Excel-Datei zu- und wieder aufmache, aktualisiert sich die Zelle nicht. Nur wenn ich sie anklicke und auf F2 + Enter drücke.

3.   Wie ihr seht, ist der Pfad zu meiner Datei sehr lang (,,C:\Projekte\2011\Projekt 110205\ Dateien\Datei01.pdf"). Die Excel-Datei ist im ordner ,,Projekt 110205". Wenn ich als Pfad ,,Dateien\Datei01.pdf" eingebe, funktioniert das nicht. Wie kann man dem System sagen, statt ,,Such in diesem seeeehr langen Pfad die Datei01.pdf", ,,Such einfach im gleichen Ordner, wo sich diese Excel-Datei befindet, im Unterordner Dateien, die Datei01.pdf". Mit dem Befehl HYPERLINK klappt das ganz gut (z.B. ,,=HYPERLINK("Dateien\Datei01.pdf";"open file") ). Aber nicht mit dem Befehl WENN.

Ich freue mich Eure Meldungen!

Liebe Grüße,

Carlos
Gruß,

Carlos

Carlos_C

Hallo nochmal, Leute!

Das in Fragen 2 und 3 habe ich einigermaßen hinbekommen. Also:

In einer Zelle (B3) schreibe ich ,,=ZELLE("dateiname")" und in einer anderen Zelle (B4) schreibe ich ,,=TEIL(ZELLE("Dateiname";B4);1;FINDEN("[";ZELLE("Dateiname";B4))-1)"

In der Formel:

=WENN(IsFile("C:\Projekte\2011\Projekt 110205\Dateien\Datei01.pdf");HYPERLINK("C:\Projekte\2011\Projekt 110205\ Dateien\Datei01.pdf";"open File");"")

Gebe ich anstatt den langen Pfad, folgendes:

$B$4 & "Dateien\Datei01.pdf".

Klappt sehr gut jetzt, PLUs:

Wenn ich die Datei01.pdf aus dem Ordner rausnehme (oder sie umbenenne) und die Excel-Datei zu- und wieder aufmache, hat sich die Zelle wieder aktualisiert.

Ist diese Lösung profesionell? Kann ich noch in eine Stufe feiner gehen und das Ganze so programmieren, dass wenn jemand die Datei01.pdf im Netz löscht oder umbenennt, meine Zelle sich sofort aktualisiert?

Liebe Grüße,

Carlos
Gruß,

Carlos