VBA - 2 Change-Ereignisse verknüpfen
Hey!
Habe herausgelesen, dass man pro Tabellenblatt immer nur ein Change-Ereigniss einfügen kann.
Da ich aber 2 brauche sollten diese doch in einem verknüpfbar sein.
Habe beide Ereignisse (mit unterschiedlichem Code) getestet und funktionieren auch.
Leider schaffe ich das mit dem Code nicht.
Könnte mir da wer helfen?
Also:
1. Ereignis: bei Änderungen im Bereich A6:N53 (dann erfolgen auch Änderungen in diesem Bereich)
2. Ereignis: Änderungen im Bereich A1: N5 (dann erfolgen Änderungen im Bereich B7:D9)
LG Mike
Habe herausgelesen, dass man pro Tabellenblatt immer nur ein Change-Ereigniss einfügen kann.
Da ich aber 2 brauche sollten diese doch in einem verknüpfbar sein.
Habe beide Ereignisse (mit unterschiedlichem Code) getestet und funktionieren auch.
Leider schaffe ich das mit dem Code nicht.
Könnte mir da wer helfen?
Also:
1. Ereignis: bei Änderungen im Bereich A6:N53 (dann erfolgen auch Änderungen in diesem Bereich)
2. Ereignis: Änderungen im Bereich A1: N5 (dann erfolgen Änderungen im Bereich B7:D9)
LG Mike
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 147821
Url: https://administrator.de/forum/vba-2-change-ereignisse-verknuepfen-147821.html
Ausgedruckt am: 24.12.2024 um 03:12 Uhr
5 Kommentare
Neuester Kommentar
Hallo,
vllt. beschreibst Du besser anhand eines Beispiels, was Du genau machen willst. AFAIK gibt es nämlich wirklich nur ein Change()-Ereigniss .
Aber natürlich kann man in einem Ereignis mehrere Funktionen/Proceduren abarbeiten. Ist es vllt das, was Du machen willst???
Mit dem "Target"-Parameter im Change-Ereignis kannst Du auf jeden Fall die Zellen bestimmen, in der eine Änderung stattgefunden hat.
Gruß F1
vllt. beschreibst Du besser anhand eines Beispiels, was Du genau machen willst. AFAIK gibt es nämlich wirklich nur ein Change()-Ereigniss .
Aber natürlich kann man in einem Ereignis mehrere Funktionen/Proceduren abarbeiten. Ist es vllt das, was Du machen willst???
Mit dem "Target"-Parameter im Change-Ereignis kannst Du auf jeden Fall die Zellen bestimmen, in der eine Änderung stattgefunden hat.
Gruß F1
Nun hab ich den anderen Thread noch mal gelesen und hab eine Vermutung was Du meinst.
Vielleicht hilft Dir das hier.
In dem Change-Ereignis wird geprüft, in welcher Range Änderungen gemacht wurden und ruft entsprechende Prozeduren auf.
Dann brauchst Du noch 2 Prozeduren, in die Du Dein 'Code' packen kannst
das meintest Du, oder? ;)
Gruß effeins
P.S.
die Zeile aus den anderen Posting sorgt übrigens dafür das bei einer gleichzeitigen Änderung mehrerer Zellen gar nichts passiert
die solltest Du evtl noch einbauen und eine Meldung erscheinen lassen
Vielleicht hilft Dir das hier.
In dem Change-Ereignis wird geprüft, in welcher Range Änderungen gemacht wurden und ruft entsprechende Prozeduren auf.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng1 As Range
Dim rng2 As Range
Dim isect As Range
Set rng1 = Range("A6:N53")
Set rng2 = Range("A1:N5")
Set isect = Application.Intersect(Target, rng1) 'Range1 suchen
If Not (isect Is Nothing) Then
Range1_gefunden Target 'Procedur aufrufen
Exit Sub 'Fertig
End If
Set isect = Application.Intersect(Target, rng2) 'Range2 suchen
If Not (isect Is Nothing) Then
Range2_gefunden Target 'Procedur aufrufen
Exit Sub 'Fertig
End If
End Sub
Dann brauchst Du noch 2 Prozeduren, in die Du Dein 'Code' packen kannst
Sub Range1_gefunden(Target As Range)
MsgBox "die Änderungen wurden in A6:N53 getätigt"
End Sub
Sub Range2_gefunden(Target As Range)
MsgBox "die Änderungen wurden in A1:N5 getätigt"
End Sub
das meintest Du, oder? ;)
Gruß effeins
P.S.
die Zeile aus den anderen Posting sorgt übrigens dafür das bei einer gleichzeitigen Änderung mehrerer Zellen gar nichts passiert
If Target.Cells.Count > 1 then Exit sub