Microsoft Excel

Herbers Excel/VBA-Archiv

Wie 2 Ereignisse ...

Betrifft: Wie 2 Ereignisse ... von: walter
Geschrieben am: 04.11.2012 19:09:08

Guten Abend,
wie kann man 2 Ereignisse unterbringen ?

Private Sub Worksheet_Change(ByVal Target As Range)

Hier meine Wünsche/Makro:
Private Sub Worksheet_Change(ByVal Target As Range)
'------ das 1. --------------------------------
Dim rngRange As Range
Set rngRange = Intersect(Range("V4:V" & Rows.Count), Target)
If rngRange Is Nothing Then Exit Sub
Application.EnableEvents = False
    rngRange.Offset(0, -2).FormulaR1C1 = "=IF(RC2<>"""",TODAY(),"""")"
    rngRange.Offset(0, -2).Value = rngRange.Offset(0, -2).Value
Application.EnableEvents = True

'-------- das 2. -------------------------------
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("AA:AA")) Is Nothing Then
   Application.EnableEvents = False
   With Target
        'Wenn - an 2.Stelle:
If Mid(.Text, 2, 1) = "-" Then
            .Value = Application.WorksheetFunction.Substitute(Application.WorksheetFunction. _
Substitute(Target, "-", ""), " ", "")
            .NumberFormat = "0 ""-"" 000 00000"
        'Wenn Eingabe mit 06 beginnt:
       ' ElseIf Left(.Text, 2) = "06" Then
       ' ElseIf Left(.Text, 2) = "06" Or Left(.Text, 1) = "6" Then  
       ElseIf Left(.Text, 2) = "00" Or Left(.Text, 1) >= "0" Then
           
            .Value = Application.WorksheetFunction.Substitute(Target, " ", "")
            .NumberFormat = "00 000 00000"      'so stand es
        End If
    End With
    Application.EnableEvents = True
End If
End Sub
mfg walter

  

Betrifft: AW: Wie 2 Ereignisse ... von: Hajo_Zi
Geschrieben am: 04.11.2012 19:18:32

Hallo Walter,

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    '------ das 1. --------------------------------
    Dim rngRange As Range
    Set rngRange = Intersect(Range("V4:V" & Rows.Count), Target)
    If Not rngRange Is Nothing Then
        Application.EnableEvents = False
        rngRange.Offset(0, -2).FormulaR1C1 = "=IF(RC2<>"""",TODAY(),"""")"
        rngRange.Offset(0, -2).Value = rngRange.Offset(0, -2).Value
        Application.EnableEvents = True
    End If
    '-------- das 2. -------------------------------
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("AA:AA")) Is Nothing Then
        Application.EnableEvents = False
        With Target
'Wenn - an 2.Stelle:
            If Mid(.Text, 2, 1) = "-" Then
                .Value = Application.WorksheetFunction.Substitute(Application.WorksheetFunction. _
 _
                    Substitute(Target, "-", ""), " ", "")
                .NumberFormat = "0 ""-"" 000 00000"
'Wenn Eingabe mit 06 beginnt:
                ' ElseIf Left(.Text, 2) = "06" Then
                ' ElseIf Left(.Text, 2) = "06" Or Left(.Text, 1) = "6" Then
            ElseIf Left(.Text, 2) = "00" Or Left(.Text, 1) >= "0" Then
                
                .Value = Application.WorksheetFunction.Substitute(Target, " ", "")
                .NumberFormat = "00 000 00000"      'so stand es
            End If
        End With
        Application.EnableEvents = True
    End If
End Sub
GrußformelHomepage


  

Betrifft: Danke -) von: walter
Geschrieben am: 04.11.2012 19:29:05

Guten Abend Hajo,
klappt einwandfrei, DANKE,
mfg Walter


  

Betrifft: Am besten wäre es wohl, ... von: Luc:-?
Geschrieben am: 04.11.2012 19:26:25

…Walter,
wenn du (1 oder) 2 ganz normale Pgmm schreiben würdest, die einen Parameter, zB Ziel As Range, benötigen. In der EreignisRoutine legst du dann fest, unter welchen Bedingg welches Pgm aufgerufen wird → Call XYZn(Target), nutzt sie also quasi nur als „Verteiler“. Auf diese Weise kannst du auch noch Anderes unterbringen.
Ansonsten kann das Ereignis an 3 Stellen ausgewertet wdn, 2x bereits einsatzvorbereitet (beim Blatt und bei der Mappe → Workbook_SheetChange), 1x potenziell zur Application.
Gruß Luc :-?


  

Betrifft: Danke für die Info -) von: walter
Geschrieben am: 04.11.2012 19:34:53

Guten Abend Luc,
danke für die Information.
Aber ehrlich, ich habe im Moment nichts verstanden.
Ich werde es mir gleich nochmals in Ruhe durchlesen,
schönen Abend.
mfg Walter


  

Betrifft: Bitte sehr! Viel Erfolg! ;-) owT von: Luc:-?
Geschrieben am: 04.11.2012 19:45:11

:-?


 

Beiträge aus den Excel-Beispielen zum Thema "Wie 2 Ereignisse ..."