Hallo zusammen,
ich möchte Formeln per VBA erstellen und habe dazu folgenden Code gebastelt:
Sub Berechnung_Balldifferenz()
Dim n1 As Integer, n2 As Integer
Dim ZielCol As Integer, DistanzCol As Integer
' berechnet die Balldifferenz im Allgemeinen
Range("Ziel.Anfangspunkt").Value = "Bälle Differenz Allgemein"
DistanzCol = Range("Quelle.Ausgangspunkt").Column - Range("Ziel.Anfangspunkt").Column
' DistanzCol = -51
For n1 = 1 To Range("Anzahl.Feld").Value / 2
For n2 = 0 To (Range("Anzahl.SpieleSatz").Value * 2) * (Range("Anzahl.Begegnungen").Value) - 1
If WorksheetFunction.IsEven(n2) = True Then
ZielCol = DistanzCol - 1
Range("Ziel.Anfangspunkt").Offset(n1, n2).FormulaR1C1 = "=RC[-51]-RC[-50]"
' ZielCol = -50
Else
ZielCol = DistanzCol + 1
Range("Ziel.Anfangspunkt").Offset(n1, n2).FormulaR1C1 = "=RC[-51]-RC[-52]"
' ZielCol = -52
End If
Next n2
Next n1
' richtet die Spaltenbreite ein
For n1 = 0 To (Range("Anzahl.SpieleSatz").Value * 2) * (Range("Anzahl.Begegnungen").Value) - 1
Columns(Range("Ziel.Anfangspunkt").Column + n1).ColumnWidth = 2.86
Next n1
End Sub
Das Ergebnis ist soweit in Ordnung.
Allerdings bin ich damit nicht flexibel. Sobald ich eine Spalte einfüge oder entferne, liefert die Formel falsche Ergebnisse.
Wie kann ich die Formel so aufbauen, dass sie flexibel ist?