Worksheet_Change(ByVal Target As Range) zusätzlich per Click

17/12/2011 - 00:30 von Detlef Paschke | Report spam
Hallo,

ich hab hier eine kleine "Datenbank" mit Excel 2003 zusammengebastelt.
Die Suche erfolgt mit dem Autofilter der über ein VB-Skript "angeworfen"
wird. Die Kriterien stehen in den Zellen A3:E3.
Und nun kommt es:
Ich habe eine Chekbox eingebaut um zusàtzliche Filterregeln zu aktivieren.
Das Funktioniert auch ganz gut, aber nachdem ich die Chekbox aktiviert oder
deaktiviert habe muss ich in eine der Zellen A3:E3 gehen um das VB-Skript
anlaufen zu lassen.
Ich habe positiv getestet, das eine Chekbox auch ei Click-Ereignis ausführen
kann aber wie "stosse" ich das VB-Skript damit an, wenn es auf "Private Sub
Worksheet_Change(ByVal Target As Range)" reagiert?
Mit einem schlichten GoTo oder GoSub bin ich nicht weiter gekommen, und
ehrlich gesagt Bastelle ich mir auch alles nur so nach und nach zusammen.
Hat jemand eine Idee?

Viele Grüße
Detlef Paschke
 

Lesen sie die antworten

#1 michlchen
17/12/2011 - 11:06 | Warnen spam
hi.

wenn es auf "Private Sub Worksheet_Change(ByVal Target As Range)" reagiert?



das problem hatte ich auch schon. einfachste lösung wàre, das ganze
auszugliedern in ein "normales" sub in einem modul. dann rufst du
jeweils vom worksheet_change und wo auch immer du noch willst das
makro auf.

also in etwa so.

pr sub button1.click()
makro_machwas
end sub

pr sub worksheet_change()
makro_machwas
end sub
...

im modul:
sub makro_machwas()

...
end sub


und nochwas:
solltest du beim worksheet_change() ein problem bekommen, weil er das
beim abarbeiten des makro aufrufen will, behelfe ich mir gerne mit ner
glob variable makro_aktiv, die ich beim makrolauf auf true setze und
am ende wieder false.
(vorsicht, wenn du ein exit sub verwendest. dann hier auch wieder
false setzen. vergesse ich gerne und wundere mich, warum das makro
nicht startet...)

pr sub worksheet_change()
if makro_aktiv = false then makro_machwas
end sub

soll heißen làuft mein makro, dann ignoriere ich dass er bspw. blàtter
wechselt und wenn der user die blàtter wechselt, dann wird das makro
gestartet.

Ähnliche fragen