13.06.2018, 10:12
Hallo zusammen,
ich hatte mittels einem Button versucht basierend auf verschiedenen Spalten einen Wert zu berechnen. Dabei lautet die Formel "=WENN(Y3<>0; S3*0,9375; S3*1,0714)", welche jedoch abhängig von der jeweiligen Zeile sein soll.
Sub LBProzentrechnen()
Dim Zeile As Integer
Zeile = 3
Set book = ActiveWorkbook
With book.Worksheets("Gehaltsdaten")
While (.Cells(Zeile, 1) <> "")
If (.Cells(Zeile, 25) <> "") Then
.Cells(Zeile, 18).Value = Cells(Zeile, 19) * 0.9375
Else
.Cells(Zeile, 18).Value = Cells(Zeile, 19) * 1.0714
End If
Zeile = Zeile + 1
Wend
End With
End Sub
Jetzt möchte ich jedoch diesen Button ersetzen und die Berechnungen sollen stattdessen automatisch ausgelöst werden, wenn Werte im Datenblatt geändert werden. Dies habe ich mit dem Worksheet_Change-Event versucht und habe dazu den Makrorekorder verwendet, jedoch erhalte ich einen Laufzeit '1004'. Hat jemand eine Idee?
Sub LBProzent_Aufgezeichnet()
'
' LBProzent_Aufgezeichnet Makro
'
'
Range("R3").Select
ActiveCell.FormulaR1C1 = "=IF(RC[7]<>0, RC[1]*0.9375, RC[1]*1.0714)"
Selection.AutoFill Destination:=Range("R3:R800"), Type:=xlFillDefault
End Sub
ich hatte mittels einem Button versucht basierend auf verschiedenen Spalten einen Wert zu berechnen. Dabei lautet die Formel "=WENN(Y3<>0; S3*0,9375; S3*1,0714)", welche jedoch abhängig von der jeweiligen Zeile sein soll.
Sub LBProzentrechnen()
Dim Zeile As Integer
Zeile = 3
Set book = ActiveWorkbook
With book.Worksheets("Gehaltsdaten")
While (.Cells(Zeile, 1) <> "")
If (.Cells(Zeile, 25) <> "") Then
.Cells(Zeile, 18).Value = Cells(Zeile, 19) * 0.9375
Else
.Cells(Zeile, 18).Value = Cells(Zeile, 19) * 1.0714
End If
Zeile = Zeile + 1
Wend
End With
End Sub
Jetzt möchte ich jedoch diesen Button ersetzen und die Berechnungen sollen stattdessen automatisch ausgelöst werden, wenn Werte im Datenblatt geändert werden. Dies habe ich mit dem Worksheet_Change-Event versucht und habe dazu den Makrorekorder verwendet, jedoch erhalte ich einen Laufzeit '1004'. Hat jemand eine Idee?
Sub LBProzent_Aufgezeichnet()
'
' LBProzent_Aufgezeichnet Makro
'
'
Range("R3").Select
ActiveCell.FormulaR1C1 = "=IF(RC[7]<>0, RC[1]*0.9375, RC[1]*1.0714)"
Selection.AutoFill Destination:=Range("R3:R800"), Type:=xlFillDefault
End Sub