in meiner Arbeitsmappe sind die Arbeitsblätter "Liste" und "EA" in "Liste" hätte ich gerne eine Schaltfläche "OK", wenn diese betätigt wird soll folgendes passieren in "EA" oberster Eintrag (Zeile2) A soll bewirken dass die Art. Nr. 10006 (B2) in "Liste" gesucht und der Lagerort gelöscht wird danach in "EA" die Zeile 2 komplett gelöscht wird.
E soll bewirken dass die Art. Nr. 10006 (B2) in "Liste" gesucht und der Lagerort aus "EA" eingetragen wird danach in "EA" die Zeile 2 komplett gelöscht wird.
hoffe habe das verständlich formuliert, und jemand hätte einen Vorschlag wie ich so etwas realisieren kann.
wenn ich Dich recht verstehe: In "Liste" soll der Lagerort eingetragen werden, der in "EA" notiert ist. Dieser Lagerort in "EA" kann ein Wert oder leer sein.
Makrolösung wäre möglich, bei entsprechend großen Listen zu überlegen.
Formel auch möglich: Zelle C2: =SVERWEIS(A2;EA!B:C;2;FALSCH) diese dann runter kopieren. Dann in Spalte C in "Liste" die Formelergebnisse durch ihre Ergebnisse ersetzen: Kopieren, Werte einfügen. Strg+c Strg+V Strg W
habe zwei Tabellenblätter LISTE und EA, die LISTE ist eine Artikelliste die stetig immer größer wird und eine Schaltfläche "OK" anzeigt. EA ist eine Liste von Artikelbewegungen (diese Liste wird von einem Scanner in EA übertragen) jedes mal wenn sich Artikel bewegt haben.
Nun möchte ich beim betätigen der "OK" Schaltfläche dass in EA der oberste Eintrag (also A2) ausgewertet wird, wenn ein "A" eingetragen ist soll der Eintrag in B2 (also 10006) in LISTE in Spalte A gesucht werden und in Spalte C entsprechend den Eintrag aus EA (C2) eintragen.
der Code würde das aus dem vorletzten Beitrag machen. Allerdings steht dann auf Liste in C7 nix mehr, weil auf EA in C2 nix steht
Zitat:EA!C2 soll nach LISTE!C2 geschrieben werden
wäre nochmal was anderes.
Im Code ist keine Fehlerbehandlung, falls der Eintrag nicht auf Liste gefunden wird. Falls das passieren kann, müsste wenigstens noch eine Zeile dazu kommen.
Code:
Sub test() 'mit der Zelle A2 auf EA With Sheets("EA").Cells(2, 1) 'wenn dort "A" steht, dann If .Value = "A" Then 'auf aktivem Blatt (Liste) in Spalte A den Eintrag aus EA!B2 finden 'und in C den Eintrag aus EA!C2 uebernehmen Columns("A:A").Find(What:=.Offset(, 1).Value, After:=Cells(1, 1), LookIn:=xlFormulas, _ LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Offset(, 2).Value = .Offset(, 2).Value 'Ende wenn dort "A" steht, dann End If 'Ende mit der Zelle A2 auf EA End With End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)