Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Target bei leerer Zelle

Forumthread: Target bei leerer Zelle

Target bei leerer Zelle
12.06.2024 12:01:48
AndreasH86
Hallo zusammen,

ich würde gerne bei Änderung einer Zelle in Spalte A eine Formel in eine der nebenstehenden Zellen einfügen.
Das funktioniert soweit auch, jedoch wird die Formel nach dem Löschen des "Target" in Spalte A nicht wieder gelöscht. Mein Code schaut wie folgt aus:



Private Sub Worksheet_Change(ByVal Target As Range)

Dim Bereich As Range
Dim endRowA As Long

endRowA = Cells(Rows.Count, "A").End(xlUp).Row

Set Bereich = Range("A2:A" & endRowA)

If endRowA > 1 Then
If Not Application.Intersect(Target, Bereich) Is Nothing Then
For Each Target In Bereich
If Target.Text > "" Then
With Target.Offset(0, 2)
.FormulaR1C1 = "=XLOOKUP(RC[-2],'ATPCBAR-Basis'!C[-2],'ATPCBAR-Basis'!C[-1],"""",0)"
.Formula = .Value
End With
Else
If Target.Value = "" Then
Target.Offset(0, 2).Value = ""
End If
End If
Next
End If
End If

End Sub


Mein Problem beginnt mit der Zeile
If Target.Value = "" Then


Gibt es da eine Möglichkeit, das innerhalb der Change-Prozedur zu behandeln?


Viele Grüße
Andreas
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Target bei leerer Zelle
12.06.2024 12:26:54
Oberschlumpf
Hi Andreas,

nur so "aus'm Bauch raus":

änder diesen Code...
Target.Offset(0, 2).Value = ""

...um in...
Target.Offset(0, 2).ClearContents

...hilfts?

Ciao
Thorsten
Anzeige
AW: Target bei leerer Zelle
12.06.2024 12:30:39
Onur
For Each Target In Bereich

???
Die Variable "Target" ist RESERVIERT und du darfst sie nicht verwenden, sonst ist der Wert futsch !
Du meinst bestimmt
For Each zelle in Target

                Else

If Target.Value = "" Then

Ist Quatsch, denn wenn Target NICHT ungleich leer ist, ist Target automatisch LEER und muss nicht nochmal geprüft werden.


Anzeige
AW: Target bei leerer Zelle
12.06.2024 12:39:17
Onur
Ungetestet:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim cel
If Target.column > 1 then exit sub
For Each cel in Target
If cel.Text > "" Then
Cells(cel.Row,3).formulaR1C1 = "=XLOOKUP(RC[-2],'ATPCBAR-Basis'!C[-2],'ATPCBAR-Basis'!C[-1],"""",0)"
Cells(cel.Row,3).Formula = .Value
Else
Cells(cel.Row,3).Formula = ""
End If
Next
End Sub
Anzeige
AW: Target bei leerer Zelle
12.06.2024 12:48:24
AndreasH86
Hallo Onur,

besten Dank für die Erklärung, wieder was gelernt :)
Das funktioniert perfekt, ich habe lediglich Folgendes in Deinem Code geändert, nachdem ich eine Fehlermeldung erhalten habe:



With Cells(cel.Row, 3)
.FormulaR1C1 = "=XLOOKUP(RC[-2],'ATPCBAR-Basis'!C[-2],'ATPCBAR-Basis'!C[-1],"""",0)"
.Formula = .Value
End With



Viele Grüße
Andreas
Anzeige
Gerne !
12.06.2024 12:49:19
Onur
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige