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

Forumthread: das jeweils letzte Arbeitsblatt kopieren

das jeweils letzte Arbeitsblatt kopieren
31.10.2007 13:10:00
Jürgen
Hallo zusammen,
in einer Arbeitsmappe habe ich drei Arbeitsblätter. Bei Bedarf sollen nun weitere Arbeitsblätter kopiert und eingefügt werden. Das Original für die nächste Kopie ist das jeweils letzte Arbeitsblatt.
Wie bekomme ich diese Kopie hin, ohne dass ich im Makro den Namen des letzten Arbeitsblattes angeben muss, denn der ändert sich ja bei jeder Kopie (Tabelle 1 (4) bis (Tabelle 1 (XX)
Gruß
Jürgen

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Per VBA ? Sheets(Sheets.Count).Copy after:=....
31.10.2007 13:13:16
NoNet
Hallo Jürgen,
ich vermute mal, Du suchst eine VBA Lösung ? Hier die Lösung :
Sheets(Sheets.count).Copy after:=Sheets(sheets.Count)
Gruß, NoNet

AW: Per VBA ? Sheets(Sheets.Count).Copy after:=....
31.10.2007 13:18:00
Jürgen
Genau diese Begrifflichkeit fehlte mir!!
Vielen Dank für deine Mühe

AW: das jeweils letzte Arbeitsblatt kopieren
31.10.2007 13:55:32
Jürgen
erstes Problem gelöst, neues Handicap gefunden :)
Eine Summenbildung wird nicht übernommen, da der Inhalt des neuen Blattes gelöscht wird. Das heißt, ich brauche einen Zellbezug vom neuen Arbeitsblatt auf das jeweils letzte Arbeitsblatt (='Tabelle 1(XX)' O4)
Vielen Dank schon mal im voraus
Jürgen

Anzeige
AW: das jeweils letzte Arbeitsblatt kopieren
31.10.2007 14:05:25
Jürgen
sorry - doppelpost

AW: das jeweils letzte Arbeitsblatt kopieren
31.10.2007 14:04:29
Jürgen
1. Problem gelöst - neues Handicap :)
eine Summenbildung aus dem aktuellen Tabellenblatt wird in das neue nicht übernommen, da in der neuen Kopie der alte Inhalt gelöscht wird. (logisch, das Blatt wird ja neu beschrieben und rechnerisch fortgeführt)
Wie krieg den Zellbezug zum vorherigen Tabellenblatt ohne Namensnennung hin. Die vorige Lösung klappt bei mir in diesem Fall leider nicht.
Gruß
Jürgen
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Letztes Arbeitsblatt in Excel kopieren mit VBA


Schritt-für-Schritt-Anleitung

Um das jeweils letzte Arbeitsblatt in Excel zu kopieren, kannst Du folgendes VBA-Skript verwenden:

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

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Sub LetztesArbeitsblattKopieren()
       Sheets(Sheets.Count).Copy after:=Sheets(Sheets.Count)
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Drücke ALT + F8, wähle LetztesArbeitsblattKopieren und klicke auf Ausführen.

Dieser Code nutzt die Sheets.Count-Funktion, um das letzte Arbeitsblatt zu identifizieren und zu kopieren, ohne dass Du den Namen des Blattes angeben musst.


Häufige Fehler und Lösungen

Problem: Der Zellbezug zum vorherigen Arbeitsblatt wird nicht übernommen.

Lösung: Du kannst den Zellbezug zum letzten Arbeitsblatt dynamisch erstellen. Verwende dazu den folgenden Code:

Sub ZellbezugKopieren()
    Dim letzteTabelle As Worksheet
    Set letzteTabelle = Sheets(Sheets.Count)
    letzteTabelle.Range("O4").Formula = "='" & letzteTabelle.Name & "'!O4"
End Sub

Damit wird der Zellbezug auf das letzte Arbeitsblatt gesetzt, ohne den Namen manuell eingeben zu müssen.


Alternative Methoden

Wenn Du keine VBA-Lösung verwenden möchtest, kannst Du auch manuell vorgehen:

  1. Klicke mit der rechten Maustaste auf das letzte Arbeitsblatt.
  2. Wähle Verschieben oder Kopieren.
  3. Aktiviere das Kästchen Kopie erstellen und klicke auf OK.

Diese Methode ist jedoch weniger effizient, wenn Du häufig neue Arbeitsblätter benötigst.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du den VBA-Code zur Kopie des letzten Arbeitsblattes in eine Routine integrieren kannst:

Sub NeueBlätterErstellen()
    Dim i As Integer
    For i = 1 To 5 ' Erstelle 5 Kopien
        Sheets(Sheets.Count).Copy after:=Sheets(Sheets.Count)
    Next i
End Sub

Dieser Code kopiert das letzte Arbeitsblatt fünf Mal hintereinander.


Tipps für Profis

  • Nutze Application.ScreenUpdating = False, um das Flackern der Anzeige während des Kopiervorgangs zu verhindern. Setze es am Anfang und am Ende Deines Codes:

    Application.ScreenUpdating = False
    ' Dein Code
    Application.ScreenUpdating = True
  • Überlege, wie Du die Uhrzeit oder andere Daten in die neuen Arbeitsblätter einfügen kannst, um eine bessere Nachverfolgbarkeit zu gewährleisten.


FAQ: Häufige Fragen

1. Kann ich den Namen des neuen Arbeitsblattes ändern?
Ja, Du kannst den Namen des neuen Arbeitsblattes direkt nach dem Kopieren ändern, indem Du folgenden Code hinzufügst:

Sheets(Sheets.Count).Name = "NeuerName"

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der VBA-Code sollte in allen modernen Excel-Versionen (Excel 2007 und höher) funktionieren, solange Du Zugriff auf den VBA-Editor hast.

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