Arbeitsblätter kopieren
#1
Hallo,

folgender Anwendungsfall:

Ich habe eine Exceltabelle mit einer Zusammenfassung und einem Berechnungsblatt.

Das Berechnungsblatt wird mittels Makro immer automatisch nach einer bestimmten Zelle (B8) benannt.

Nun möchte ich ebenfalls per Makro neue Berechnungsblätter hinzukopieren.

Weil das ursprüngliche Berechnungsblatt jedoch je nach Art der Berechnung unterschiedliche Benennungen haben wird, weiß ich nicht, wie das Makro aussehen muss.

Außerdem will ich erreichen, dass bestimmte Werte und Angaben aus den jeweiligen Berechnungsblättern automatisch in der Zusammenfassung auftauchen und mitberechnet werden.

Kann mir da jemand helfen?
Top
#2
Hi,

(15.03.2017, 11:15)Leini schrieb: Nun möchte ich ebenfalls per Makro neue Berechnungsblätter hinzukopieren.

Weil das ursprüngliche Berechnungsblatt jedoch je nach Art der Berechnung unterschiedliche Benennungen haben wird, weiß ich nicht, wie das Makro aussehen muss.

per Makro bedeutet mit einem Button?

Frage 1:
In jedem Blatt einen Button einfügen und dem dieses Makro zuweisen
Option Explicit

Sub Makro1()
   ' 
   ' Makro1 Makro 
   ' 
   
   ' 
   ActiveSheet.Copy Before:=Sheets(4)
End Sub
Top
#3
Genau, mit einem Button!

Muss ich diesen Button in jedes hinzugefügte Tabellenblatt manuell einfügen?

Eigentlich sollte der Button auf dem Tabellenblatt Zusammenfassung sein. Ist das möglicherweise das Problem?
Top
#4
Hi,

(15.03.2017, 11:36)Leini schrieb: Muss ich diesen Button in jedes hinzugefügte Tabellenblatt manuell einfügen?

Eigentlich sollte der Button auf dem Tabellenblatt Zusammenfassung sein. Ist das möglicherweise das Problem?

woher weiß Excel dann, welches Blatt kopiert werden soll?
Top
#5
Ich stelle mir es so vor, dass auf dem Tabellenblatt "Zusammenfassung" ein Button sitzt, der auf das erste vorhandene Berechnungsblatt zugreift und dieses immer wieder - mit allen Formeln und eigenen Makros - kopiert.
Top
#6
Hi,

(15.03.2017, 14:06)Leini schrieb: Ich stelle mir es so vor, dass auf dem Tabellenblatt "Zusammenfassung" ein Button sitzt, der auf das erste vorhandene Berechnungsblatt zugreift und dieses immer wieder - mit allen Formeln und eigenen Makros - kopiert.

dann schreibe anstelle von
ActiveSheet
in das Makro
Worksheets("der Name des ersten Berechnungsblattes oder der Vorlage")
oder
Sheets("der Name des ersten Berechnungsblattes oder der Vorlage")


Ich weiß grad nicht, welcher Befehl der richtige ist.
Top
#7
Aber der Name dieses ersten Berechnungsblattes ändert sich ja, weil aus der "Tabelle1" mittels Auswahlfeldern eine Neubennung erfolgt. Das ist ja mein Problem.
Top
#8
Aber es geht jedenfalls mit "Worksheets"!

Ich müsste wegen der Notwendigkeit, die erstellten Kopien immer wieder umzubenennen, vielleicht eine Kopiervorlage erstellen, die ich ansonsten nicht anrühre und die quasi nur zum Kopieren da ist, oder?

Und dann habe ich noch das Problem, dass, wenn ich beispielsweise eine in der Arbeitsmappe befindliche Grafik dem Makro zuweise, diese eine Fehlermeldung anzeigt, wenn ich das Makro aus einem kopierten Tabellenblatt heraus ausführen will.
Top
#9
Hi,

(15.03.2017, 14:51)Leini schrieb: Aber der Name dieses ersten Berechnungsblattes ändert sich ja, weil aus der "Tabelle1" mittels Auswahlfeldern eine Neubennung erfolgt. Das ist ja mein Problem.

Woher weiß Excel, welchen Namen das "erste" Berechnungsblatt ist?
Darum wollte ich es ursprünglich mit einem Button auf jeder Tabelle und dem "ActiveSheet" lösen.

Dann erstelle Dir eine Vorlage, die Du "Vorlage" nennst und verwende immer die zum kopieren. Darum habe ich ja im letzten Beitrag "oder der Vorlage geschrieben.

Oder Du könntest vielleicht anstatt Worksheets(Vorlage) dann auch Sheets(2) nehmen, wenn das erste Berechnungsblatt immer das 1. nach der Übersicht ist, also:
Sheets(2).Copy Before:=Sheets(2)
Top
#10
Hi,

(15.03.2017, 15:12)Leini schrieb: Und dann habe ich noch das Problem, dass, wenn ich beispielsweise eine in der Arbeitsmappe befindliche Grafik dem Makro zuweise, diese eine Fehlermeldung anzeigt, wenn ich das Makro aus einem kopierten Tabellenblatt heraus ausführen will.

das Makro, das der Grafik zugewiesen wird, darf nicht hinter dem Tabellenblatt, sondern muß in einem allgemeinen Modul stehen.

Denn im Aufruf des Makros steht immer auch der Name des Tabellenblattes, bei einem allgemeinen Modul nicht.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste