Hallo liebe Excel-Community
Ich hab ein Problemchen und werde irgendwie nicht schlau daraus.
In meinem Excel-Sheet steht bei D2 die Zahl 23. Nun, wenn ich die Zahl z.B. auf 45 ändere und das Makro starte ( indem ich auf den Button "Automate" klicke) wird wieder die Zahl 23 genommen, anstatt 45.
Ich versteh nicht, wie das sein kann.
Das sollte der wesentliche Teil des Codes sein, falls jemand mehr Infos benötigt, stelle ich den ganzen Code ins Forum oder per PM, wie auch immer.
Anbei der dazugehörige Code und einen PScreen vom Excel-Sheet. Die betreffende Zelle "D2" ist orange markiert
Bin dankbar für jede Hilfe!
Lg Selina
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, b As Long, ArrR As Variant
On Error GoTo Fehler
Application.EnableEvents = False
Application.ScreenUpdating = False
If Target.Address = "$D$2" Then
b = Target.Value
ReDim ArrR(1 To b, 0)
Range("AE6:AE2000").ClearContents
For i = 1 To b
Range("D2").Value = i
ArrR(i, 0) = Range("N1").Value
Next i
Range("AE6").Resize(b).Value = ArrR
End If
Fehler:
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Hallo,
auf welchen Button Automate klickst Du? Das ist ein Ereignismakro, das wird in dem Fall gestartet, wenn eine Zelländerung gemacht wird. Das Makro muss dazu im Klassenmodul der Tabelle stehen.
Hallöchen,
Du hast aber das Makro ...Worksheet_Change... gepostet und nicht das Makro vom Button Automate.
Danke für deine Antwort Stefan.
Ich poste kurz den ganzen Code rein.
Auf meinem Attachment ist der Button Automate ersichtlich ;)
LG
Code:
Private Sub CommandButton1_Click()
Dim i As Long
For i = 1 To Range("B3")
Call Step1_18
Call Step2_18
Call Step3_18
Call Step4_50
Next i
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
For i = 6 To Range("D2").Value
Cells(i, 20).Value = Application.WorksheetFunction.Average(Range("F6:F" & i))
Next i
End Sub
Private Sub CommandButton3_Click()
Dim i As Long
For i = 6 To Range("D2").Value
Cells(i, 22).Value = Application.WorksheetFunction.Max(Range("H6:H" & i))
Next i
End Sub
Private Sub CommandButton4_Click()
Dim i As Long
For i = 6 To Range("D2").Value
Cells(i, 24).Value = Application.WorksheetFunction.StDevP(Range("F5:F" & i))
Next i
End Sub
Private Sub CommandButton5_Click()
ThisWorkbook.Worksheets("sheet1").Activate
Dim i As Long
For i = 7 To Range("D2").Value
Cells(i, 6).Formula = "=E" & i + 0 & "/E" & i - 1 & " -1"
Next i
End Sub
Private Sub CommandButton6_Click()
ThisWorkbook.Worksheets("sheet1").Activate
Dim i As Long
For i = 8 To Range("D2").Value
Cells(i, 27).Formula = "=E" & i + 0 & "/E" & i - 1 & " -1"
Cells(i, 29).Formula = "=AA" & i + 0 & "-AB" & i + 0
Cells(i, 30).Formula = "=AC" & i + 0 & "+AD" & i - 1
Cells(i, 31).Value = Application.WorksheetFunction.Max(Range("AD8:AD" & i))
Cells(i, 32).Value = Application.WorksheetFunction.Min(Range("AD8:AD" & i))
Cells(i, 33).Formula = "=AE" & i + 0 & "-AF" & i + 0
Cells(i, 34).Value = Application.WorksheetFunction.StDevP(Range("AA8:AA" & i))
Cells(i, 35).Formula = "=AG" & i + 0 & "/AH" & i + 0
Next i
End Sub
Private Sub CommandButton7_Click()
Dim i As Long
For i = 6 To Range("D1").Value
Cells(i, 28).Value = Application.WorksheetFunction.Average(Range("AA6:AA" & i))
Next i
End Sub
Private Sub CommandButton8_Click()
Call Step1_18
Call Step2_18
Call Step3_18
Call Step4_50
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, b As Long, ArrR As Variant
On Error GoTo Fehler
Application.EnableEvents = False
Application.ScreenUpdating = False
If Target.Address = "$D$2" Then
b = Target.Value
ReDim ArrR(1 To b, 0)
Range("AE6:AE2000").ClearContents
For i = 1 To b
Range("D2").Value = i
ArrR(i, 0) = Range("N1").Value
Next i
Range("AE6").Resize(b).Value = ArrR
End If
Fehler:
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Sub MakroRepetition()
Dim i As Long
For i = 1 To Range("B3")
Call Step1_25
Call Step2_25
Call Step3_25
Call Step4_25
Next i
End Sub
Hallo Schauan,
mit dem Button "Automate" werden einige andere Makros ausgelöst, sorry für die Unklarheit meinerseits.
LG Selina
Anbei der Code für Automate
Code:
Private Sub CommandButton1_Click()
Dim i As Long
For i = 1 To Range("B3")
Call Step1_18
Call Step2_18
Call Step3_18
Call Step4_50
Next i
End Sub
Hallo Selina,
du hast jetzt 5 CommandButton_Click-Codes gepostet, mal abgesehen davon, welcher der Automate ist, fiel mir auf in keinen dieser Code hast Du die Ereignisse abgeschaltet was zum Auslösen des Change-Ereignis führt.
Nachtrag: Irgendwie blöd, wenn Du deinen Beitrag ändert, während man schreibt.
Hallo Stefan,
hab den Fehler herausgefunden :21: nach einer gefühlten Ewigkeit.
Danke für Deine Bemühungen.
Ja, ich weiss, ist einbisschen unübersichtlich....
Das Problem lag daran, dass sich der Wert in D2 nicht automatisch ändern lässt, da dieser direkt an eine weiteres Marko meinerseits gekoppelt ist und ich nur in diesem Makro den Wert ändern kann, auf jeden Fall muss ich mir das für die Zukunft aufschreiben. (Step1_18 Makro war das "Problem")
Allen Helfern einen schönen Abend.
LG