VBA: Worksheet_Change kombiniert mit Find-Method


Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

CoreoG

Grünschnabel
Wenn ich den Code ohne das Woksheet_change ausführe und ohne eine Target-Adresse, dann funktioniert meine Anweisung, aber eben nicht automatisch.
Ich habe schon mehrere Varianten ausprobiert, aber ich finde keine Möglichkeit die richtige Zelle anzuwählen. Wie kann ich die Anweisung umformulieren, damit bei Zelländerung das Datum in die gewünschte Zelle eingetragen wird.

Code:
Sub Worksheet_change(ByVal Target As Excel.Range)

If Target.Address = ("$E$5") Then
        Cells.Find(What:="Test", LookIn:=xlFormulas).Activate
        ActiveCell.Offset(1, -1) = Date
End If

End Sub
 
Zuletzt bearbeitet:

Zvoni

Erfahrenes Mitglied
Vermeide Active-Irgendwas!
Hast du mal versucht:
Cells.Find(What:="Test", LookIn:=xlFormulas).Offset(1, -1)=Date
und lösche die ActiveCell-Zeile (oder kommentier sie aus)
 

Yaslaw

n/a
Moderator
Jepp. .activate und .select sollten in VBA verhindert werden.
Ich weiss, die Makro-.Aufzeichnung von Excel macht die, aber das ist nie sauber und kann zu komischem Verhalten führen.
 

CoreoG

Grünschnabel
Ja, wenn ich dann einen Wert in E 5 eingebe passiert nichts, aber wenn ich zur Zielzelle gehe und dort z.B. 22 eingebe, erhalte ich eine Datumsformatausgabe 22.01.1900 -> also nicht das heutige Datum und es ist ja auch nicht die gewünschte Aktion die ausgeführt werden soll ...

Und wie kann ich Excel austricksen? Irgendwelche Ideen?
 

Zvoni

Erfahrenes Mitglied
Springt dein code überhaupt in den "Then"-Teil der If-Abfrage?
Setz mal nen Haltepunkt nach dem Then
 

CoreoG

Grünschnabel
Nein, will nicht weiterspringen ... Das Programm möchte dann gerne mit einem Makro weiterarbeiten, also hab ich mittels Makro versucht das Datum in die Zielzelle zu schreiben - will es auch nicht....

Sobald ich einen Wert in die Change-Zelle eingebe, wird diese als aktive Zelle angesehen ...
 

Zvoni

Erfahrenes Mitglied
Setz mal nen Haltepunkt auf die If-Zeile (mit Target-Address) und mach mal ein Debug.Print Target.Address
Ich hab da ne Vermutung
 

Yaslaw

n/a
Moderator
CereoG, du schreibst da noch was von anderen Makros das etwas machen will. Kommen sich hier Makros in die Quere?
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Neue Beiträge