Hallo,
ich habe einen VBA code erstellt und diesen mit eine Command Button verbunden. Nach eingabe meiner Parameter und betätigen des Buttons passiert aber nichts. Wenn ich in der Debugger-Umgebung den Quellcode in einzelnen Schritten durchlaufen lasse und am Ende des Programms angelangt bin, ist in meinem Exceltabellenblatt die gewünschte Berechnung als ergebnis dargestellt. Meine Frage lautet:
Warum läuft das Makro nicht, wenn ich es (wie gewollt) über einen Button aktiviere, aber wenn ich den Quellcode in Einzelschritten durchlaufen lasse dann funktioniert es schon (spuckt werte aus)??
Quellcode
Sub Calculate()
Dim a As Double
Dim b As Double
Dim c As Double
Dim d As Double
Dim e As Double
Worksheets("Zeitbeiwert").Range("L9").Value = Worksheets("Berechnung von QR").Range("B12").Value
Worksheets("Zeitbeiwert").Range("L11").Value = Worksheets("Berechnung von QR").Range("E12").Value
Worksheets("Abflussbeiwert").Range("C23").Value = Worksheets("Berechnung von QR").Range("B17").Value
Worksheets("Abflussbeiwert").Range("C25").Value = Worksheets("Berechnung von QR").Range("I5").Value
a = Worksheets("Berechnung von QR").Cells(17, 5)
If a < 1 Then
b = Application.WorksheetFunction.Index(Range("Zeitbeiwert!B4:J48"), Application.WorksheetFunction.Match(Range("Zeitbeiwert!L9"), Range("Zeitbeiwert!A4:A48"), 0), Application.WorksheetFunction.Match(Range("Zeitbeiwert!L11"), Range("Zeitbeiwert!B3:J3"), 0))
c = Application.WorksheetFunction.Index(Range("Abflussbeiwert!B7:E17"), Application.WorksheetFunction.Match(Range("Abflussbeiwert!C23"), Range("Abflussbeiwert!A7:A17"), 0), Application.WorksheetFunction.Match(Range("Abflussbeiwert!C25"), Range("Abflussbeiwert!B6:E6"), 0))
d = Worksheets("Berechnung von QR").Cells(5, 9) * b * c * Worksheets("Berechnung von QR").Cells(12, 8)
e = Worksheets("Berechnung von QR").Cells(5, 9) * b
Debug.Print c
Debug.Print d
Debug.Print e
Worksheets("Berechnung von QR").Cells(22, 8).Value = c
Worksheets("Berechnung von QR").Cells(22, 2).Value = d
Worksheets("Berechnung von QR").Cells(22, 5).Value = e
End If
If a >= 1 And a <= 4 Then
b = Application.WorksheetFunction.Index(Range("Zeitbeiwert!B4:J48"), Application.WorksheetFunction.Match(Range("Zeitbeiwert!L9"), Range("Zeitbeiwert!A4:A48"), 0), Application.WorksheetFunction.Match(Range("Zeitbeiwert!L11"), Range("Zeitbeiwert!B3:J3"), 0))
c = Application.WorksheetFunction.Index(Range("Abflussbeiwert!F7:I17"), Application.WorksheetFunction.Match(Range("Abflussbeiwert!C23"), Range("Abflussbeiwert!A7:A17"), 0), Application.WorksheetFunction.Match(Range("Abflussbeiwert!C25"), Range("Abflussbeiwert!F6:I6"), 0))
d = Worksheets("Berechnung von QR").Cells(5, 9) * b * c * Worksheets("Berechnung von QR").Cells(12, 8)
e = Worksheets("Berechnung von QR").Cells(5, 9) * b
Debug.Print c
Debug.Print d
Debug.Print e
Worksheets("Berechnung von QR").Cells(22, 8).Value = c
Worksheets("Berechnung von QR").Cells(22, 2).Value = d
Worksheets("Berechnung von QR").Cells(22, 5).Value = e
End If
If a > 4 And a <= 10 Then
b = Application.WorksheetFunction.Index(Range("Zeitbeiwert!B4:J48"), Application.WorksheetFunction.Match(Range("Zeitbeiwert!L9"), Range("Zeitbeiwert!A4:A48"), 0), Application.WorksheetFunction.Match(Range("Zeitbeiwert!L11"), Range("Zeitbeiwert!B3:J3"), 0))
c = Application.WorksheetFunction.Index(Range("Abflussbeiwert!J7:M17"), Application.WorksheetFunction.Match(Range("Abflussbeiwert!C23"), Range("Abflussbeiwert!A7:A17"), 0), Application.WorksheetFunction.Match(Range("Abflussbeiwert!C25"), Range("Abflussbeiwert!J6:M6"), 0))
d = Worksheets("Berechnung von QR").Cells(5, 9) * b * c * Worksheets("Berechnung von QR").Cells(12, 8)
e = Worksheets("Berechnung von QR").Cells(5, 9) * b
Debug.Print c
Debug.Print d
Debug.Print e
Worksheets("Berechnung von QR").Cells(22, 8).Value = c
Worksheets("Berechnung von QR").Cells(22, 2).Value = d
Worksheets("Berechnung von QR").Cells(22, 5).Value = e
End If
If a > 10 Then
b = Application.WorksheetFunction.Index(Range("Zeitbeiwert!B4:J48"), Application.WorksheetFunction.Match(Range("Zeitbeiwert!L9"), Range("Zeitbeiwert!A4:A48"), 0), Application.WorksheetFunction.Match(Range("Zeitbeiwert!L11"), Range("Zeitbeiwert!B3:J3"), 0))
c = Application.WorksheetFunction.Index(Range("Abflussbeiwert!N7:Q17"), Application.WorksheetFunction.Match(Range("Abflussbeiwert!C23"), Range("Abflussbeiwert!A7:A17"), 0), Application.WorksheetFunction.Match(Range("Abflussbeiwert!C25"), Range("Abflussbeiwert!N6:Q6"), 0))
d = Worksheets("Berechnung von QR").Cells(5, 9) * b * c * Worksheets("Berechnung von QR").Cells(12, 8)
e = Worksheets("Berechnung von QR").Cells(5, 9) * b
Debug.Print c
Debug.Print d
Debug.Print e
Worksheets("Berechnung von QR").Cells(22, 8).Value = c
Worksheets("Berechnung von QR").Cells(22, 2).Value = d
Worksheets("Berechnung von QR").Cells(22, 5).Value = e
End If
End Sub
Besten Dank im voraus ....
Mfg Christian