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

Forumthread: Werte in anderer Tabelle suchen und Datum ändern

Werte in anderer Tabelle suchen und Datum ändern
24.10.2024 19:06:55
Thomas T.
Hallo Excelfreund,

ich habe einen Code versucht anzupassen was nur bedingt gelungen ist. Im Tab Auftrag schreibe ich verschiedene Zahlen rein und dann wird in Spalte O Zeile 4 über einen Sverweis das Datum aus dem Tab Daten mir zurück gegeben.
Nun will ich wenn im Tab Auftrag das Datum, Spalte O "02.09.2024" aufweist den Wert aus Spalte C im Tab Daten ab Zeile D3 gesucht wird und dann in der jeweiligen Zeile das Datum Spalte N3 auf das Heutige geändert werden soll usw.
Sub Kontroll_Datum()


Application.ScreenUpdating = False

For i = 1 To 58

If Sheets("Auftrag").Cells(1, 1) = "11057" And Sheets("Auftrag").Cells(3 + i, 15) = "02.09.2024" Then

With Worksheets("Daten").Range("D3:D500")
Set c = .Find(Sheets("Auftrag").Cells(3 + i, 3), LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
Sheets("Daten").Cells(2 + i, 14) = Date

Set c = .FindNext(c)

Loop While Not c Is Nothing And c.Address > firstAddress

End If
End With
End If
Next i

Application.ScreenUpdating = True
End Sub


Im Tab Auftrag steht dann auch immer wieder ein anderes Datum aber es soll nur das von "02.09.2024" dann geändert werden.

Gruß Thomas T.
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte in anderer Tabelle suchen und Datum ändern
24.10.2024 19:41:27
Onur
Und WO ist die entsprechende Datei zu dem massgeschneiderten Code ?
AW: Werte in anderer Tabelle suchen und Datum ändern
25.10.2024 16:51:47
schauan
Hallo Thomas,

Nun will ich wenn im Tab Auftrag das Datum, Spalte O "02.09.2024" aufweist den Wert aus Spalte C im Tab Daten ab Zeile D3 gesucht wird
Das finde ich z.B. hier programmiert
Set c = .Find(Sheets("Auftrag").Cells(3 + i, 3), LookIn:=xlValues)


Im Tab Auftrag steht dann auch immer wieder ein anderes Datum aber es soll nur das von "02.09.2024" dann geändert werden.
Das willst Du damit erreichen
If Sheets("Auftrag").Cells(1, 1) = "11057" And Sheets("Auftrag").Cells(3 + i, 15) = "02.09.2024" Then

Wobei hier nicht das Datum geändert wird sondern lediglich der folgende Code ausgeführt wird, wenn das Datum zutrifft

und dann in der jeweiligen Zeile das Datum Spalte N3 auf das Heutige geändert werden soll
das sollte damit erreicht werden
Sheets("Daten").Cells(2 + i, 14) = Date
Anzeige
AW: Werte in anderer Tabelle suchen und Datum ändern
25.10.2024 17:18:07
Thomas T.
Hallo schauan,

die If Anweisung soll eine Schleife sein die dann Zeile für Zeile durch das Tab Auftrag läuft. Findet die Schleife im Tab Auftrag das Datum 02.09.2024 soll der Wert aus der gleichen Zeile aus Spalte c im Tab Daten gesucht werden und da muss es ja auch in einer Schleife bist zum gefundenen Wert durchlaufen und dann in der Zeile Spalte N dann das heutige Datum eintragen.
Das Datum 02.09.2024 ist nur für mich wichtig da ich diese Programme kontrollieren muss wenn ich diese in einem Auftrag abarbeiten muss. Mit händisch das ganze machen ist mühselig.

Gruß Thomas
Anzeige
AW: Werte in anderer Tabelle suchen und Datum ändern
25.10.2024 18:52:55
Yal
Hallo Thomas,

If Worksheets("Auftrag").Cells(1, 1) = "11057" Then

-> das musst nur einmal am Anfang prüfen, wenn es nicht trifft, gibt es nichts zu tun.

Du musst nicht alle Treffer in Worksheets("Daten").Range("D3:D500") herausfinden: bei jedem Treffer wird nur immer dieselbe Zelle auf das aktuelle Datum gesetzt
Worksheets("Daten").Cells(2 + i, 14) = Date

-> i ändert sich erst, wenn die nächste For-Schleife durchläuft, nicht wenn ein neuen Treffer gefunden wurde (darin könnte der Wurm sein). Also reicht es, ein erste Treffer zu haben.

Setze in "Extras", "Optionen..." die "Variabledeklaration erforderlich" an. Scheint lästig zu sein, aber Profis machen so. Warum wohl?
Spare dir die Leerzeilen im Code, achte dafür auf einem sauberen Einrücken. Viel bessere Lesbarkeit.

Dein Code würde ich so schreiben (macht aber genau das gleich wie vorher):
Sub Kontroll_Datum()

Dim i As Long
Dim c As Range

Application.ScreenUpdating = False
With Worksheets("Auftrag")
If .Cells(1, 1) = "11057" Then
For i = 1 To 58
If .Cells(3 + i, 15) = "02.09.2024" Then
Set c = Worksheets("Daten").Range("D3:D500").Find(.Cells(3 + i, 3).Value, LookIn:=xlValues)
If Not c Is Nothing Then Worksheets("Daten").Cells(2 + i, 14) = Date
End If
Next i
End If
End With
Application.ScreenUpdating = True
End Sub


VG
Yal
Anzeige
AW: Werte in anderer Tabelle suchen und Datum ändern
25.10.2024 19:14:56
Thomas T.
Hallo Yal,

vielen Dank für deinen Code aber der bringt nur einen Treffer und ersetzt noch zusätzliche Zellen auf das heutige Datum.
Ja an der Schreibweise muss ich noch arbeiten aber ich mache das nicht täglich, nur so wann ich was brauche. Ich habe einen Code gefunden und erfolgreich angepasst bekommen siehe Thred.

Schönen Abend
Gruß Thomas T.
Anzeige
AW: Werte in anderer Tabelle suchen und Datum ändern
25.10.2024 22:47:00
Yal
Lieber Thomas,

ja, mein Code bringt nur einen Treffer, aber dein Code macht aus mehreren Treffer nicht weiteres, als was er mit dem ersten Treffer macht.

Also warum brauchst Du alle Treffer?
Das ist die Frage, die Du antworten solltest.

Dass es andere Zellen auf das heutige Datum setzt: ja. Genauso wie dein Code. Ich wäre überrascht, wenn Du mir das Gegenteil beweisen könntest.

VG
Yal
Anzeige
AW: Werte in anderer Tabelle suchen und Datum ändern
26.10.2024 08:44:33
Thomas T.
Schönen guten Morgen Yal,

die Zahl 11058 oder 11057 ist das Produkt wie es ausschauen soll. Die Zahl aus Spalte C ist Länge und Breite jeweils 4 stellig. Diese Zahlen kommen je nach Auftrag immer wieder vor. Nach jedem Auftrag lösche ich den Bereich A4 bis B61, ist eine Nummer nicht vorhanden so fügt die Schaltflache Anlegen diese Nummer(n) in die Daten ein. Das Datum 02.09.2024 sagt mir ich muss in dem Programm hinter der Nummer noch eingreifen und ändern. Somit sollen alle Treffer das heutige Datum bekommen, so das ich wenn eine oder mehrere Nummern wieder im nächsten Auftrag auftauchen ich nicht wieder und wieder in das schon geänderte Programm rein schaue.
Klar bin ich dann auch mal durch und habe dann mal alle Programme mit dem Datum überprüft und geändert und der Code ist hinfällig aber sollte ich aus irgendeinem Grund wieder Änderungen vornehmen müssen brauch ich nur ein neues Datum eintragen und nach allen die kleiner dem neuen Datum sind abfragen wenn diese Nummern in Aufträgen vor kommen und alles geht von vorne los aber ohne das ich mehrfach in das schon geänderte Programm gesehen habe.
Ich habe daher die Schleife die das Tab Auftrag durchläuft und somit muss es ja im Tab Daten auch eine Art Schleife geben.

Ich hoffe ich konnte es halbwegs rüber bringen und möchte mich bei Dir bedanken.

Gruß Thomas T.
Anzeige
AW: Werte in anderer Tabelle suchen und Datum ändern
25.10.2024 18:56:01
Thomas T.
Hallo nochmal,

ich habe da was gefunden das den eingetragenen Wert sucht und in Spalte markiert hat und habe diesen dann angepasst und es läuft.
Zum Verständnis was ich wollte noch der angepasste und funktionierende Code.
Sub Finden()

Application.ScreenUpdating = False
Dim strSUCH As Variant
Dim rngSUCH As Range
Dim lngFind As Long
For i = 1 To 58
If Sheets("Auftrag").Cells(1, 1) = "11057" And Sheets("Auftrag").Cells(3 + i, 15) = "02.09.2024" Then
strSUCH = Sheets("Auftrag").Cells(3 + i, 3) 'Application.InputBox("Bitte Eingabe tätigen:")
Sheets("Daten").Select
Set rngSUCH = Sheets("Daten").Range("D3:D300").Find(What:=strSUCH, _
Lookat:=xlWhole, LookIn:=xlValues, MatchCase:=True)
If Not rngSUCH Is Nothing Then
lngFind = rngSUCH.Row
Cells(lngFind, 14) = Date '.Interior.ColorIndex = 3
'Cells(lngFind, 1).Select
'Else
'MsgBox "Der gesuchte Wert " & strSUCH & " wurde nicht gefunden.", _
'64, "Nicht gefunden."
End If
End If
Set rngSUCH = Nothing
Next i
Sheets("Auftrag").Select
Application.ScreenUpdating = True
End Sub


Sollte es noch einfacher gehen bin ich offen und freue mich.

Allen noch einen schönen Abend

Gruß Thomas T.
Anzeige
AW: Werte in anderer Tabelle suchen und Datum ändern
26.10.2024 09:51:52
schauan
Hallo Thomas,

also, ein Punkt ist ja immer noch, was an Deinem ersten Code genau das Problem war. Ich habe ja die 3 betreffenden Zeilen zitiert. Zumindest bei der Betrachtung der dritten kann man stutzig werden ;-)

hier nochmal:

Sheets("Daten").Cells(2 + i, 14) = Date


i ist der Zähler der äußeren - For - Schleife.

Das Datum setzt Du in der inneren - Do - Schleife.

Wenn Du nun in der inneren Schleife mehrere Treffer erzielst, wird immer nur das Datum in Zeile 2 + i geändert, denn i wird in der inneren Schleife nicht verändert.
Statt 2 + i wäre hier c.row zielführend.

Auf was anderes im .find würde ich noch hinweisen. Da sollte man, um sicher zu gehen, alle erforderlichen Parameter setzen, wie z.B. im letzten code das LookAt. Wenn Du zwischenzeitlich mit anderen Parametern, auch manuell, suchst, wird sich das Eine oder Andere gemerkt ...

Anzeige
AW: Werte in anderer Tabelle suchen und Datum ändern
26.10.2024 10:31:30
Thomas T.
Guten Morgen schauan,

ich bin gestern noch weiter auf der suche gewesen und habe einen Code gefunden und angepasst bekommen der mir meine Arbeit erleichtert.
Möchte mich hier bedanken für deine Ansätze.

Gruß Thomas T.
AW: Werte in anderer Tabelle suchen und Datum ändern
25.10.2024 16:20:22
Thomas T.
Hallo Onur,

gestern war es schon zu spät und bis vorhin noch gearbeitet. Anbei die Datei.
https://www.herber.de/bbs/user/173146.xlsm
Gruß Thomas T.
Anzeige
AW: Werte in anderer Tabelle suchen und Datum ändern
25.10.2024 21:42:07
Thomas T.
Hallo Onur,

das ist nicht meine Datei. Dennoch Dankeschön ich bin schon am Ziel.

Gruß Thomas T.

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige