Nach CommandButton1 und ComboBox2 soll gleicher Code ausgeführt werden
#1
Hallo!

Ich habe das Problem, dass ein Code nur nach der ComboBox2 ausgeführt wird. Nun möchte ich aber, dass dieser gleiche Code auch nach dem CommandButton1 ausgeführt wird. Ich möchte nur sehr ungern den Code kopieren, da er nach hinten etwas länger ist.
Ich hoffe, dass mir jemand helfen kann.

Code:
Private Sub DetailsproMonatMonatJahr_Change()

End Sub

Private Sub CommandButton1_Click()
    Sheets("Auszahlungen").Range("L6").Value = DateSerial(Year(Date), Month(Date), 1)
End Sub

Private Sub UserForm_Activate()

DetailsproMonat.Caption = "Detailinformationen pro Monat"

    Dim lngIndex As Long
    For lngIndex = 1 To 12
        ComboBox1.AddItem lngIndex
    Next lngIndex
    'ComboBox1.ListIndex = 0'
   
    Dim lngIndex2 As Long
    For lngIndex2 = Year(Now) To 2007 Step -1
        ComboBox2.AddItem lngIndex2
    Next lngIndex2
    'ComboBox1.ListIndex = 0'

End Sub

Private Sub ComboBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single)
        Call SetComboBoxHook(ComboBox1)
End Sub

Private Sub ComboBox1_LostFocus()
        Call RemoveComboBoxHook
End Sub
   
Private Sub ComboBox2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single)
        Call SetComboBoxHook(ComboBox2)
End Sub

Private Sub ComboBox2_LostFocus()
        Call RemoveComboBoxHook
End Sub

Private Sub ComboBox2_Change()

    Sheets("Auszahlungen").Range("L6").Value = CDate("1." & ComboBox1.Value & "." & ComboBox2.Value)
    Worksheets("Auszahlungen").Range("IT7").FormulaArray = "=(COUNTIFS(Auszahlungen!C7,"">=""&DATE(YEAR(R6C12),MONTH(R6C12),1),Auszahlungen!C7,""<=""&EOMONTH(DATE(YEAR(R6C12),MONTH(R6C12),DAY(R6C12)),0)))-R7C255"
    Worksheets("Auszahlungen").Range("IU7").FormulaArray = "=SUM(IF(FREQUENCY(IF((Auszahlungen!R9C7:R10000C7>=R7C256)*(Auszahlungen!R9C7:R10000C7<=EOMONTH(R7C256,0)),MATCH(Auszahlungen!R9C1:R10000C1,Auszahlungen!R9C1:R10000C1,0)),ROW(Auszahlungen!R1C1:R10000C1)),1))"
    Worksheets("Auszahlungen").Range("IV7").FormulaR1C1 = "=DATE(YEAR(R6C12),MONTH(R6C12),1)"
   
 
usw.......

End Sub
Excel Version 2016
Antworten Top
#2
Hallo,

Code, der mehrfach ausgeführt werden soll, in eine eigene Prozedur auslagern und im Ereignismakro aufrufen. Etwa so ...

Private Sub ComboBox1_Change()
    Call DEINE_PROZEDUR
End Sub

Private Sub ComboBox2_Change()
    Call DEINE_PROZEDUR
End Sub

Sub DEINE_PROZEDUR()
    'Dein VBA-Code, der für jede Combo-Box ausgeführt werden soll.
    'noch'n Gedicht!
    'etc.
End Sub
Antworten Top
#3
Danke sehr, du hast mir sehr geholfen. Es funktioniert.
Excel Version 2016
Antworten Top


Gehe zu:


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