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