Microsoft Excel

Herbers Excel/VBA-Archiv

Target und Worksheet_Change | Herbers Excel-Forum


Betrifft: Target und Worksheet_Change von: Wolfgang
Geschrieben am: 14.12.2009 20:30:21

Hallo Excelprofis
Ich hab ein Problem mit der Worksheet_Change Prozedur.
Anbei der Code.

Das Makro soll 2 Spalten prüfen
- Änderungen in der Spalte G -- > Zellen löschen
- Änderungen in der Spalte Q -- > Zellen löschen und ein bestimmtes Makro Starten.

Das Ereignis der Spalte G klappt auch.
Nur wenn das Ereignis in der Spalte Q eintritt werden die Makros nicht gestartet.

Beim Debuggen kommt die Fehlermeldung
>Objektvariable oder With-Blockvariable nicht festgelegt<
Welche Objektvariable habe ich denn bloß vergessen ?
Hat jemand einen Tipp

Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next

If Not Application.Intersect(Target, Range("G10:G1000")) Is Nothing Then
       
        Cells(Target.Row, 8) = ""
        Cells(Target.Row, 10) = ""
        
End If


If Not Application.Intersect(Target, Range("Q10:Q1000")) Is Nothing Then
        
        Cells(Target.Row, 24) = ""
        Cells(Target.Row, 25) = ""

        If Target.Value = "Test1" Then Call Makro1
        If Target.Value = "Test2" Then Call Makro2
        If Target.Value = "Test3" Then Call Makro3

End If


End Sub


  

Betrifft: Nichts zu sehen! Das wird wohl am... von: Luc:-?
Geschrieben am: 14.12.2009 20:58:59

...auslösenden Ereignis liegen, Wolfgang...
Target hat nämlich nur dann bspw den Wert "Test1", wenn das Ereignis dadurch ausgelöst wird, dass du (oder eine Subroutine) in eine Zelle der Spalte Q genau diesen Wert hineinschreib(s)t... !!!
Gruß Luc :-?


  

Betrifft: AW: Nichts zu sehen! Das wird wohl am... von: Wolfgang
Geschrieben am: 14.12.2009 21:05:50

Hallo Luc
Danke für Deine schnelle Antwort
Beim Debuggen hat Target ja den Wert der das Makro auführen soll
aber nur bis zu der Stelle " Cells(Target.Row,24)="" und dann gehts nicht weiter
Also die If Routine wird nicht durchlaufen .
Und das verstehe ich halt nicht.
Gruß Wolfgang


  

Betrifft: Du wirst doch nicht das Target damit löschen,... von: Luc:-?
Geschrieben am: 14.12.2009 21:08:34

...Jörg,
das wäre ja so nicht ersichtlich...
Luc :-?


  

Betrifft: AW: Du wirst doch nicht das Target damit löschen,... von: Wolfgang
Geschrieben am: 14.12.2009 21:18:09

Hallo Luc
was meinst Du damit
???

Ich Lösche das Target ja nicht
es wird ja nur die benannte Zelle gelöscht
Bei der ersten Schleife werden ja auch alle Zeilen abgearbeitet.
Mich macht ja nur stutzig warum die Fehlermeldung

>Objektvariable oder With-Blockvariable nicht festgelegt <

kommt

gruß wolfgang


  

Betrifft: AW: Nichts zu sehen! Das wird wohl am... von: Reinhard
Geschrieben am: 14.12.2009 21:27:49

Hallo Wolfgang,

durch
Cells(Target.Row,24)=""
wird dein Change-Ereignis mehrfach durchlaufen, mit unterschiedlichen targets.

Stell das ab durch
Application.EnableEvents=True/false

Das On Error gehört auch erstmal raus.

Ich kann auch im Code nichts feststellen was diese Fehlermeldung bewirken könnte.

Gruß
Reinhard


  

Betrifft: AW: Nichts zu sehen! Das wird wohl am... von: Wolfgang
Geschrieben am: 14.12.2009 21:43:46

Hallo Reinhard
Ich glaube genau das wars

Application.EnableEvents

Wenn man nochmal drüber nachdenkt ist das auch logisch.

Es klappt jedenfalls hervorragend (Makro ist auch schneller)
Danke
gruß Wolfgang