Automatische Makros bei Aenderung eines Wertes

18/01/2009 - 23:13 von Willy Steffen | Report spam
Guten Tag Allerseits
Diese Form zu Beginn eines Makros in "Tabelle1" bewirkt bei Aenderung eines
Wertes in der Tabelle, dass das Makro ausgeführt wird.

Private Sub Worksheet_Change(ByVal Target As Range)
'Wird immer aufgerufen wenn sich ein Wert àndert
etc..

Ich habe eine Frage betreffend automatisch ausführendes Makro oder Funktion
beim Aendern z.B von einem Datum in einer bestimmten Kolonne, z.B:
"AnfangsDatum". Gibt es auch die Möglichkeit, dass bei Aenderung eines Wertes
in einer bestimmten Kolonne das Makro ausgeführt wird?

Der Zweck wàre, dass ich verschiedene Makros einzeln aufbauen könnte und
nicht das Gesamte unter das gleiche Makro "Private Sub
Worksheet_Change(ByVal)..." schreiben muss, das mir unübersichtlich wird.

Kann mir da jemand helfen?
Vielen Dank im Voraus
Willy
 

Lesen sie die antworten

#1 Claus Busch
18/01/2009 - 23:26 | Warnen spam
Hallo Willy,

Am Sun, 18 Jan 2009 14:13:07 -0800 schrieb Willy Steffen:

Diese Form zu Beginn eines Makros in "Tabelle1" bewirkt bei Aenderung eines
Wertes in der Tabelle, dass das Makro ausgeführt wird.

Private Sub Worksheet_Change(ByVal Target As Range)
'Wird immer aufgerufen wenn sich ein Wert àndert
etc..

Ich habe eine Frage betreffend automatisch ausführendes Makro oder Funktion
beim Aendern z.B von einem Datum in einer bestimmten Kolonne, z.B:
"AnfangsDatum". Gibt es auch die Möglichkeit, dass bei Aenderung eines Wertes
in einer bestimmten Kolonne das Makro ausgeführt wird?

Der Zweck wàre, dass ich verschiedene Makros einzeln aufbauen könnte und
nicht das Gesamte unter das gleiche Makro "Private Sub
Worksheet_Change(ByVal)..." schreiben muss, das mir unübersichtlich wird.



schreibe deine einzelnen Makros in ein Modul (z.B. MeinMakro1,
MeinMakro2,...) und rufe sie dann über Worksheet_Change so auf:
Private Sub Worksheet_Change(ByVal Target As Range)

'Änderung in Spalte A
If Target.Column = 1 Then
MeinMakro1
'Änderung in Spalte B
ElseIf Target.Column = 2 Then
MeinMakro2
'Sonsitge Änderungen
Else
MeinMakro3
End If

End Sub

Oder falls du nur willst, dass der Code ausgeführt wird, wenn z.B. ein
Wert in Spalte A geàndert wird, dann probiere es so:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("A:A")) Is Nothing _
Then Exit Sub

Hier dein Code...
End Sub


Mit freundlichen Grüssen
Claus Busch
Win XP Prof SP3 / Vista Ultimate SP1
Office 2003 SP3 / 2007 Ultimate SP1

Ähnliche fragen