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

Forumthread: Makro, Blatt Speichern unter Pfad...

Makro, Blatt Speichern unter Pfad...
Christopher
Hallo,
ich versuche in unserer Produktionstabelle ein Makro zu erstellen, das folgende Dinge tun sollen. (Beispieldatei im Anhang) https://www.herber.de/bbs/user/70653.xlsm
Ich befinde mich in einem Arbeitsblatt "Chain" und erstelle dort einen Produktionsauftrag. Nachdem ich alle Daten eingegeben habe, soll durch clicken der Schaltfläche nur das eine Arbeitsblatt "Chain" als eine separate Datei unter einem bestimmten Namen an einer bestimmten Stelle abgespeichert werden.
Der Name ist festgelegt als der Inhalt einer bestimmten Zelle (im Bsp. "F22").
Soweit habe ich es geschafft, dass das "Speichern unter" Dialogfenster geöffnet wird, und der Dateiname aus der Zelle vorgeschlagen wird.
Jetzt muss ich nur noch hinbekommen, dass es nicht die gesamte Datei, sondern nur das eine Blatt "Chain" abspeichert, und mir dafür den Speicherort C:\Dokumente und Einstellungen\csc\Eigene Dateien\csc\Chain\ vorschlägt.
Später will ich das für alle Blätter so machen, mit verschiedenen Speicherorten...
im Voraus vielen Dank für Eure Hilfe!
Grüße,
Christopher
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Einzelnes Tabellenblatt aus Datei speichern
20.07.2010 14:49:32
NoNet
Hallo Christopher,
teste es mal mit diesem Makro :
Sub DateiSpeichern()
Dim strPfad As String, strDateiname As String
Dim strAktuellerPfad As String
strPfad = Replace(Range("F22"), ":", "-") 'Doppelpunkt ersetzen
strAktuellerPfad = ActiveWorkbook.Path
If Len(strPfad) = 0 Then
MsgBox ("Ungültiger Dateiname: Die angegebene Zelle darf nicht leer sein!")
Else
ActiveSheet.Copy 'Kopiert nur das AKTUELLE Blatt in eine neue Datei !
'Application.Dialogs(xlDialogSaveAs).Show (ort & ".xlsm")
strDateiname = Application.Dialogs(xlDialogSaveAs).Show(strAktuellerPfad & "\" &  _
strPfad & ".xlsm")
If strDateiname  "" Then
ActiveWorkbook.SaveAs strDateiname
ActiveWorkbook.Close
ChDir strAktuellerPfad 'Verzeichnis wieder auf Ursprung wechseln
MsgBox "Datei gespeichert !"
End If
End If
End Sub
Den Doppelpunkt aus F22 muss man durch ein anderes Zeichen (hier: "-") ersetzen !
Gruß, NoNet
Anzeige
AW: Einzelnes Tabellenblatt aus Datei speichern
20.07.2010 15:26:41
Christopher
Hallo NoNet,
hmm, ich verstehe nicht wirklich, was jetzt passiert... Es speichert wohl das einzelne Blatt unter dem Dateinamen aus der gewünschten Zelle ab - das ist schon mal sehr gut! ;)
Es nimmt allerdings den Speicherort der Ursprungsdatei als Speicherort. Mir schwebt vor, dass die Datei unter einem definierten Pfad abgelegt wird.
Außerdem erstellt es aus irgendeinem Grund die Datei zwei mal: Einmal mit dem Dateinamen wie gewünscht, und dann noch einmal mit dem Dateinamen "Wahr" oder "Falsch".
Ich hoffe wir bekommen das in den Griff...
Danke schonmal soweit!
Grüße,
Christopher
Anzeige
AW: Einzelnes Tabellenblatt aus Datei speichern
21.07.2010 13:46:42
Christopher
Hallo,
Ich habe das Makro noch ein bisschen angepasst, funktioniert nun sehr gut - vielen Dank für die Hilfe!
Ein einziges (kleines) Problem gibt es noch, und zwar wenn die Datei nicht gespeichert wird (weil z.B. die schon bestehende Datei nicht überschrieben werden soll) und der Speichervorgang abgebrochen wird, dann gibt es eine Fehlermeldung "Debuggen", und die schon erstellte neue Datei bleibt geöffnet stehen (richtiger Weise nicht gespeichert). Das ist etwas unschön, aber man kann damit leben.
viele Grüße,
Christopher
Sub DateiSpeichern()
Dim strDateiname As String, strPfad_Dateiname As String
Dim strAktuellerPfad As String
Dim strNeuerPfad As String
Dim strBlattname As String
Dim strNeueDatei As String
Dim strAlteDatei As String
strNeuerPfad = "Q:\Temp"
strAlteDatei = ActiveWorkbook.Name
strDateiname = Replace(Range("F22"), ":", " -") 'Doppelpunkt ersetzen
strAktuellerPfad = ActiveWorkbook.Path
If Len(strDateiname) = 0 Then
MsgBox ("Ungültiger Dateiname: Die angegebene Zelle darf nicht leer sein!")
Else
ActiveSheet.Select 'aktuelles Blatt markieren
strBlattname = ActiveSheet.Name
ActiveSheet.Copy 'Kopiert nur das AKTUELLE Blatt in eine neue Datei !
ActiveSheet.Shapes("Schaltfläche 1").Delete 'Knopf löschen
ActiveSheet.Range("C26").Delete 'Datum löschen
ActiveSheet.Range("F22").Delete 'Code löschen
strPfad_Dateiname = strNeuerPfad & "\" & strDateiname & ".xls"
ActiveWorkbook.SaveAs strPfad_Dateiname
ActiveWorkbook.Close
ChDir strAktuellerPfad 'Verzeichnis wieder auf Ursprung wechseln
MsgBox "Datei gespeichert !"
End If
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Einzelnes Blatt in Excel speichern: Schritt-für-Schritt-Anleitung


Schritt-für-Schritt-Anleitung

Um ein einzelnes Blatt in Excel als eigene Datei zu speichern, kannst Du folgendes VBA-Makro verwenden. Dieses Makro ermöglicht es, das aktive Arbeitsblatt unter einem bestimmten Namen und an einem definierten Speicherort zu speichern.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  3. Kopiere den folgenden Code in das Modul:
Sub DateiSpeichern()
    Dim strPfad As String, strDateiname As String
    strDateiname = Replace(Range("F22"), ":", "-") 'Doppelpunkt ersetzen
    strPfad = "C:\Dokumente und Einstellungen\csc\Eigene Dateien\csc\Chain\" & strDateiname & ".xlsm"

    If Len(strDateiname) = 0 Then
        MsgBox ("Ungültiger Dateiname: Die angegebene Zelle darf nicht leer sein!")
    Else
        ActiveSheet.Copy 'Kopiert nur das AKTUELLE Blatt in eine neue Datei!
        ActiveWorkbook.SaveAs strPfad
        ActiveWorkbook.Close
        MsgBox "Datei gespeichert unter: " & strPfad
    End If
End Sub
  1. Stelle sicher, dass der gewünschte Zellinhalt in F22 steht.
  2. Schließe den VBA-Editor und kehre zu Excel zurück.
  3. Weise das Makro einer Schaltfläche zu, um es auszuführen.

Häufige Fehler und Lösungen

  • Fehler: "Ungültiger Dateiname"

    • Lösung: Stelle sicher, dass die Zelle F22 einen gültigen Dateinamen enthält. Vermeide ungültige Zeichen wie :, \, /, ?, *, <, >, |.
  • Problem: Speicherort wird nicht korrekt verwendet

    • Lösung: Vergewissere Dich, dass der Pfad im VBA-Code korrekt angegeben ist. Ändere strPfad auf einen existierenden Ordner.
  • Fehler: Datei wird doppelt gespeichert

    • Lösung: Überprüfe den Code und stelle sicher, dass keine zusätzlichen SaveAs-Befehle vorhanden sind.

Alternative Methoden

Wenn Du kein Makro verwenden möchtest, kannst Du das Arbeitsblatt auch manuell speichern:

  1. Klicke mit der rechten Maustaste auf den Tab des Arbeitsblatts, das Du speichern möchtest.
  2. Wähle Verschieben oder Kopieren....
  3. Wähle im Dialogfeld die Option Neues Buch.
  4. Klicke auf OK und speichere die Datei mit Datei > Speichern unter.

Diese Methode ist zwar einfacher, erfordert jedoch mehr manuelle Arbeit, wenn Du regelmäßig ein einzelnes Blatt in Excel speichern möchtest.


Praktische Beispiele

Ein Beispiel für die Verwendung des Makros könnte so aussehen:

  • Du hast ein Arbeitsblatt mit Verkaufsdaten und möchtest jeden Monat die Daten in einer separaten Datei speichern. Du trägst den Monat in F22 ein, und das Makro speichert das Blatt als "Verkaufsdaten_Mai.xlsm" in dem angegebenen Verzeichnis.

Tipps für Profis

  • Makro anpassen: Du kannst das Makro erweitern, um verschiedene Blätter an unterschiedlichen Speicherorten zu speichern. Füge dazu weitere Bedingungen oder Eingabefelder hinzu.
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um das Makro robuster zu machen, besonders beim Speichern unter einem bereits existierenden Namen.
  • Automatisierung: Überlege, ob Du das Makro automatisch bei bestimmten Events (z.B. beim Schließen der Datei) ausführen lassen möchtest.

FAQ: Häufige Fragen

1. Wie kann ich ein einzelnes Blatt in Excel speichern?
Du kannst ein Makro verwenden, um das aktive Blatt als eigene Datei zu speichern. Siehe die Schritt-für-Schritt-Anleitung oben.

2. Was passiert, wenn der Dateiname ungültig ist?
Das Makro zeigt eine Fehlermeldung an und speichert die Datei nicht.

3. Kann ich das Makro anpassen?
Ja, Du kannst das Makro anpassen, um es an Deine Bedürfnisse anzupassen, z.B. durch das Ändern des Speicherorts oder der Dateinamen.

4. Welche Excel-Version wird benötigt?
Das Makro ist mit Excel 2010 und späteren Versionen kompatibel.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige