habe bereits im Archiv (auch anderer Foren gesucht), aber nicht das Richtige gefunden. Ich möchte über die Anzahl gefüllter Spalten, welche variabel ist, ein Tabellenblatt auf mehrere Blätter aufteilen, wobei je Blatt drei gefüllte Spalten erscheinen sollen.
Im Prinzip in der Art:
Anzahl Spalten (ab Spalte F) geteilt durch 3 = Anzahl neu zu erstellender Blätter
Zur Ermittlung der Anzahl kann die Zeile 8 genutzt werden.
Zur Tabelle:
Die Spalten A:E beinhalten Zeilenbeschriftung, Summe etc., sind also fix.
Die Spalten ab F sind in der Anzahl Variabel.
Viele Zellen weisen Bezüge, auch auf andere Tabellenblätter auf, daher können keine Spalten gelöscht werden oder so.
Meine bisherige Lösung:
Ich kopiere das Ursprungstabellenblatt entsprechend obiger Formel (zurzeit manuell) und blende dann jeweils die nicht interessierenden Spalten aus. Natürlich habe ich hierfür ein Makro, jedoch muss ich dieses jedes Mal an meine Tabelle manuell anpassen. Unten habe ich ein Makrobeispiel für eine Tabelle mit variablen Spalten von F bis Q, also 12 Spalten aufgeführt, die auf 4 Blätter verteilt werden sollen.
Mein Wunsch:
Da die Anzahl der Spalten auch mal 3stellig werden kann, sollte das Makro die Anzahl der variablen Spalten ermitteln, wobei der Wert aufgerundet werden muss (z.B. bei 10 Spalten brauche ich 4 Blätter, wenn max. 3 Spalten je Blatt aufgeführt werden sollen), dann die entsprechende Anzahl Tabellenblätter erstellen, und in diesen die Spalten ausblenden, die in dem jeweiligen Tabellenblatt nicht interessieren oder anders ausgedrückt: in Blatt (2) sollen die Spalten F/G/H, in Blatt (3) I/JK, etc zu sehen sein.
Sub Aufteilung_Tabelle()
' Aufteilung_Tabelle Makro
' Tastenkombination: Strg+t
'Kopieren der Tabellenblätter
Sheets("MErmittlung").Select
Sheets("MErmittlung").Copy After:=Sheets(1)
Sheets("MErmittlung").Select
Sheets("MErmittlung").Copy After:=Sheets(2)
Sheets("MErmittlung").Select
Sheets("MErmittlung").Copy After:=Sheets(3)
Sheets("MErmittlung").Select
Sheets("MErmittlung").Copy After:=Sheets(4)
'entsprechende Spalten im jeweiligen Tabellenblatt ausblenden, Spalten A:E sind fest
Sheets("MErmittlung (2)").Select
Columns("I:Q").Select
Selection.EntireColumn.Hidden = True
Sheets("MErmittlung (3)").Select
Range("F:H,L:Q").Select
Selection.EntireColumn.Hidden = True
Sheets("MErmittlung (4)").Select
Range("F:K,O:Q").Select
Selection.EntireColumn.Hidden = True
Sheets("MErmittlung (5)").Select
Columns("F:N").Select
Selection.EntireColumn.Hidden = True
End Sub
Anbei eine stark vereinfachte Beispieltabelle.https://www.herber.de/bbs/user/70886.xls
Kann mir hierbei jemand helfen?
Mit freundlichen Grüßen
Tobias