AW: Makros programmieren und auf andere Bere
19.03.2020 14:55:37
Regina
Hi, da war mein Code in der Tat etwas zu kurz gesprungen, teste mal so:
Sub Berechnung()
' Berechnung Makro
Dim lng_spalte As Long
Dim obj_wks As Worksheet
Dim str_spalte As String
Set obj_wks = ThisWorkbook.Worksheets("Tabelle1") ' Name anpassen
lng_spalte = 3
With obj_wks
Do Until lng_spalte > .Cells(3, Columns.Count).End(xlToLeft).Column
str_spalte = Split(Cells(1, lng_spalte).Address, "$")(1)
.Cells(3, lng_spalte).FormulaLocal = "=Wenn($B3="""";"""";Wenn(B$3>=" & str_spalte & "$ _
1;1;0))"
.Cells(3, lng_spalte).AutoFill Destination:=Range(.Cells(3, lng_spalte), .Cells(21187, _
lng_spalte))
.Cells(3, lng_spalte).AutoFill Destination:=Range(.Cells(3, lng_spalte), .Cells(3, . _
Cells(3, Columns.Count).End(xlToLeft).Column)), Type:=xlFillDefault
lng_spalte = lng_spalte + 1
.Cells(3, lng_spalte).AutoFill Destination:=Range(.Cells(3, lng_spalte), .Cells(21187, _
lng_spalte))
lng_spalte = lng_spalte + 1
.Cells(3, lng_spalte).AutoFill Destination:=Range(.Cells(3, lng_spalte), .Cells(21187, _
lng_spalte))
lng_spalte = lng_spalte + 1
.Cells(3, lng_spalte).AutoFill Destination:=Range(.Cells(3, lng_spalte), .Cells(21187, _
lng_spalte))
lng_spalte = lng_spalte + 1
.Cells(3, lng_spalte).AutoFill Destination:=Range(.Cells(3, lng_spalte), .Cells(21187, _
lng_spalte))
lng_spalte = lng_spalte + 1
.Cells(3, lng_spalte).AutoFill Destination:=Range(.Cells(3, lng_spalte), .Cells(21187, _
lng_spalte))
lng_spalte = lng_spalte + 1
.Cells(3, lng_spalte).AutoFill Destination:=Range(.Cells(3, lng_spalte), .Cells(21187, _
lng_spalte))
lng_spalte = lng_spalte + 1
.Cells(3, lng_spalte).AutoFill Destination:=Range(.Cells(3, lng_spalte), .Cells(21187, _
lng_spalte))
lng_spalte = lng_spalte + 1
Loop
End With
End Sub
Das ließe sich das auch ohne Funktion realisieren. weiß aber nicht, ob das von der Performance her günstiger wäre.
Gruß Regina