Anzeige
Archiv - Navigation
1284to1288
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wie 2 Ereignisse ...

Wie 2 Ereignisse ...
04.11.2012 19:09:08
walter
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

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wie 2 Ereignisse ...
04.11.2012 19:18:32
Hajo_Zi
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

Anzeige
Danke -)
04.11.2012 19:29:05
walter
Guten Abend Hajo,
klappt einwandfrei, DANKE,
mfg Walter

Am besten wäre es wohl, ...
04.11.2012 19:26:25
Luc:-?
…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 :-?

Anzeige
Danke für die Info -)
04.11.2012 19:34:53
walter
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

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige