Franz hat mir freundlicherweise den folgenden Code zur Verfügung gestellt:
Sub SummenFormelBlatt2()
Dim wks1 As Worksheet, wks2 As Worksheet, Zelle As Range
Dim sZelle1 As String, sBereich2
'Namen der Tabellenblätter ggf. anpassen
Set wks1 = Worksheets("Tabelle1")
Set wks2 = Worksheets("Tabelle2")
With wks1
Set Zelle = .Range("F20") 'Startzelle Blatt 1
'Prüfen, ob Zelle unterhalb Startzelle leer ist
If IsEmpty(Zelle.Offset(1, 0)) Then
'In Zelle F22 steht die Summe
Set Zelle = Zelle.Offset(2, 0)
Else
'Zelle mit Summe = 2 Zeilen unterhlb der letzte Zelle mit Wert _
unterhalb der Startzelle
Set Zelle = Zelle.End(xlDown).Offset(2, 0)
End If
'Blattname mit Zelladresse für Formel _
(Hochkommata erforderlich für Tabellennamen mit Leer- oder Sonderzeichen)
sZelle1 = "'" & .Name & "'!" & Zelle.Address(ReferenceStyle:=xlR1C1)
End With
With wks2
Set Zelle = .Range("H28") 'Startzelle des Bereichs im Blatt 2
'1. Zelle des Bereiches für SUMME-Funktion
sBereich2 = Zelle.Address(ReferenceStyle:=xlR1C1)
'Prüfen, ob Zelle unterhalb Startzelle leer ist
If IsEmpty(Zelle.Offset(1, 0)) Then
'Es gibt nur einen Wert auf Blatt 2
Else
'Letzte Zelle mit Wert unterhalb der Startzelle ermitteln
Set Zelle = Zelle.End(xlDown)
End If
'Bereichs-Adresse um letzteZelle ergänzen
sBereich2 = sBereich2 & ":" & Zelle.Address(ReferenceStyle:=xlR1C1)
'Formel in Blatt 2, Zelle H27 eintragen
.Range("H27").FormulaR1C1 = "=" & sZelle1 & "-SUM(" & sBereich2 & ")"
End With
End Sub
Diesen Code lasse ich am Ende einer UserForm laufen. Jetzt habe ich aber leider festgestellt, dass die Formel in H27 (unten im code) nicht immer das gewünschte Ergebnis liefert. Genaugenommen ist der Summenbereich nicht immer korrekt.
Komisch ist aber auch, dass wenn ich nach der Userform den Code nochmal alleine aktiviere passt alles und die Formel wird korrekt eingefügt.
Weiss jemand woran das liegen kann?
Vielen Dank!
Gruss
T