Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA wenn Datei nicht vorhanden Alternative öffnen
#1
Moin,

ich benötige bitte Hilfe.

Ich habe eine für meinen Verein eine Liste erstellt wo Dateien angehängt sind.
Das Funktioniert auch alles.

Nun ist es aber so das auf einem Button die Datei angehängt werden soll welche gerade aktuell ist.
Leider bekomme ich den Code nicht hin. 

Ist die Bekanntgabe nicht vorhanden soll er die Niederschrift öffnen.
Ist die Niederschrift ebenfalls nicht vorhanden dann soll er auf die Anwesenden zugreifen.

Dim strPfad As String
Dim strPfad1 As String
Dim strPfad2 As String
           
strPfad = "C:\Users\Lenovo\Desktop\Bekanntgabe1.pdf"
strPfad1 = "C:\Users\Lenovo\Desktop\Anwesende.pdf"
strPfad2 = "C:/Users/Lenovo/Desktop/Niederschrift.pdf"

If strPfad = "" Then
    ThisWorkbook.FollowHyperlink strPfad1
    ElseIf strPfad1 = "" Then
    ThisWorkbook.FollowHyperlink strPfad2
    Else
    ThisWorkbook.FollowHyperlink strPfad
End If


das habe ich mir soweit zusammen geschrieben funktioniert aber nur mit 2 Dateien. wo ist der Fehler ?

viele Grüße und danke für eure Hilfe
Antworten Top
#2
Hi,

erstens hast du in strPfad2 die Pfad-Trenner falsch herum ("/" statt "\") und zweitens funktioniert deine Routine nur mit einer Datei, nämlich der ersten. Wieso? Weil keiner deiner strPfade leer ist und du somit immer beim letzten Else landest.

Du kannst z.B. mit Dir(*) prüfen, ob eine Datei existiert:
Code:
If Dir(strPfad) <> "" Then
    ThisWorkbook.FollowHyperlink strPfad
ElseIf Dir(strPfad1) <> "" Then
    ThisWorkbook.FollowHyperlink strPfad1
Else
    ThisWorkbook.FollowHyperlink strPfad2
End If
Beachte auch die geänderte korrekte Logik. Bei deiner Variante hätte er nur dann die erste Datei aufgerufen wenn die zweite nicht vorhanden wäre.

(*) Ist zwar die einfachste Methode, kann aber Nebenwirkungen haben. Daher wird gerne empfohlen auf andere Möglichkeiten - insbesondere das FilsSystemObject (FSO) - auszuweichen. Aber für den Zweck hier reicht es.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste