Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA
#1
Smile 
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. Huh 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  Angel

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


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#2
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.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#3
Hallöchen,

Du hast aber das Makro ...Worksheet_Change... gepostet und nicht das Makro vom Button Automate.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#4
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
Antworten Top
#5
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. Sad
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • Selina1
Antworten Top
#6
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste