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

Forumthread: Speicherort festlegen? (SaveAs)

Speicherort festlegen? (SaveAs)
02.07.2004 09:08:37
stephan
Hallo,
kenn mich mit VBA wenig aus und bräuchte etwa Hilfe :(
Habe nen Makro geschrieben, der eine Tabelle splittet und jede Spalte in eine Extra Datei speichert.
1. Ich möchte nun den Speicherpfad innerhalb des Makro anlegen, sodass er nur bei Ausführung des Makros gilt (ja ich weiss, könnte über Extras/Optionen etc gehen, dann wird aber alles dort gespeichert.)
Noch etwas:
2. Dynamischer Dateiname?
Workbooks.Add
Workbooks("Test.xls").Worksheets("Tabelle1").Columns(1).Copy _
Destination:=ActiveWorkbook.Worksheets("Tabelle1").Range("A1")
Der Code gilt nur für die Datei namens "Test.xls", soll aber automatisch den Dateinamen nehmen, von welcher aus der Makro ausgeführt wird.
Bin ein blutiger Anfänger, nehmts mir nich übel :/
Thx im Vorraus..Grüße Stephan
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speicherort festlegen? (SaveAs)
02.07.2004 09:29:15
Uwe
Hallo Stephan,
meinst Du das so?

Sub SpeichernUnter()
On Error Resume Next
ActiveWorkbook.SaveAs "C:\Rechnungen\" & InputBox("Bitte Dateinamen bestätigen", "Speichern unter...", ThisWorkbook.Name)
End Sub

ThisWorkbook.Name gibt den Namen der Datei zurück, in der das gerade ausgeführte Makro steht.
Gruß Uwe
Anzeige
AW: Speicherort festlegen? (SaveAs)
02.07.2004 14:15:33
stephan
Nich ganz...
Bisher hatte ich das so:
"ActiveSheet.SaveAs (ActiveSheet.Cells(1, 2).Value)"
es wird unter B1 abgespeichert..nur wenn eben der Standartordner direkt mein netzlaufwerk is, muss ich die alle einzeln herrausfischen...deshalb will ich den speicherort deklarieren, sodass dort nur bei benutzung des makros gespeichert wird..kompliziert? *g*
das mit dem dynamischen dateinamen mein ich so:
"Workbooks("Test.xls").Worksheets("Tabelle1").Columns(1).Copy _"
Ich muss quasi in dem Makro den genauen Namen angeben, aus welchem Dokument er kopieren soll. Das ist aber blöd, wiel die Dateien immer nach dem aktuellen Datum gespeichert werden. So. Wenn ich den Makro von XX.xls ausführe, soll "Test.xls" automatisch durch XX ersetzt werden, wenn ich von YY.xls auführ - durch YY.xls ersetzen..
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Speicherort für Excel-Dateien mit VBA festlegen


Schritt-für-Schritt-Anleitung

Um den Speicherort in einem Excel-Makro festzulegen, kannst Du den folgenden VBA-Code verwenden:

Sub SpeichernUnter()
    On Error Resume Next
    Dim speicherort As String
    speicherort = "C:\Rechnungen\" ' Hier den gewünschten Speicherort angeben
    ActiveWorkbook.SaveAs speicherort & InputBox("Bitte Dateinamen bestätigen", "Speichern unter...", ThisWorkbook.Name)
End Sub

In diesem Beispiel wird der Speicherort für die Datei auf "C:\Rechnungen\" festgelegt. Der Benutzer wird aufgefordert, einen Dateinamen einzugeben, der dann zusammen mit dem Speicherort verwendet wird.

Um den Pfad dynamisch festzulegen, kannst Du den folgenden Code verwenden:

Sub DynamischerSpeicherort()
    Dim aktuellerPfad As String
    aktuellerPfad = ThisWorkbook.Path & "\"
    ActiveWorkbook.SaveAs aktuellerPfad & InputBox("Bitte Dateinamen bestätigen", "Speichern unter...", ThisWorkbook.Name)
End Sub

Dieser Code speichert die Datei im gleichen Verzeichnis wie die aktuelle Arbeitsmappe.


Häufige Fehler und Lösungen

  1. Fehlermeldung beim Speichern: Stelle sicher, dass der angegebene Speicherort existiert. Wenn nicht, wird eine Fehlermeldung angezeigt. Überprüfe den Pfad im Code.

  2. Dateiname wird nicht akzeptiert: Achte darauf, dass der eingegebene Dateiname keine ungültigen Zeichen enthält (z.B. \ / : * ? " < > |).

  3. Excel kann keine Datei überschreiben: Wenn die Datei bereits existiert, wird Excel eine Warnung ausgeben. Verwende On Error Resume Next, um dies zu umgehen oder implementiere eine Abfrage zur Bestätigung.


Alternative Methoden

Wenn Du den Standardspeicherort in Excel festlegen möchtest, kannst Du dies über die Optionen in Excel tun:

  1. Gehe zu Datei > Optionen > Speichern.
  2. Ändere den Standardspeicherort für Dateien.

Für VBA kannst Du die Application.DefaultFilePath-Eigenschaft verwenden, um den Standardspeicherort festzulegen:

Sub StandardspeicherortFestlegen()
    Application.DefaultFilePath = "C:\Rechnungen\"
End Sub

Praktische Beispiele

Hier ist ein Beispiel, das den Speicherort und den Dateinamen dynamisch festlegt, je nachdem, von welcher Datei das Makro ausgeführt wird:

Sub SpeichernMitDynamischemNamen()
    Dim speicherort As String
    Dim dateiname As String
    speicherort = "C:\Rechnungen\"
    dateiname = ThisWorkbook.Name ' Aktueller Dateiname

    ActiveWorkbook.SaveAs speicherort & Replace(dateiname, ".xls", "_" & Format(Now(), "YYYYMMDD") & ".xls")
End Sub

Dieser Code speichert die Datei im angegebenen Verzeichnis und fügt das aktuelle Datum zum Dateinamen hinzu.


Tipps für Profis

  • Verwende Excel VBA zur Abfrage des aktuellen Speicherorts mit ThisWorkbook.Path, um sicherzustellen, dass Du keine ungültigen Speicherorte verwendest.
  • Kombiniere den InputBox mit FileDialog, um eine grafische Benutzeroberfläche für die Auswahl des Speicherorts zu bieten.

Beispiel:

Sub SpeichernMitDateiDialog()
    Dim fd As FileDialog
    Dim speicherort As String

    Set fd = Application.FileDialog(msoFileDialogFolderPicker)
    If fd.Show = -1 Then
        speicherort = fd.SelectedItems(1) & "\"
        ActiveWorkbook.SaveAs speicherort & InputBox("Bitte Dateinamen bestätigen", "Speichern unter...", ThisWorkbook.Name)
    End If
End Sub

FAQ: Häufige Fragen

1. Wie kann ich den Speicherort für das Makro festlegen, ohne den Standardordner zu ändern?
Du kannst einfach einen spezifischen Pfad im VBA-Code angeben, wie im Beispiel unter "Schritt-für-Schritt-Anleitung" gezeigt.

2. Wie kann ich den Dateinamen dynamisch anpassen?
Verwende ThisWorkbook.Name, um den Namen der aktuellen Datei zu erhalten, und kombiniere ihn mit dem gewünschten Format oder Datum.

3. Was mache ich, wenn mein Makro nicht funktioniert?
Überprüfe den Code auf Fehler und stelle sicher, dass der angegebene Speicherort existiert. Nutze die Fehlerbehandlung On Error Resume Next, um Probleme zu identifizieren.

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