AW: Tabelle mit Makro erweitern
23.08.2014 10:58:59
fcs
Hallo Andi,
eine Beispieldatei mit Dummydaten wäre schon besser gewesen.
Das Makro wird durch die verbundenen Zellen schon komplizierter. Zusätzlich müssen die Summenformeln per Makro angepasst werden, da sich die Zelenbezüge nicht automatisch anpassen.
Achte bei deinen Formeln darauf, dass du die Zellbezüge ggf. absolut setzen muss, wenn du im Tabellenbereich in Formeln Zellen aus dem oberen Tabellenbereich verwendest.
Gruß
Franz
Sub Zeile7_8_Kopieren()
Dim wks As Worksheet
Dim ZeileSumme As Long, lngNr As Long, Zeile As Long
Dim Spalte As Long
Set wks = ActiveSheet
With wks
'Zeile mit Summen ermitteln
Zeile = 7
lngNr = 1
Do Until .Cells(Zeile, 1) = "Summenzeile"
Zeile = Zeile + 2
lngNr = lngNr + 1
Loop
ZeileSumme = Zeile
'Zeilen 7+8 kopieren und oberhalb der Summenzeile einfügen
.Range(.Rows(7), .Rows(8)).Copy
.Rows(ZeileSumme).Insert
ZeileSumme = ZeileSumme + 2
'fortlaufende Nr. eintragen und in Zellen ohne Formel Inhalte löschen
For Spalte = 1 To 25
With .Cells(Zeile, Spalte)
Select Case Spalte
Case 1
.Value = lngNr
Case 2 To 5, 10 To 13, 15 To 17, 19 To 21, 25
'verbundene Zellen
.MergeArea.ClearContents
Case 6 To 8
'2 Zeilen, Zellen nicht verbunden
.ClearContents
.Offset(1, 0).ClearContents
Case 9, 14, 18, 22, 23, 24
'Formeln nicht löschen
End Select
End With
Next
'in Summenzeile die Formeln anpassen
For Spalte = 1 To 25
With .Cells(ZeileSumme, Spalte)
Select Case Spalte
Case 1 To 4
'keine Formel
Case 5 To 7, 9 To 11, 14, 15, 18, 19, 22 To 25
'Summenformel
.FormulaR1C1 = "=SUM(R[" & (-ZeileSumme + 7) & "]C:R[-1]C)"
Case 20
'Sonderformel =WENN((SUMME(T7:T8)-I2)