Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Pfad für GetFolder aus Zelle lesen

Forumthread: Pfad für GetFolder aus Zelle lesen

Pfad für GetFolder aus Zelle lesen
19.04.2018 08:03:21
Jörg
Hallo liebe Gemeinde,
ich bin recht unbeleckt in VBA und habe mir bisher immer mit der Abwandlung von Beispielen geholfen. Ich habe jedoch nun eine Aufgabenstellung, die niemand bisher beschrieben zu haben scheint.
Ich möchte ein Word-Dokument (.dot) schreibgeschützt aus Excel aufrufen.
Das funktioniert jetzt schon sehr gut, jedoch muss ich dabei den Pfad bisher immer direkt in VBA eingeben.
Da ich an verschiedenen Orten (Arbeitsblättern) auf Word-Dokumente zugreifen muss, habe ich ein Arbeitsblatt "Nutzerverwaltung" integriert, in welchem ich die Pfade global angeben möcht, um den Änderungsdienst so gering, wie möglich halten zu können.
Meine Aufgabe ist also, den Pfad zum Beispiel aus Zelle B29 der "Nutzerverwaltung" lesen zu können und hoffe, dass hier jemand ist, der mir helfen kann. Folgenden Quellcode nutze ich im Moment:
Private Sub CommandButton10_Click()
Dim AppWD As Object
Set AppWD = CreateObject("Word.Application") 'Word als Object starten
AppWD.Application.Visible = True
AppWD.WindowState = 1
AppActivate AppWD.Caption
Set FS = CreateObject("Scripting.FileSystemObject")
Set Folder = FS.GetFolder("L:\LOV\2_Dokumente\2.1_intern\2.1.6_Verfahrensanweisungen\ _
Verfahrensanweisungen - Integriertes MS\")
For Each File In Folder.Files
If File.Name Like "LOV VA P7-4 Produktion A*.dot" Then
AppWD.Documents.Open File.Path, ReadOnly:=True
Exit For 'nur die erste Datei ist relevant
End If
Next
End Sub
Danke für eure Hilfe
Jörg
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Set Folder = FS.GetFolder(Range("B29"))
19.04.2018 09:52:14
Rudi
AW: Pfad für GetFolder aus Zelle lesen
19.04.2018 14:12:32
Jörg
Danke für die Rückmeldung Rudi,
wie binde ich jetzt noch das Arbeitsblatt "Nuterverwaltung" ein, auf dem ich mich nicht befinde?
Das Arbeitsplatt "Nutzerverwaltung" ist nicht identisch mit dem Arbeitsblatt, auf dem die Funktion ausgeführt werden soll.
Ich bedanke mich schon jetzt für eure Hilfe
Gruß Jörg
Anzeige
Sheets("Nutzerverwaltung").Range("B29") owT
19.04.2018 14:32:30
Rudi
AW: Pfad für GetFolder aus Zelle lesen
19.04.2018 14:37:07
Jörg
Okay
Ich denke, jetzt hab ichs
Ich hab den code wie folgt eingesetzt und jetzt scheint es zu funktionieren:
Set Folder = FS.GetFolder(Worksheets("Nutzerverwaltung").Range("B29"))
Danke für die schnelle Hilfe
Gruß Jörg
;
Anzeige

Infobox / Tutorial

Pfad für GetFolder aus Zelle lesen


Schritt-für-Schritt-Anleitung

Um den Pfad für die GetFolder-Methode in VBA aus einer Zelle zu lesen, befolge diese Schritte:

  1. Öffne Excel und wechsle zum Visual Basic for Applications-Editor (VBA) mit ALT + F11.
  2. Füge ein neues Modul ein, indem du im Projektfenster mit der rechten Maustaste auf dein Projekt klickst und Einfügen > Modul wählst.
  3. Schreibe den folgenden VBA-Code in das Modul:
Private Sub CommandButton10_Click()
    Dim AppWD As Object
    Set AppWD = CreateObject("Word.Application") 'Word als Object starten
    AppWD.Application.Visible = True
    AppWD.WindowState = 1
    AppActivate AppWD.Caption

    Dim FS As Object
    Set FS = CreateObject("Scripting.FileSystemObject")

    ' Lesen des Pfades aus Zelle B29 auf dem Arbeitsblatt "Nutzerverwaltung"
    Dim Folder As Object
    Set Folder = FS.GetFolder(Worksheets("Nutzerverwaltung").Range("B29").Value)

    For Each File In Folder.Files
        If File.Name Like "LOV VA P7-4 Produktion A*.dot" Then
            AppWD.Documents.Open File.Path, ReadOnly:=True
            Exit For 'nur die erste Datei ist relevant
        End If
    Next
End Sub
  1. Stelle sicher, dass das Arbeitsblatt "Nutzerverwaltung" existiert und in Zelle B29 der richtige Pfad zu deinem Word-Dokument steht.
  2. Füge einen Button in dein Excel-Blatt ein und verknüpfe ihn mit der CommandButton10_Click-Prozedur.

Häufige Fehler und Lösungen

  • Fehler: "Pfad nicht gefunden"
    Lösung: Überprüfe, ob der Pfad in Zelle B29 korrekt eingegeben ist und dass die Datei tatsächlich an diesem Ort vorhanden ist.

  • Fehler: "Objekt nicht gefunden"
    Lösung: Stelle sicher, dass das Scripting.FileSystemObject korrekt initialisiert wurde. Die Zeile Set FS = CreateObject("Scripting.FileSystemObject") muss vor der Verwendung von FS.GetFolder stehen.


Alternative Methoden

Eine Alternative zur Verwendung von Scripting.FileSystemObject ist die Verwendung der Dir-Funktion, um Dateien in einem Verzeichnis zu durchsuchen. Hier ein einfaches Beispiel:

Dim Path As String
Dim FileName As String

Path = Worksheets("Nutzerverwaltung").Range("B29").Value
FileName = Dir(Path & "\*.dot")

While FileName <> ""
    ' Hier kannst du den Code zum Öffnen der Datei einfügen
    FileName = Dir
Wend

Praktische Beispiele

Angenommen, du hast in Zelle B29 den Pfad L:\LOV\2_Dokumente\2.1_intern\2.1.6_Verfahrensanweisungen\. Wenn du nun den Button drückst, wird das Word-Dokument, das dem Muster "LOV VA P7-4 Produktion A*.dot" entspricht, automatisch geöffnet.


Tipps für Profis

  • Nutze die Option Explicit-Anweisung am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Das verhindert viele häufige Fehler in VBA.
  • Verwende die Fehlerbehandlung in deinem Code, um sicherzustellen, dass dein Programm auch bei unerwarteten Situationen stabil bleibt. Beispiel:
On Error GoTo ErrorHandler
' Dein Code hier...
Exit Sub

ErrorHandler:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass der Pfad in Zelle B29 immer aktuell ist?
Du kannst ein Makro erstellen, das beim Öffnen der Excel-Datei oder beim Wechseln des Arbeitsblatts ausgeführt wird, um den Pfad zu überprüfen.

2. Was mache ich, wenn ich mehrere Dateien öffnen möchte?
Du kannst die Schleife im Code anpassen, um alle relevanten Dateien zu öffnen, anstatt nur die erste Datei.

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