Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Prüfen, ob die Dateien auf dem Server existieren?

Forumthread: Prüfen, ob die Dateien auf dem Server existieren?

Prüfen, ob die Dateien auf dem Server existieren?
17.06.2007 15:34:24
Selma
Hallo Leute,
ich habe eine Frage:
mit diesem Makro "FilePruefung" kann ich für markierten Zellenbereich prüfen, ob die Dateien auf dem Server verfügbar sind. In Zellen stand immer der Pfad incl. Dateiname z.B. g:\Projekte\2006\Fragenkatalog.doc
Das hat immer prima funktioniert.
Option Explicit
Public

Sub FilePruefung()
Dim myRange As Range
For Each myRange In Selection
myRange.Interior.ColorIndex = 0
If Trim$(myRange.Text)  "" Then If Dir$(myRange.Text) = "" _
Then myRange.Interior.ColorIndex = 46
Next
End Sub


Jetzt habe ich in eine andere Datei in Zellen nur Dateiname stehen. Die Zellen haben als Hyperlink Netzwerkpfad + Dateiname. z.B. \\51HH15\share\Projekte\2006\Fragenkatalog.doc
Ist es möglich über Hyperlink zu prüfen, ob die Dateien auf Festplatte bzw. Server existieren?
Einen ähnlichen Artikel habe ich hier gefunden: http://www.aboutvb.de/khw/artikel/khwisvalidpath.htm leider verstehe ich es nicht.
Vielen Dank im Voraus für Euere Hilfe....
Liebe Grüße
Selma

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Prüfen, ob die Dateien auf dem Server existieren?
17.06.2007 15:55:00
Daniel
Hallo
mit myRange.hyperlinks(1).address kannst du die Datei des Hyperlinks der Zelle abfragen.
damit sollte dein Makro dann wie gewohnt laufen
Gruß, Daniel

AW: Prüfen, ob die Dateien auf dem Server existier
17.06.2007 16:55:00
fcs
Hallo Selma,
als Ergänzung zu Daniels Beitrag dein Makro entsprechend angepasst, wobei geprüft wird, ob die Zelle überhaupt einen Hyperlink hat.

Sub FilePruefung1()
Dim myRange As Range
For Each myRange In Selection
myRange.Interior.ColorIndex = 0
If myRange.Hyperlinks.Count > 0 Then 'Prüfung ob Zelle Hyperlink hat
If Dir$(myRange.Hyperlinks(1).Address) = "" Then myRange.Interior.ColorIndex = 46
End If
Next
End Sub


Falls du auf die auf der anderen Webseit beschriebenen Funktion zurückgreifen möchtets, dann muss deine Funktion etwa wie folgt aussehen:


Sub FilePruefung2()
Dim myRange As Range
For Each myRange In Selection
myRange.Interior.ColorIndex = 0
If myRange.Hyperlinks.Count > 0 Then
If IsValidPath(Path:=myRange.Hyperlinks(1).Address, _
TestUNCPaths:=True) = False Then
myRange.Interior.ColorIndex = 46
End If
End If
Next
End Sub


Ich weiss jedoch nicht ob die Office 2000-VBA-Version schon die Funktionen Split, InstrRev und andere enthält, die verwendet werden. Unter Excel97 konnte ich die Gesamtfunktion deswegen leider nicht testen.
Um die Funktion IsValidPath in deine Datei zu bekommen lädst du das ZIP-File von der Seite herunter und extrahierst die Datei IsValidPath.bas. Anschließend öffnest du in Excel deine Datei und im VBA-Editor importierst du via Menü Datei--Datei importieren... die Datei IsValidPath.bas. Es wird dann ein Modul mit dem Namen IsValidPath angelegt.
Falls du dein File-Prüfmakro in mehreren Dateien verwendest, dann muss du die Datei in deine persönliche Makroarbeitsmappe (PERSONL.XLS) importieren und auch das Prüfmakro FilePruefung2 in ein Modul dieser Datei einfügen.
Gruß
Franz

Anzeige
AW: Prüfen, ob die Dateien auf dem Server existier
17.06.2007 18:08:45
Selma
Hallo Franz,
danke für deine Hilfe. Deine beide Makros funktionieren nur wenn die Dateien auf lokalem Datenträger liegen.
Liegen die Dateien auf dem Netzwerkserver dann funktioniert es nicht. Dateien werden farbig, obwohl sie existieren.
Wenn ich mit Maus über den Hyperlink zeige steht z.B. file:///\\51HH15\share\Projekte\2006\XM_Begleitschein.pdf
Pfad: "G:\Projekte\" ist z.B. \\51HH15\share\Projekte\
Hast Du noch eine Idee ?
LG
Selma

Anzeige
AW: Prüfen, ob die Dateien auf dem Server existier
17.06.2007 19:03:33
fcs
Hallo Selma,
eigentlich bleibt dann nur noch eine Übersetzungsliste (Hyperlinkpfad/Netzwerkpfad). Wenn es nicht zuviele Pfade sind dürfte das kein Problem sein.
Ich weiss zumindest nicht, wie man von dem Serverpfad im Hyperlink auf den entsprechenden angelegten Laufwerksbuchstaben schließen kann. Wahrscheinlich muss man da irgendwie die Umgebungsvariablen auf dem Rechner durchforsten. Dies ist aber nicht so meine Welt.
Hier die Anpassung der Makro mit Prüfung einer Übersetzungsliste für Serverpfade im Hyperlink und Netz-Laufwerk.
Die beiden Arrays muss du ggf. entsprechend auffüllen wenn mehr Laufwerke geprüft werden müssen. Achte darauf, dass die zueinander gehörenden Pfade in den Array-Listen immer an der gleichen Position stehen.
Gruß
Franz

Sub FilePruefung1()
Dim myRange As Range, NetzPfad, HyperPfad, FileAdresse$, i%
HyperPfad = Array("\\51HH15\share\Projekte\", "\\51XY15\share\ProjekteB\")
NetzPfad = Array("G:\Projekte\", "F:\Test\")
For Each myRange In Selection
myRange.Interior.ColorIndex = 0
If myRange.Hyperlinks.Count > 0 Then 'Prüfung ob Zelle Hyperlink hat
FileAdresse = myRange.Hyperlinks(1).Address
For i = LBound(HyperPfad) To UBound(HyperPfad)
If InStr(1, FileAdresse, HyperPfad(i)) > 0 Then
FileAdresse = NetzPfad(i) & Mid(FileAdresse, InStr(1, FileAdresse, HyperPfad(i)) _
+ Len(HyperPfad(i)))
Exit For
End If
Next
If Dir$(FileAdresse) = "" Then myRange.Interior.ColorIndex = 46
End If
Next
End Sub
Sub FilePruefung2()
Dim myRange As Range, NetzPfad, HyperPfad, FileAdresse$, i%
HyperPfad = Array("\\51HH15\share\Projekte\", "\\51XY15\share\ProjekteB\")
NetzPfad = Array("G:\Projekte\", "F:\Test\")
For Each myRange In Selection
myRange.Interior.ColorIndex = 0
If myRange.Hyperlinks.Count > 0 Then
FileAdresse = myRange.Hyperlinks(1).Address
For i = LBound(HyperPfad) To UBound(HyperPfad)
If InStr(1, FileAdresse, HyperPfad(i)) > 0 Then
FileAdresse = NetzPfad(i) & Mid(FileAdresse, InStr(1, FileAdresse, HyperPfad(i)) _
+ Len(HyperPfad(i)))
Exit For
End If
Next
If IsValidPath(Path:=FileAdresse, TestUNCPaths:=True) = False Then
myRange.Interior.ColorIndex = 46
End If
End If
Next
End Sub


Anzeige
AW: Prüfen, ob die Dateien auf dem Server existier
17.06.2007 19:56:10
Selma
Hallo lieber Franz,
leider werden alle markierte Zellen farbig dargestellt, obwohl die Dateien vorhanden sind.
LG
Selma

AW: Prüfen, ob die Dateien auf dem Server existier
17.06.2007 21:00:52
fcs
Hallo Selma,
aus der Ferne kann ich da jetzt nichts mehr machen. Da ich hier kein Netzwerk habe kann ich auch nur bedingt testen ob alles funktioniert.
Führe das MAkro im Schrittmodus und Zeige den Inhalt der Variablen FileAdresse in der Überwachung an. Evtl. gibt es ja noch irgendeinen Fehler beim berechnen der Namen oder beim Vergleichen ob die eingegebenen Serverpfade in den Hyperlinkpfaden vorkommen.
Groß
Franz
Anzeige
;

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