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

Forumthread: Speichern in selben Ordner

Speichern in selben Ordner
30.03.2016 14:02:38
chris58
Hallo !
Ich stehe vor einem für mich großen Problem. Ich habe diesen Code in meiner Arbeitsmappe. Dieser speichert mir die Mappe unter den Zellen die vorgegeben sind ab.
Da es sich bei der Mappe um eine Vorlage handelt, sollte diese nicht gespeichert werden, sondern nur eben unter diesem Namen in den gleichen Ordner, wo auch die Vorlage sich befindet. Die Zelle H2 ist ein Datum, das immer geändert wird. Der code speichert zwar die Mappe dann mit dem richtigen Datum ab, aber in der Vorlage wird es ja nicht verändert, sodaß dann diese auch mit dem bestehenden Datum abgespeichert wird.
z.B. Vorlage Datum 1.3.2016........Änderung auf 1.4.2016
Abgespeichert wird nun die neue Mappe mit 04 Zelle F2 und beim schliessen der Vorlage nochmals mit ß3 Zelle F2.
Bitte um Hilfe
chris
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Unprotect Password:="test"
ActiveWorkbook.SaveAs Filename:=Format(Range("H2"), "mm") & " " & Range("F2").Value & ".xls"
tbListe.Visible = xlVeryHidden
End Sub

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern in selben Ordner
30.03.2016 14:15:56
Rudi
Hallo,
Abgespeichert wird nun die neue Mappe
wie kommt die neue Mappe denn zustande?
Mit dem o.a. Code wird die aktive Mappe (die Vorlage?) einfach unter einem anderen Namen gespeichert. Das Original bleibt unberührt.
Außerdem solltest du tbListe vor dem Speichern ausblenden.
Gruß
Rudi

Anzeige
AW: Speichern in selben Ordner
30.03.2016 14:18:15
Steve
Hallo Chris,
eine eindeutige Formulierung deines Anliegens ist das jedenfalls nicht. Anhand des Betreffs entnehme ich mal dass du nach dem Pfad der Mappe suchst. Das geht mit "ActiveWorkbook.Path".
ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.Path & "\" & Format(Range("H2"), "mm") & " " & Range("F2").Value & ".xls"
lg Steve

Anzeige
AW: Speichern in selben Ordner
30.03.2016 14:19:56
UweD
Hallo
Versuch es mal so...
tbListe.Visible = xlVeryHidden muss das nicht vor das speichern?

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Pfad As String, tbListe
Cancel = True ' bricht das eigendliche speichern ab
With ActiveWorkbook
Pfad = .Path & "\"
.Unprotect Password:="test"
.SaveAs Filename:=Pfad & Format(Range("H2"), "mm") & " " & Range("F2").Value & ".xls"
tbListe.Visible = xlVeryHidden '?
End With
End Sub

Gruß UweD

Anzeige
AW: Speichern in selben Ordner
30.03.2016 14:31:45
UweD
das schließen fehlt noch...

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error GoTo Fehler
Dim Pfad As String, tbListe
Cancel = True ' bricht das eigendliche speichern ab
With ActiveWorkbook
Pfad = .Path & "\"
.Unprotect Password:="test"
'tbListe.Visible = xlVeryHidden '?
.SaveAs Filename:=Pfad & Format(Range("H2"), "mm") & " " & Range("F2").Value & ".xls"
Application.EnableEvents = False
.Close False
End With
Fehler:
Application.EnableEvents = True
End Sub

Anzeige
AW: Speichern in selben Ordner
30.03.2016 16:20:16
chris58
Hallo !
Danke, das paßt und geht
Eine Frage noch: kann man, statt im gleichen Ordner, auch einen Untergeordneten Ordner der im gleichen Ordner liegt, nehmen ?
Danke nochmals
chris

AW: Speichern in selben Ordner
30.03.2016 16:48:46
chris58
Hallo !
Ich hab´s
Pfad = .Path & "\Sicherung\"
Danke
chris
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Speichern in demselben Ordner mit Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffne deine Excel-Arbeitsmappe und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge den folgenden Code in das ThisWorkbook Objekt ein:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
       Dim Pfad As String
       Cancel = True ' Verhindert das Speichern der Vorlage
       With ActiveWorkbook
           Pfad = .Path & "\"
           .Unprotect Password:="test"
           .SaveAs Filename:=Pfad & Format(Range("H2"), "mm") & " " & Range("F2").Value & ".xls"
           Application.EnableEvents = False
           .Close False
       End With
       Application.EnableEvents = True
    End Sub
  3. Schließe den VBA-Editor und speichere deine Arbeitsmappe.

  4. Teste den Code, indem du die Arbeitsmappe schließt. Sie sollte nun im selben Ordner wie die Vorlage gespeichert werden.


Häufige Fehler und Lösungen

  • Fehler: "Speichern nicht möglich"
    Lösung: Überprüfe, ob die Datei bereits geöffnet ist oder ob der Pfad korrekt ist. Der Code setzt voraus, dass die Datei nicht im schreibgeschützten Modus geöffnet ist.

  • Fehler: "Zelle nicht gefunden"
    Lösung: Stelle sicher, dass du die Zellen H2 und F2 korrekt referenzierst. Sie müssen im aktiven Arbeitsblatt vorhanden sein.


Alternative Methoden

Falls du die Datei nicht im selben Ordner, sondern in einem Unterordner speichern möchtest, kannst du den Pfad wie folgt anpassen:

Pfad = .Path & "\Sicherung\"

Diese Zeile speichert die Datei im Unterordner "Sicherung", der im gleichen Verzeichnis wie deine Vorlage angelegt ist.


Praktische Beispiele

  1. Speichern als PDF: Wenn du die Arbeitsmappe als PDF speichern möchtest, kannst du diesen Code verwenden:

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Pfad & Format(Range("H2"), "mm") & " " & Range("F2").Value & ".pdf"
  2. Benutzerdefinierte Dateinamen: Um den Dateinamen dynamisch zu gestalten, kannst du auch weitere Zellen in den Namen einbeziehen:

    .SaveAs Filename:=Pfad & Format(Range("H2"), "mm") & " " & Range("F2").Value & " - " & Range("A1").Value & ".xls"

Tipps für Profis

  • Ereignissteuerung: Stelle sicher, dass Application.EnableEvents immer wieder auf True gesetzt wird, um andere VBA-Ereignisse nicht zu blockieren.
  • Fehlerbehandlung: Verwende On Error Resume Next, um mögliche Laufzeitfehler elegant zu handhaben.

FAQ: Häufige Fragen

1. Wie speichere ich die Datei als PDF in demselben Ordner?
Du kannst die Methode ExportAsFixedFormat verwenden und den Pfad wie im oben genannten Beispiel anpassen.

2. Kann ich auch einen anderen Dateityp speichern?
Ja, du kannst den Dateityp im SaveAs Befehl ändern, z.B. .xlsm für Makro-fähige Arbeitsmappen.

3. Was muss ich tun, wenn ich den Code anpassen möchte?
Ändere die Zellenreferenzen oder den Dateinamen im Code entsprechend deinen Anforderungen.

Mit diesen Anleitungen und Tipps bist du gut gerüstet, um deine Excel-Vorlage effektiv in demselben Ordner zu speichern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige