Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Datei gemäß generiertem Pfad öffnen

Betrifft: Datei gemäß generiertem Pfad öffnen von: Stephan
Geschrieben am: 04.10.2014 08:23:43

Liebe Excel-Gemeinde,

haben folgendes Thema:

1) Wir bekommen von einem Scanner einen eindeutigen Schlüssel (für eine Datei)
2) Dieser Schlüssel soll in einer Zelle (A1) in Excel landen
3) Diesen Input wandeln wir automatisch in einer neuen Zelle (A2) in einen Pfad um(bekommen wir hin)
4) Sobald dieser Pfad generiert ist, soll die Datei automatisch geöffnet werden (Anwendung nennt sich GoldenLaser.exe) allerdings nur wenn sich die Datei von ihrem Vorgänger unterscheidet, ist es die selbe Datei soll nichts passieren

Problematisch für uns sind v.a. die "Datenübergabe" am Anfang und der VBA-Teil der das Öffnen bewerkstelligt.

Danke Euch schon mal für Tips

VG
Stephan

  

Betrifft: AW: Datei gemäß generiertem Pfad öffnen von: Martin
Geschrieben am: 04.10.2014 12:34:32

Hallo Stephan,

bitte teile mir den genauen Dateipfad der Anwendung (GoldenLaser.exe) mit, dann kann ich es versuchen.

Viele Grüße

Martin


  

Betrifft: AW: Datei gemäß generiertem Pfad öffnen von: Martin
Geschrieben am: 04.10.2014 13:10:49

Hallo Stephan,

also Punkt 1 (und damit auch Punkt 2) kann dir hier bestimmt niemand ohne weitere Infos beantworten. Hier meine Vorschläge zu Punkt 4.

Wenn der zu öffnende Dateityp standardmäßig mit DolgenLaser.exe verknüpft ist, dann sollte folgender Code in der entsprechenden Tabelle zum Ziel führen:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim strFilePath As String
    Dim myShell As Object

    If Target.Address <> "$A$1" Then Exit Sub

    strFilePath = Range("A2").Text
    If strFilePath = strOldFile Then Exit Sub
    strOldFile = strFilePath
    
    If Dir(strFilePath) = Empty Then
        MsgBox "Ungültiger Dateipfad: '" & strFilePath & "'.", vbExclamation
        Exit Sub
    Else
        Set myShell = CreateObject("wscript.shell")
        myShell.Run Chr(34) & strFilePath & Chr(34)
    End If
End Sub
Falls der zu öffnende Dateityp NICHT standardmäßig mit DolgenLaser.exe verknüpft ist, dann solltest du folgenden Code verwenden und in der kursiv-gekennzeichneten Zeile den Dateipfad zur Anwendung DolgenLaser.exe anpassen:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim strFilePath As String
    Dim myShell As Object, strPathGoldenLaser As String

    If Target.Address <> "$A$1" Then Exit Sub

    strFilePath = Range("A2").Text
    If strFilePath = strOldFile Then Exit Sub
    strOldFile = strFilePath
    
    If Dir(strFilePath) = Empty Then
        MsgBox "Ungültiger Dateipfad: '" & strFilePath & "'.", vbExclamation
        Exit Sub
    Else
        strPathGoldenLaser = "C:\GoldenLaser.exe" 'Anwendungspfad anpassen!
        Call Shell(strPathGoldenLaser & " """ & strFilePath & """", 1)
    End If
End Sub
Viele Grüße

Martin


  

Betrifft: Ergänzung von: Martin
Geschrieben am: 04.10.2014 13:48:04

Hallo Stephan,

ich sehe gerade, dass ich vergessen habe zu schreiben die öffentliche Variable strOldFile zu deklarieren. Also ganz oben in das Modul muss noch folgender Code ergänzt werden:

Option Explicit
Dim strOldFile As String
Viele Grüße

Martin


  

Betrifft: AW: Datei gemäß generiertem Pfad öffnen von: Stephan
Geschrieben am: 04.10.2014 14:06:25

Hallo Martin,

vielen Dank für die schnelle Antwort. Pfad ist wie folgt: C:\Dokumente und Einstellungen\Zuschnitt\Eigene Dateien\LASER\release

Vielen Dank

Grüße
Stephan


  

Betrifft: AW: Datei gemäß generiertem Pfad öffnen von: Martin
Geschrieben am: 04.10.2014 15:56:57

Hallo Stephan,

ich glaube, dass du mich falsch verstanden hast. Ich vermute, dass der von dir genannte Pfad nicht der Dateipfad zur Anwendung "GoldenLaser.exe" ist, sondern zu dem Ablagepfad der gescannten Dateien?!

Falls "C:\Dokumente und Einstellungen\Zuschnitt\Eigene Dateien\LASER\release" tatsächlich der Pfad der Anwendung "GoldenLaser.exe" sein sollte, verwende folgenden Code:

Option Explicit
Dim strOldFile As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim strFilePath As String
    Dim myShell As Object, strPathGoldenLaser As String

    If Target.Address <> "$A$1" Then Exit Sub

    strFilePath = Range("A2").Text
    If strFilePath = strOldFile Then Exit Sub
    strOldFile = strFilePath
    
    If Dir(strFilePath) = Empty Then
        MsgBox "Ungültiger Dateipfad: '" & strFilePath & "'.", vbExclamation
        Exit Sub
    Else
        strPathGoldenLaser _
= "C:\Dokumente und Einstellungen\Zuschnitt\Eigene Dateien\LASER\release\GoldenLaser.exe"
        Call Shell(strPathGoldenLaser & " """ & strFilePath & """", 1)
    End If
End Sub
Viele Grüße

Martin


  

Betrifft: AW: Datei gemäß generiertem Pfad öffnen von: Stephan
Geschrieben am: 09.10.2014 16:24:54

Hallo Martin,

vielen dank für die schnelle Antwort - und sorry wegen meiner späten Rückmeldung, waren außer Haus. Habe nun das erste Skript inkl. der Definition des "strOldFile" mal in eine Excel auf meinem Rechner übernommen. Dann habe ich einfach mal in Tabelle 1 einen gültigen Dateipfad auf eine pdf in A2 kopiert und mit Return bestätigt (meiner Logik nach sollte das Skript nun dafür sorgen, dass die Datei, die standardmäig mit dem Adobe Reader geöffnet wird, nun aufgeht). Aber es passiert leider nichts...Kann natürlich daran liegen, dass ich das Skript am falschen Platz eingefügt habe. Die "strOldFile" Definition und den Rest des Skripts habe ich in einem neuen Modul abgelegt, der dortige Inhalt erscheint dann auch unter "Tabelle1".

Danke schon mal, VG
Stephan


 

Beiträge aus den Excel-Beispielen zum Thema "Datei gemäß generiertem Pfad öffnen"