2.4k Aufrufe
Gefragt in Tabellenkalkulation von bert50 Einsteiger_in (31 Punkte)
Hallo zusammen hab da ein Problem und komm nicht weiter.

Bitte um Hilfestellung.

Hab folgendes bisher:

Nachdem die Zelle in "J" gefunden wurde soll geprüft werden ob in "E" (Gleiche Zeile) etwas steht. Wenn das zutrifft soll in der selektierten Zelle "Date" eingetragen werden und die nächste Zeile abgefragt werden bis die Bedingung nicht mehr zutrifft.

Als Formel würde das so aussehen: =WENN(D6>0;date;"")



Sub Worksheet_SelectionChange(ByVal Target As Range)

Range(Selection, Range("J2:J20000").End(xlDown).Offset(1, 0)).Select

End Sub

Wie muss der Code dazu aussehen??? Stirne runzeln

Grüße Bert

6 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Bert,

in Deinem Code wird nichts gefunden und der wird ausgelöst bei Auswahl einer Zelle. Ist das die richtige Aktion?

Gruß Hajo
0 Punkte
Beantwortet von bert50 Einsteiger_in (31 Punkte)
Hallo Hajo,

der Code bisher findet die Zelle in die dann das Datum eingetragen werden soll, wenn in der gleichen Zeile die Zelle von "E" nicht leer ist.

Das Ganze solange bis in "E" nichts mehr steht.
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
dann muss der Code bei Dir anders laufen als bei mir. Bei mir wird euin Bereich nach oben markiert von Spalte e bis zum 2. Wert in Spalte J. Ich kann Dir Leider nicht weiter helfen.

Gruß Hajo
0 Punkte
Beantwortet von bert50 Einsteiger_in (31 Punkte)
Hallo Hajo,
habs mit diesem Code versucht aber der läuft nicht so wie er soll.

Schreibt zwar in die richtigen Zellen aber auch dann wenn "D" leer ist.

D hab ich auf 20 begrenzt der läuft sonst unendlich lange.

Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim bereich As Range
Dim zelle As Range

Set bereich = Sheets("Umsatz").Range("D2:D20")
For Each zelle In bereich
If Not IsEmpty("D") Then
zelle.Offset(0, 6).Value = Date
End If
Next
End Sub
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Bert,
versuch es mal so:

Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim bereich As Range
Dim zelle As Range
Set bereich = Sheets("Umsatz").Range("D2:D60000")
For Each zelle In bereich
If IsEmpty(zelle) = Talse Then
zelle.Offset(0, 6).Value = Date
End If
Next
End Sub

Gruß
fedjo
0 Punkte
Beantwortet von bert50 Einsteiger_in (31 Punkte)
Hallo fedjo,

dein Vorschlag macht genau das was ich wollte.

Dankeeeeeeeee für den Tip

Gruß Bert
...