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

Forumthread: Neue, aktive Datei umbenennen

Neue, aktive Datei umbenennen
13.06.2016 16:25:18
Dieter(Drummer)
Guten Tag, VBA Spezialisten,
mit diesem Code erzeuge ich eine neue Datei, der auch funktioniert:
  • 
    Sub NeuMappe()
    Dim wkbNeu As Workbook
    Set wkbNeu = Workbooks.Add
    wkbNeu.SaveAs "C:\Test\Maximilian.xls"
    End Sub
    

  • Diese erzeugte Datei, jetzt aktive Datei, soll umbennat werden und es kommt ein Fehler:(ActiveWorkbook.SaveAs NewName) im Code:
  • 
    Sub DateiUmbenennen()
    Dim NewName As String, OldName As String
    NewName = InputBox("Bitte neuen Dateinamen eingeben", "Datei umbenennen")   'Neuer  _
    Dateiname
    OldName = ActiveWorkbook.FullName   'Aktueller Dateiname + Pfad
    If NewName = "" Then Exit 
    
    
    Sub   'Laufzeitfehler verhindern indem überprüft wird, ob NewName ein Zeichen enthält
     ActiveWorkbook.SaveAs NewName   'Datei unter NewName speichern
    'Kill Dir(OldName)   'Alte Datei löschen
    End Sub
    


  • Ideal wäre, beide Codes zu einem verkürzen. Mit Eingabe in Inputbox wird z.B. der Name "Maxi.xlsm" eingegeben. Kann der Fehler durch ".xlsm" enstehen? Wie kann ich ihn dann beheben?
    Gruß und Dank für evtl. Hilfe,
    Dieter(Drummer)

    Anzeige

    11
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Neue, aktive Datei umbenennen
    13.06.2016 16:56:42
    Fennek
    Hallo,
    versuche diesen Code:
    
    Sub test()
    Dim WB As Workbook
    Application.DisplayAlerts = False
    sPath = "c:\temp\"
    Nn = InputBox("Dateiname")
    Set WB = Workbooks.Add
    Cells(1, 1) = "A"
    WB.SaveAs sPath & Nn & ".xlsx"
    WB.SaveCopyAs sPath & Nn & "2" & ".xlsx"
    Application.DisplayAlerts = True
    End Sub
    
    mfg

    Anzeige
    AW: Es wird ein Fehler angezeigt ...
    13.06.2016 17:18:02
    Dieter(Drummer)
    Danke Fennek für Hilfe.
    Es wird ein Fehler angezeigt: "sPath =", Fehler beim kompilieren, Variable nicht definiert".
    Was ist falsch?
    Gruß, Dieter(Drummer)

    AW: Es wird ein Fehler angezeigt ...
    13.06.2016 17:19:42
    Fennek
    Hallo,
    Sub test()
    Dim WB As Workbook
    Application.DisplayAlerts = False
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  sPath = "c:\temp\"
    Nn = InputBox("Dateiname")
    Set WB = Workbooks.Add
    Cells(1, 1) = "A"
    WB.SaveAs sPath & Nn & ".xlsx"
    WB.SaveCopyAs sPath & Nn & "2" & ".xlsx"
    Application.DisplayAlerts = True
    End Sub
    

    Anzeige
    AW: Es wird ein Fehler angezeigt ...
    13.06.2016 17:28:52
    Dieter(Drummer)
    ... ich habe nichts an deinem Makro geändert und der Fehler ist unverändert da!
    So ist dein Makro drin:
    Sub test()
    Dim WB As Workbook
    Application.DisplayAlerts = False
    sPath = "c:\temp\"
    Nn = InputBox("Dateiname")
    Set WB = Workbooks.Add
    Cells(1, 1) = "A"
    WB.SaveAs sPath & Nn & ".xlsx"
    WB.SaveCopyAs sPath & Nn & "2" & ".xlsx"
    Application.DisplayAlerts = True
    End Sub
    

    Gruß, Dieter(Drummer)

    Anzeige
    AW: gibt es ...
    13.06.2016 17:33:24
    Fennek
    Hallo,
    gibt es auf deinem PC den Pfad "c:\temp\"?
    mfg
    oder nutzt du Mac?

    AW: ja, gibt es ...
    13.06.2016 17:42:30
    Dieter(Drummer)
    ... den Pfad c:\temp gibt es und ich habe keinen Mac. Selbst wenn ich einen anderen Pfad, z.B. c:\test\ einsetze, kommt der Fehler.
    Gruß, Dieter(Drummer)

    AW: Musste DIM Anweisung rein ... aber ...
    13.06.2016 18:12:26
    Dieter(Drummer)
    ... nun wird "Nn" angemeckert und da fehlt wohl auch eine DIM Anweisung rein, aber wie muss sie deklariert werden?
    Makro bis jetzt so:
    Sub test()
    Dim sPath As String
    Dim WB As Workbook
    Application.DisplayAlerts = False
    sPath = "c:\temp\"
    Nn = InputBox("Dateiname")
    Set WB = Workbooks.Add
    Cells(1, 1) = "A"
    WB.SaveAs sPath & Nn & ".xlsx"
    WB.SaveCopyAs sPath & Nn & "2" & ".xlsx"
    Application.DisplayAlerts = True
    End Sub
    

    Noch eine Idee?
    Gruß, Dieter(Drummer)

    Anzeige
    Dim,Dim,D... nach ca.20 Jahren ..so eine Frage...
    13.06.2016 19:38:19
    robert
    owT

    AW: Fennek, habe es schon geschafft ...
    13.06.2016 18:16:34
    Dieter(Drummer)
    ... natürlich mit deiner Hilfe und Makro. Vielen Dank!
    Noch einen schönen Abend und
    Gruß, Dieter(Drummer)
    Makro jetzt so und funktioniert:
    Sub test()
    Dim Nn As String
    Dim sPath As String
    Dim WB As Workbook
    Application.DisplayAlerts = False
    sPath = "c:\temp\"
    Nn = InputBox("Dateiname")
    Set WB = Workbooks.Add
    Cells(1, 1) = "A"
    WB.SaveAs sPath & Nn & ".xlsx"
    WB.SaveCopyAs sPath & Nn & "2" & ".xlsx"
    Application.DisplayAlerts = True
    End Sub
    

    Anzeige
    AW: Fennek, habe es schon geschafft ...
    13.06.2016 21:54:29
    Fennek
    da wa wohl "Option explicit" gesetzt.
    Wenn man das macht, sollte man auch die Wirkung kennen.
    M.M. nach lohnt es nur bei größeren Code, bei kleinen kann man auch so den Überblick behalten. Genauso, wie ein Auto nicht nötig ist, zum 50m entfernten Briefkasten zu gehen.
    mfg

    Anzeige
    AW: Danke Fennek, für den Hinweis ...
    14.06.2016 08:40:57
    Dieter(Drummer)
    ... hier ist auch ein Code (inkl. Option Explicit), der auch funktioniert, den ich mir selbst gestrickt habe. Dein Code gefällt mir aber besser, da er eine Inputbox beinhaltet. Danke nochmal für deine Hilfe und Geduld.
    Gruß, Dieter(Drummer)
    Sub NeuMappe() 'Mx
    Dim wkbNeu As Workbook
    Set wkbNeu = Workbooks.Add
    wkbNeu.SaveAs "C:\Test\NeueDatei.xls"
    If MsgBox(ActiveWorkbook.FullName & ":" & vbCr & "Diese aktive Datei wirklich umbenennen?", _
    vbYesNo) = vbYes Then
    Workbooks.Open Filename:="C:\test\NeueDatei.xls"
    ActiveWorkbook.SaveAs Filename:="C:\test\MaxiDatei.xlsm", FileFormat:= _
    xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    End If
    End Sub
    

    Anzeige
    ;

    Forumthreads zu verwandten Themen

    Anzeige
    Anzeige
    Anzeige
    Anzeige

    Infobox / Tutorial

    Neue, aktive Excel-Datei umbenennen


    Schritt-für-Schritt-Anleitung

    Um eine neue, aktive Excel-Datei umzubenennen, kannst du den folgenden VBA-Code verwenden. Dieser Code kombiniert die Erstellung einer neuen Datei und das Umbenennen in einem Schritt:

    Sub NeuMappe()
        Dim wkbNeu As Workbook
        Dim NewName As String
        Dim sPath As String
    
        sPath = "C:\Test\" ' Stelle sicher, dass dieser Pfad existiert
        NewName = InputBox("Bitte neuen Dateinamen eingeben", "Datei umbenennen") ' Neuer Dateiname
    
        Set wkbNeu = Workbooks.Add
        wkbNeu.SaveAs sPath & NewName & ".xlsm" ' Speichern unter neuem Namen
    End Sub

    Verwende diesen Code, um die Excel-Datei zu erstellen und gleichzeitig den gewünschten Namen festzulegen. Achte darauf, dass der Dateipfad existiert, um Fehler zu vermeiden.


    Häufige Fehler und Lösungen

    1. Fehler: "Variable nicht definiert"
      Ursache: Eine nicht deklarierte Variable wie sPath oder Nn.
      Lösung: Stelle sicher, dass alle Variablen mit Dim deklariert werden. Beispiel:

      Dim sPath As String
      Dim Nn As String
    2. Fehler: Laufzeitfehler beim Umbenennen
      Ursache: Der Dateiname in der InputBox könnte ungültige Zeichen enthalten.
      Lösung: Überprüfe den eingegebenen Dateinamen auf unerlaubte Zeichen und informiere den Benutzer, falls nötig.

    3. Fehler: Datei kann nicht gefunden werden
      Ursache: Der angegebene Pfad existiert nicht.
      Lösung: Stelle sicher, dass der Pfad korrekt ist und die Datei dort gespeichert werden kann.


    Alternative Methoden

    Wenn du keine VBA-Makros verwenden möchtest, kannst du die Datei auch manuell umbenennen:

    1. Speichere die Datei über das Menü Datei > Speichern unter.
    2. Wähle den gewünschten Speicherort und gib den neuen Dateinamen ein.

    Mit dieser Methode kannst du ebenfalls den Dateityp auswählen, z.B. .xlsm für makrofähige Dateien.


    Praktische Beispiele

    Hier sind einige Beispiele, wie du deine Excel-Dateien umbenennen kannst:

    Beispiel 1: Einfache Umbenennung

    Sub DateiUmbenennen()
        Dim NewName As String
        NewName = InputBox("Bitte neuen Dateinamen eingeben", "Datei umbenennen")
        ActiveWorkbook.SaveAs NewName
    End Sub

    Beispiel 2: Umbenennen mit Bestätigung

    Sub BestätigungUmbenennen()
        Dim NewName As String
        NewName = InputBox("Bitte neuen Dateinamen eingeben", "Datei umbenennen")
    
        If MsgBox("Möchten Sie die Datei wirklich umbenennen?", vbYesNo) = vbYes Then
            ActiveWorkbook.SaveAs NewName
        End If
    End Sub

    Tipps für Profis

    • Verwende Option Explicit: Dies zwingt dich, alle Variablen zu deklarieren, was Fehler im Code verringert.
    • Fehlerbehandlung einfügen: Implementiere On Error Resume Next und On Error GoTo 0, um mögliche Laufzeitfehler abzufangen und besser zu steuern.
    • Automatisierung: Kombiniere mehrere VBA-Skripte, um wiederkehrende Aufgaben zu automatisieren, wie das Umbenennen mehrerer Dateien in einem Rutsch.

    FAQ: Häufige Fragen

    1. Wie kann ich mehrere Excel-Dateien umbenennen?
    Du kannst eine Schleife in VBA verwenden, um durch alle geöffneten Arbeitsmappen zu iterieren und sie umzubenennen.

    2. Was passiert, wenn ich einen bereits existierenden Dateinamen verwende?
    Der Code wird einen Fehler ausgeben, da Excel nicht zulässt, dass zwei Dateien denselben Namen im selben Speicherort haben. Stelle sicher, dass der neue Dateiname einzigartig ist.

    3. Kann ich das Makro anpassen, um die Datei im .xlsx-Format zu speichern?
    Ja, ändere einfach die Dateiendung im SaveAs-Befehl:

    WB.SaveAs sPath & NewName & ".xlsx"

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige