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

Makro: Speichern unter neuem Namen wenn...

Forumthread: Makro: Speichern unter neuem Namen wenn...

Makro: Speichern unter neuem Namen wenn...
28.11.2002 15:38:26
klexy
Excel-Datei "Master.xls" ist schreibgeschützt.
User macht was darin und stößt dann ein Makro an, das die Datei unter dem neuen Namen "Käse 2002-11-28.xls" abspeichern soll (In A1 ist das Datum =HEUTE() eingetragen):
Application.Dialogs(xlDialogSaveAs).Show Format("Käse ") & Format(Range("A1").Value, "yyyy-mm-dd")

Wenn die Datei allerdings schon unter dem neuen Namen abgespeichert ist, soll das Makro nur unter dem bestehenden neuen Namen nachspeichern.
Einmal am Tag soll also aus der Ursprungsdatei eine Datums-Datei ausgegliedert werden, die den ganzen Tag bis Feierabend nach jedem Makro-Vorgang immer nur nachgespeichert werden soll.

Die Bedingung krieg ich nicht gebacken. Da bin ich mit meinem Latein am Ende und mit dem VBA erst recht. Wer weiß Hilfe?

Grüße, klexy

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Makro: Speichern unter neuem Namen wenn...
28.11.2002 15:41:00
Hajo
Hallo klexy

püfe doch die länge des Dateinamens um zu Entscheiden Save oder SaveAs

Gruß Hajo

Re: Makro: Speichern unter neuem Namen wenn...
28.11.2002 15:51:35
klexy
Danke für die schnelle Antwort.
Aber wie? Ich bin nicht besonders fit in VBA und steh voll am Schlauch.

klexy

Re: Makro: Speichern unter neuem Namen wenn...
28.11.2002 15:56:31
Hajo
Halo Klexy


Option Explicit

Sub klexy()
If Len(ThisWorkbook.Name) = 10 Then
Application.Dialogs(xlDialogSaveAs).Show Format("Käse ") & Format(Range("A1").Value, "yyyy-mm-dd")
Else
ThisWorkbook.Save
End If
End Sub

Code eingefügt mit: Excel Code Jeanie

Gruß Hajo

Anzeige
Re: Makro: Speichern unter neuem Namen wenn...
28.11.2002 16:49:56
Mark
Hey!

Ich mische mich da einmal ganz unverfroren ein. ich brauche zufällig das gleiche feature (nur in Excel 10.0).

Wenn der User speichert wird automatisch eine Mail mit Anhang an mich gesendet.
Ich schaffe es aber nicht dass die Datei bei Abspeichern den Namen Outlook_"heutiges Datum" trägt.
Ich hab es jetzt mit dem obrigen Code probiert und es geht nicht :(

er speichert immer unter dem aktuellen namen...

Anzeige
Re: Makro: Speichern unter neuem Namen wenn...
28.11.2002 16:56:30
Hajo
Hallo Mark

steht bei Dir auch das Datum in A1 der activen Tabelle??

Gruß Hajo

Re: Makro: Speichern unter neuem Namen wenn...
28.11.2002 17:00:31
Mark
hier mein code:

ich weiß nicht wo ich das hineinschreiben soll. muss ich eine eigene sub machen?
##########################

rivate Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)


Dim Speichern As Boolean
Dim Pflichtfelder As Range
Dim Zelle As Range
Dim Empfänger, Titel As String ' Variablendeklaration
Empfänger = "mkanamueller@kpmg.at; test@test.at" ' Empfänger
Titel = "Testmail" 'Titel

If Application.UserName = "mkanamuelfler" Then Exit Sub ' Namen anpassen!

Set Pflichtfelder = Union(Worksheets("bmd").Range("A1"), Worksheets("bmd").Range("B2")) ' Pflichtfelder festlegen
Speichern = True

For Each Zelle In Pflichtfelder.Cells

If Zelle = "" Then
Speichern = False ' Speichern unterdrücken wenn Pflichtfelder leer sind

Exit For

End If

Next

If Speichern = False Then
MsgBox "Sie haben nicht alle Pflichtfelder ausgefüllt!" & vbCrLf & "Speichervorgang wurde abgebrochen!" ' Fehlerausgabe - Messagebox
Cancel = True
End If

If Speichern = True Then
Application.Dialogs(xlDialogSendMail).Show Empfänger, Titel
End If

End Sub
###########################
danke

Anzeige
Re: Speichern unter neuem Namen wenn... noch offen
28.11.2002 17:10:26
Hajo
Hallo Mark

da fehlt mir der Zusammenhang zum ursprünglichen Beitrag. Ich versende keine Dateien per VBA.

Gruß Hajo

Danke
28.11.2002 17:21:54
klexy
Danke, Hajo!
werd ich gleich mal ausprobieren. Ich poste wen es *nicht* klappt.

klexy

;
Anzeige

Infobox / Tutorial

Makro zum Speichern unter neuem Namen in Excel


Schritt-für-Schritt-Anleitung

Um ein Makro zu erstellen, das eine Excel-Datei unter einem neuen Namen speichert, wenn ein bestimmtes Datum vorhanden ist, folge diesen Schritten:

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

  2. Klicke im Projekt-Explorer mit der rechten Maustaste auf "DieseArbeitsmappe" und wähle "Code anzeigen".

  3. Füge den folgenden VBA-Code ein:

    Option Explicit
    
    Sub klexy()
        If Len(ThisWorkbook.Name) = 10 Then
            Application.Dialogs(xlDialogSaveAs).Show Format("Käse ") & Format(Range("A1").Value, "yyyy-mm-dd")
        Else
            ThisWorkbook.Save
        End If
    End Sub
  4. Schließe den VBA-Editor und speichere die Arbeitsmappe als Makro-fähige Datei (.xlsm).

  5. Führe das Makro aus, wenn Du die Datei speichern möchtest.


Häufige Fehler und Lösungen

  • Fehler: Datei wird nicht unter dem gewünschten Namen gespeichert

    • Lösung: Überprüfe, ob in Zelle A1 das aktuelle Datum korrekt eingetragen ist. Das Format muss yyyy-mm-dd sein.
  • Fehler: Makro läuft nicht

    • Lösung: Stelle sicher, dass das Makro in einer Makro-fähigen Excel-Datei gespeichert ist (.xlsm).

Alternative Methoden

Eine alternative Methode ist die Verwendung des Workbook_BeforeSave-Ereignisses. Damit kannst Du das Speichern unter einem bestimmten Namen automatisieren, ohne ein separates Makro auszuführen. Hier ist ein Beispielcode:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim filename As String
    filename = "Outlook_" & Format(Range("A1").Value, "yyyy-mm-dd") & ".xls"

    If SaveAsUI Then
        Application.Dialogs(xlDialogSaveAs).Show filename
        Cancel = True
    End If
End Sub

Praktische Beispiele

  • Beispiel 1: Du möchtest eine tägliche Datei speichern, die den Namen Käse 2023-10-01.xls trägt. Stelle sicher, dass der Code in der klexy-Subroutine korrekt ist und das Datum in A1 steht.

  • Beispiel 2: Wenn Du eine E-Mail mit dem Anhang der gespeicherten Datei versenden möchtest, kannst Du den xlDialogSendMail Dialog im Workbook_BeforeSave-Ereignis verwenden.


Tipps für Profis

  • Achte darauf, dass Du die Variablen im Code klar definierst, um die Lesbarkeit zu erhöhen.
  • Verwende Option Explicit, um sicherzustellen, dass alle Variablen deklariert werden.
  • Teste Deine Makros regelmäßig, um sicherzustellen, dass sie unter verschiedenen Bedingungen funktionieren.

FAQ: Häufige Fragen

1. Frage
Wie kann ich das Makro automatisieren, sodass es beim Schließen der Datei ausgeführt wird?
Antwort: Du kannst das Makro in das Workbook_BeforeClose-Ereignis einfügen, um es beim Schließen der Datei auszuführen.

2. Frage
Welche Excel-Version benötige ich für diese Makros?
Antwort: Die beschriebenen Makros funktionieren in Excel 2003 und späteren Versionen, einschließlich Excel 10.0.

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