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

Forumthread: Neue Mappe erzeugen und speichern unter

Neue Mappe erzeugen und speichern unter
11.06.2016 18:48:09
Dieter(Drummer)
Guten Abend VBA Spezialisten,
mit folgendem Makro erzeuge ich per Optionsbutton Klick, auf einer Userform einen neue Datei. Das klappt auch. Die neue Datei wird aber nicht abgespeichert und das Makro hängt an Zeile:
ActiveWorkbook.SaveAs Filename:="C:\Test\" & ActiveWorkbook.Name & "NeueMappe.xlsm"
Was ist im Makro falsch?
Mit der Bitte um Hilfe und
Gruß, Dieter(Drummer)
'Neue Mappe ertellen

Private Sub opt2_Click()
MsgBox ("Neue Mappe wird erstellt!")
Workbooks.Add
ActiveWindow.Caption = "NeueMappe.xlsm"
ActiveWorkbook.SaveAs Filename:="C:\Test\" & ActiveWorkbook.Name & "NeueMappe.xlsm"
End Sub

Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Neue Mappe erzeugen und speichern unter
11.06.2016 18:55:44
Hajo_Zi
Hallo Dieter,
benutze doch mal den Makrorecorder

AW: Danke Haho ... so ist es jetzt ...
11.06.2016 19:05:15
Dieter(Drummer)
... und es funktioniert. Kann man das Makro noch verkürzen?
'Neue Mappe ertellen
  • 
    Private Sub opt2_Click()
    MsgBox ("Neue Mappe wird erstellt!")
    Workbooks.Add
    ActiveWindow.Caption = "NeueMappe.xlsm"
    ChDir "C:\test"
    ActiveWorkbook.SaveAs Filename:="C:\test\NeueMappe.xlsm", FileFormat:= _
    xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    End Sub
    


  • Gruß, Dieter(Drummer)

    Anzeige
    AW: Danke Haho ... so ist es jetzt ...
    11.06.2016 19:07:22
    Hajo_Zi
    Hallo Dieter,
    , CreateBackup:=False
    braucht nicht sein da Standard.
    warum diese Zeilen
    ActiveWindow.Caption = "NeueMappe.xlsm"
    ChDir "C:\test"
    Gruß Hajo

    AW: Danke Haho ... so ist es jetzt ...
    11.06.2016 19:08:44
    Hajo_Zi
    Hallo Dieter,
    , CreateBackup:=False
    braucht nicht sein da Standard.
    warum diese Zeilen
    ActiveWindow.Caption = "NeueMappe.xlsm"
    ChDir "C:\test"
    Gruß Hajo

    Anzeige
    AW: Hajo ... damit gebe ich ...
    11.06.2016 19:17:07
    Dieter(Drummer)
    ... der neuen Mappe eine direkten Namen "ActiveWindow.Caption = "NeueMappe.xlsm" und mit "ChDir "C:\test"
    gebe ich den Speicherort an. Wie man das besser machen kann, weiß ich nicht.
    So ist jetzt mein Makro dank deiner Hilfe:
    'Neue Mappe ertellen
    Private Sub opt2_Click()
    MsgBox ("Neue Mappe wird erstellt!")
    Workbooks.Add
    ActiveWindow.Caption = "NeueMappe.xlsm"
    ChDir "C:\test"
    ActiveWorkbook.SaveAs Filename:="C:\test\NeueMappe.xlsm", FileFormat:= _
    xlOpenXMLWorkbookMacroEnabled
    MsgBox ("Neue Mappe ist geschlossen")
    ActiveWorkbook.Close
    End Sub
    

    Gruß, Dieter(Drummer)

    Anzeige
    AW: Ordner, Dateiname
    11.06.2016 19:20:10
    Hajo_Zi
    Hallo Dieter,
    den Ordner hast Du doch bei Speichern angegeben und der richtige Name wird doch angezeigt, wenn Datei gespeichert oder sehe ich das falsch?
    Gruß Hajo

    AW: Du hast Recht Hajo ...so ist es jetzt ....
    11.06.2016 19:27:34
    Dieter(Drummer)
    ... und funktioniert. Idealer wäre, wenn der neue Dateiname abgefragt würde, damit ich ihn dann erst vergeben kann. Das übersteigt aber meine Fähigkeit.
    'Neue Mappe ertellen
    Private Sub opt2_Click()
    MsgBox ("Neue Mappe wird erstellt!")
    Workbooks.Add
    ActiveWorkbook.SaveAs Filename:="C:\test\NeueMappe.xlsm", FileFormat:= _
    xlOpenXMLWorkbookMacroEnabled
    MsgBox ("Neue Mappe ist geschlossen")
    ActiveWorkbook.Close
    End Sub
    

    Gruß, Dieter(Drummer)

    Anzeige
    AW: Du hast Recht Hajo ...so ist es jetzt ....
    11.06.2016 20:22:40
    Hajo_Zi
    benutze eine Inputbox.
    StName = InputBox("Bitte gesuchten Namen eingeben!!")
    Gruß Hajo

    AW: Danke Hajo, werde es einbauen ....
    11.06.2016 21:00:14
    Dieter(Drummer)
    ... und sehen, ob ich das richtig schaffe.
    Danke für deine Hilfe und Tipps.
    Gruß und einen schönen Abend, Dieter(Drummer)
    PS Habe Makro jetzt noch etwas geändert:
    'Neue Mappe ertellen
    Private Sub opt2_Click()
    MsgBox ("Neue Mappe erstellen?")
    If MsgBox("Ja," & vbLf & "oder nein?", vbYesNo) = vbNo Then
    Exit Sub
    End If
    Workbooks.Add
    ActiveWorkbook.SaveAs Filename:="C:\test\NeueMappe.xlsm", FileFormat:= _
    xlOpenXMLWorkbookMacroEnabled
    MsgBox ("Neue Mappe wurde gespeichert")
    ActiveWorkbook.Close
    End Sub
    

    Anzeige
    ohne Exit Sub
    11.06.2016 21:04:10
    Hajo_Zi
    auf Exit Su verzichte ich, da dies Abbruch ist.
    Private Sub opt2_Click()
    MsgBox ("Neue Mappe erstellen?")
    If MsgBox("Ja," & vbLf & "oder nein?", vbYesNo) = vbyes Then
    Workbooks.Add
    ActiveWorkbook.SaveAs Filename:="C:\test\NeueMappe.xlsm", FileFormat:= _
    xlOpenXMLWorkbookMacroEnabled
    MsgBox ("Neue Mappe wurde gespeichert")
    ActiveWorkbook.Close
    end if
    End Sub
    

    Anzeige
    AW: Danke Hajo für Hinweis ... und ...
    11.06.2016 21:14:06
    Dieter(Drummer)
    ... das mit der Inputbox kann ich erst Montag versuchen einzubauen.Ich melde mich dann, ob ich es hinbekommen habe.
    Gruß, Dieter(Drummer)

    AW: @Hajo ... jetzt mit Inputbox, aber ...
    13.06.2016 10:18:27
    Dieter(Drummer)
    ... Guten Tag, Hajo,
    danke erstmal für deine bisherige Hilfe. Habe es jetz mal mit Inputbox versucht. Es wird aber nicht der Dateiname, den ich per Inputbox eingegeben habe in "speichern unter" unter angezeigt. Was ist noch falsch an meinem Makro?
    Aktuelles Makro:
    'Neue Mappe erstellen
    Private Sub opt2_Click()
    Dim StName As String
    MsgBox ("Neue Mappe erstellen?")
    If MsgBox("Ja," & vbLf & "oder nein?", vbYesNo) = vbYes Then
    StName = InputBox("Bitte neuen Dateinamen eingeben!")
    Workbooks.Add
    Application.Dialogs(xlDialogSaveAs).Show 'Öffnet Speichern unter
    'ActiveWorkbook.SaveAs Filename:="C:\test\NeueMappe.xlsm", FileFormat:= _
    xlOpenXMLWorkbookMacroEnabled
    MsgBox ("Neue Mappe wurde gespeichert")
    ActiveWorkbook.Close
    End If
    End Sub
    

    Gruß, Dieter(Drummer)

    Anzeige
    AW: @Hajo ... jetzt mit Inputbox, aber ...
    13.06.2016 16:49:49
    Hajo_Zi
    Hallo Dieter,
    'ActiveWorkbook.SaveAs Filename:="C:\test\" $ StName &".xlsm", FileFormat:= _
    xlOpenXMLWorkbookMacroEnabled

    AW: Danke Hajo für deine Hilfe ...
    11.06.2016 20:04:48
    Dieter(Drummer)
    ... und ein schönes Wochenende.
    Gruß, Dieter(Drummer)
    ;

    Forumthreads zu verwandten Themen

    Anzeige
    Anzeige
    Anzeige
    Anzeige
    Anzeige
    Anzeige

    Infobox / Tutorial

    Neue Mappe erzeugen und speichern unter


    Schritt-für-Schritt-Anleitung

    Um eine neue Arbeitsmappe in Excel mit VBA zu erstellen und unter einem bestimmten Namen zu speichern, kannst du das folgende Makro verwenden. Achte darauf, dass du die entsprechenden Berechtigungen hast, um auf den angegebenen Speicherort zuzugreifen.

    Private Sub opt2_Click()
        Dim StName As String
        MsgBox ("Neue Mappe erstellen?")
        If MsgBox("Ja," & vbLf & "oder nein?", vbYesNo) = vbYes Then
            StName = InputBox("Bitte neuen Dateinamen eingeben!")
            Workbooks.Add
            ActiveWorkbook.SaveAs Filename:="C:\Test\" & StName & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
            MsgBox ("Neue Mappe wurde gespeichert")
            ActiveWorkbook.Close
        End If
    End Sub

    In diesem Beispiel wird eine neue Excel-Datei erstellt, und der Benutzer wird aufgefordert, einen Dateinamen einzugeben. Das Makro speichert dann die Datei im angegebenen Verzeichnis.


    Häufige Fehler und Lösungen

    1. Fehler beim Speichern:

      • Wenn du einen Fehler erhältst, dass die Datei nicht gespeichert werden kann, überprüfe, ob der Pfad korrekt ist und ob du Schreibrechte in diesem Verzeichnis hast.
    2. Makro hängt an der Speichern-Zeile:

      • Stelle sicher, dass der Dateiname korrekt formatiert ist. Verwende ActiveWorkbook.SaveAs mit dem richtigen Dateipfad und Dateiformat.
    3. Dateiname wird nicht angezeigt:

      • Wenn der Dateiname nicht korrekt angezeigt wird, achte darauf, dass der InputBox-Wert richtig in den SaveAs-Befehl eingebaut wird.

    Alternative Methoden

    Es gibt verschiedene Methoden, um eine neue Arbeitsmappe in Excel zu erstellen und zu speichern:

    • Makro-Recorder verwenden: Du kannst den Makro-Recorder in Excel aktivieren, um die Schritte aufzuzeichnen und später als Basis für dein VBA-Skript zu verwenden.

    • Excel VBA Arbeitsmappe speichern: Verwende die Workbooks.Add-Methode, um eine neue Arbeitsmappe zu erstellen, gefolgt von ActiveWorkbook.SaveAs, um sie zu speichern.


    Praktische Beispiele

    Hier sind einige praktische Beispiele, wie man verschiedene Szenarien mit VBA umsetzen kann:

    1. Einfaches Speichern einer neuen Arbeitsmappe:
    Private Sub opt2_Click()
        Workbooks.Add
        ActiveWorkbook.SaveAs Filename:="C:\Test\NeueMappe.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
    End Sub
    1. Speichern unter einem benutzerdefinierten Namen:
    Private Sub opt2_Click()
        Dim StName As String
        StName = InputBox("Bitte neuen Dateinamen eingeben!")
        Workbooks.Add
        ActiveWorkbook.SaveAs Filename:="C:\Test\" & StName & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
    End Sub

    Tipps für Profis

    • Dateiformat anpassen: Achte darauf, das richtige Dateiformat beim Speichern zu wählen, wie xlOpenXMLWorkbookMacroEnabled für makrofähige Dateien.

    • Verzeichnisse dynamisch nutzen: Du kannst den Pfad dynamisch erstellen, indem du den CurDir-Befehl verwendest, um den aktuellen Arbeitsordner zu ermitteln.

    • Fehlerbehandlung einbauen: Implementiere Fehlerbehandlungsroutinen, um unerwartete Fehler während des Speichervorgangs zu verhindern.


    FAQ: Häufige Fragen

    1. Wie kann ich eine neue Excel-Datei automatisch speichern?
    Verwende das SaveAs-Kommando in deinem VBA-Skript, um die neue Datei an einem bestimmten Ort zu speichern.

    2. Gibt es eine Möglichkeit, den Benutzer nach dem Dateinamen zu fragen?
    Ja, du kannst die InputBox-Funktion verwenden, um den Benutzer nach dem gewünschten Dateinamen zu fragen.

    3. Wie kann ich den Speicherort für das Speichern unter ändern?
    Ändere einfach den Pfad in der SaveAs-Zeile, um die Datei an einem anderen Ort zu speichern.

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige