Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Pfad ändern

Forumthread: VBA Pfad ändern

VBA Pfad ändern
09.06.2009 09:34:16
Nina
Hallo Excel-VBA-Profis,
ich habe ein Makro, das auf Excel Sheets aufgebaut ist.
Sub test()
Sheets("Abfrage").Range("A32:H100").ClearContents
Jetzt möchte ich gerne den Pfad wechseln. Das Sheet Abfrage ist abgespeichert auf Laufwerk C:\Eigene Dateien\AbfrageVorlage
Da ich absoluter VBA-Anfänger bin, benötige ich hier Hilfe...wie geht das?
Lieben Dank im voraus für die Mühen.
LG Nina
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Pfad ändern
09.06.2009 09:43:10
Hajo_Zi
Hallo Nina,
den Pfad brauchst Du nur, wenn Datei geschlossen. In einer geschlossenen Datei kannst du aber nichts löschen. Wozu also?

AW: VBA Pfad ändern
09.06.2009 09:55:08
Nina
Hallo Hajo,
Ich habe dieses Makro erstellt bekommen. Ursprünglich lief dieses Makro über zwei Tabellenblätter. Jetzt möchte ich gerne das das Makro immer auf die Datei "Abfrage" zugreift und nicht auf das Sheet "Abfrage". Dieses möchte ich gerne ändern, damit das Makro nicht jeden Monat umgeschrieben werden muss.
Die Monatstabellen werden im Ordner C:\Eigene Dateien\Abfrage gespeichert. Das Makro befindet sich in C:\Eigene Dateien\AbfrageVorlage.
Das Makro läuft über die Tabellenblätter einwandfrei - soll jetzt aber auf die Datei zugreifen und nicht nur auf das Tabellenblatt....
LG Nina
Anzeige
AW: VBA Pfad ändern
09.06.2009 09:59:02
Hajo_Zi
Hallo Nina,
ich habe keine Ahnung warum ich meinen Beitrag geschriebenm habe, wenn Du ihn nicht liest. Ich sehe es nicht als notwendig an weitere Antworten nach dieser Antwort zu geben, wenn sich daran nichts ändert.
Gruß Hajo
Anzeige
AW: VBA Pfad ändern
09.06.2009 10:16:02
Nina
Hallo Hajo,
ich sehe hier keinen Zusammenhang. Ich möchte in einer geschlossenen Datei nichts löschen. Ich möchte lediglich auf einen anderen Pfad zugreifen.
Aber wenn ich eine Frage stelle, weiß ich auch nicht warum mir dann eine Gegenfrage gestellt wird, die damit gar nichts zu tun hat. Ist es so ein großes Problem nicht auf ein Excelsheet sondern auf einen anderen Pfad zuzugreifen?
LG Nina
Anzeige
AW: VBA Pfad ändern
09.06.2009 10:23:14
Hajo_Zi
Hallo Nina,
Entschuldigunng das ich die Aufgabe präzisieren wollte.
Das was Du machen willst ist mit Deinem Code nicht möglich.
Gruß Hajo
AW: VBA Pfad ändern
09.06.2009 10:26:04
Nina
Hallo Hajo,
vielen Dank für die Antwort.
LG Nina
AW: VBA Pfad ändern
09.06.2009 11:27:10
fcs
Hallo Nina,
ungenau/unklare Fragen führen halt zu Mißverständnissen.
Man kann natürlich von einem Makro aus eine Datei in einem anderen Verzeichnis öffnen und dann in einem vorgegebenen Verzeichnis ggf. unter anderem Namen speichern.
Damit man dabei nicht den Überblick verliert solte man mit Objektvariablen arbeiten.
Gruß
Franz

'Beispiel
Sub Test()
Dim wbAktiv As Workbook
Dim wbAbfrage As Workbook, wksAbfrage As Worksheet, strFileName
Const strPfadMonat As String = "C:\Eigene Dateien\Abfrage"
Const strPfadVorlage As String = "C:\Eigene Dateien\AbfrageVorlage"
'Aktive Arbeitsmappe zu Beginn der Ausführung des Makros
Set wbAktiv = ActiveWorkbook
'Vorlage-Datei mit Sheet "Abfrage" öffnen
Set wbAbfrage = Workbooks.Open(Filename:=strPfadVorlage & "\Abfrage.xls")
Set wksAbfrage = wbAbfrage.Worksheets("Abfrage")
'Inhalte im Blatt "Abfrage" löschen
wksAbfrage.Range("A32:H100").ClearContents
'Abfrageblatt im Monatsordner speichern
VBA.ChDir strPfadMonat
'Auswahldialog für Speichern-Name anzeigen
strFileName = Application.GetSaveAsFilename(InitialFileName:="Abfrage", _
FileFilter:="Excel(*.xls),*.xls", _
Title:="Bitte Dateiname/Ordner für Abfrage eingeben/wählen")
If strFileName = False Then
'Abfrage-Datei ohne speichern schließen
wbAbfrage.Close savechanges:=False
Else
wbAbfrage.SaveAs Filename:=strFileName
End If
End Sub


Anzeige
AW: VBA Pfad ändern
09.06.2009 13:19:16
Nina
Hallo Franz,
vielen lieben Dank für Deine Hilfe, jedoch bin ich in VBA absoluter Anfänger....
Mein Makro sieht komplett so aus:

Sub test()
Sheets("Tabelle1").Range("A17:H2000").ClearContents
Dim i As Long
Dim LetzteZeile As Long, LetzteZeile1 As Long
LetzteZeile = Sheets("Tabelle2").Range("A2000").End(xlUp).Row
For i = 11 To LetzteZeile
With Sheets("Tabelle2")
If .Cells(i, 5) = Worksheets("Tabelle1").Range("G6") And .Cells(i, 8)  "ok" Then
.Rows(i).Copy Worksheets("Tabelle1").Rows((Range("A2000").End(xlUp).Row) + 1)
Application.CutCopyMode = False
End If
End With
Next
End Sub


jetzt möchte ich aber die Tabelle 1 als Vorlage erstellen und die Tabelle 2 umändern in Abfrage.xls.
Beide Dateien möchte ich in einem Ordner speichern.
D.h. ich möchte die Monatstabelle (Tabelle2) immer zur Abfrage als Abfrage.xls speichern, damit ich nur ein Makro benötige und ich dieses immer wieder verwenden kann.
Für Deine Hilfe bin ich sehr dankbar, ich hoffe nur das ich mich verständlich ausgedrückt habe.
Lieben Dank im voraus.
LG Nina

Anzeige
AW: VBA Pfad ändern
09.06.2009 20:56:38
fcs
Hallo Nina,
so ganz hab ich den von dir gewünschten Ablauf noch nicht verstanden. Ich hab aber mal versucht den Ablauf makro-mäßig umzusetzen.
Am besten startest du das Makro "Test" nach Eingabe des Wertes in Zelle "G6" des Vorlageblattes im Schrittmodus dann siehst du ja was alles so passiert. Ist schon eine Datei mit Namen "Abfrage.xls" geöffnet, dann wird diese als Quelle für das Ausfüllen des Vorlageblattes benutzt. Das Vorlageblatt wird bei jedem Start des Makros in eine neue Arbeitsmappe kopiert, die dann individuell gespeichert werden kann. Vorgabeverzeichnis ist im Moment immer das Verzeichnis der geöffneten Datei "Abfrage.xls".
Ich hoffe, das hilft jetzt weiter.
https://www.herber.de/bbs/user/62320.xls
Dieses Makro läßt sich verhältnismäßig einfach an andere Vorgaben(Pfade) für das Öffnen/Speichern von Dateien anpassen.
Gruß
Franz
Anzeige
;
Anzeige

Infobox / Tutorial

VBA Pfad ändern in Excel


Schritt-für-Schritt-Anleitung

Um den Pfad in einem VBA-Makro zu ändern und auf eine Datei in einem anderen Verzeichnis zuzugreifen, folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (dein Arbeitsbuch)", gehe zu "Einfügen" und wähle "Modul".
  3. Schreibe das Makro: Füge den folgenden Code in das Modul ein:
Sub Test()
    Dim wbAktiv As Workbook
    Dim wbAbfrage As Workbook, wksAbfrage As Worksheet, strFileName As String
    Const strPfadMonat As String = "C:\Eigene Dateien\Abfrage"
    Const strPfadVorlage As String = "C:\Eigene Dateien\AbfrageVorlage"

    ' Aktive Arbeitsmappe zu Beginn der Ausführung des Makros
    Set wbAktiv = ActiveWorkbook

    ' Vorlage-Datei mit Sheet "Abfrage" öffnen
    Set wbAbfrage = Workbooks.Open(Filename:=strPfadVorlage & "\Abfrage.xls")
    Set wksAbfrage = wbAbfrage.Worksheets("Abfrage")

    ' Inhalte im Blatt "Abfrage" löschen
    wksAbfrage.Range("A32:H100").ClearContents

    ' Abfrageblatt im Monatsordner speichern
    VBA.ChDir strPfadMonat

    ' Auswahldialog für Speichern-Name anzeigen
    strFileName = Application.GetSaveAsFilename(InitialFileName:="Abfrage", _
    FileFilter:="Excel(*.xls),*.xls", _
    Title:="Bitte Dateiname/Ordner für Abfrage eingeben/wählen")

    If strFileName = False Then
        ' Abfrage-Datei ohne speichern schließen
        wbAbfrage.Close savechanges:=False
    Else
        wbAbfrage.SaveAs Filename:=strFileName
    End If
End Sub
  1. Teste das Makro: Führe das Makro aus, um sicherzustellen, dass es wie gewünscht funktioniert.

Häufige Fehler und Lösungen

  • Fehler: Datei kann nicht gefunden werden
    Lösung: Überprüfe den angegebenen Pfad. Stelle sicher, dass die Datei "Abfrage.xls" im richtigen Verzeichnis gespeichert ist.

  • Fehler: Makro funktioniert nicht wie erwartet
    Lösung: Stelle sicher, dass die Arbeitsblätter und Zellreferenzen im Code korrekt sind. Ändere die Zellreferenzen je nach deinen spezifischen Anforderungen.


Alternative Methoden

Wenn du alternative Methoden zur Änderung des Pfades in VBA in Excel ausprobieren möchtest, kannst du auch die Workbook_Open-Ereignisprozedur verwenden, um den Pfad dynamisch beim Öffnen der Arbeitsmappe zu setzen. Hier ist ein Beispiel:

Private Sub Workbook_Open()
    Dim strPfad As String
    strPfad = "C:\Eigene Dateien\Abfrage"
    ' Hier kannst du den Pfad für deine Operationen setzen
End Sub

Praktische Beispiele

Hier ist ein einfaches Beispiel, um den Pfad einer Tabelle zu ändern:

Sub BeispielPfadÄndern()
    Dim wb As Workbook
    Set wb = Workbooks.Open("C:\Eigene Dateien\DeineDatei.xlsx")

    ' Hier kannst du mit der geöffneten Arbeitsmappe arbeiten
    wb.Close SaveChanges:=True
End Sub

Du kannst dieses Beispiel anpassen, um mit verschiedenen Dateipfaden zu arbeiten.


Tipps für Profis

  • Verwende Objektvariablen: Dies hilft, den Überblick über verschiedene Arbeitsmappen zu behalten und den Code lesbarer zu machen.
  • Fehlerbehandlung implementieren: Nutze On Error Resume Next, um Fehler abzufangen und darauf zu reagieren, ohne dass das Makro abstürzt.
  • Dokumentiere deinen Code: Füge Kommentare hinzu, um den Code verständlicher zu machen, insbesondere wenn du mit komplexeren Pfadänderungen arbeitest.

FAQ: Häufige Fragen

1. Wie kann ich den Pfad in einem bestehenden Makro ändern?
Du kannst die Const-Variablen im Makro anpassen, um die neuen Pfade anzugeben.

2. Ist es notwendig, den Pfad jedes Mal manuell zu ändern?
Nein, du kannst den Pfad auch dynamisch festlegen, z.B. durch die Verwendung eines Eingabedialogs oder durch Umgebungsvariablen.

3. Was passiert, wenn die Datei nicht im angegebenen Pfad ist?
Das Makro wird mit einem Fehler abbrechen. Stelle sicher, dass die Datei im angegebenen Verzeichnis vorhanden ist oder implementiere eine Fehlerbehandlung.

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