Zeile suchen und ersetzen
#1
Hallo Gemeinde,

habe folgendes Problem,

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.


Angehängte Dateien
.xlsx   Lager.xlsx (Größe: 12,4 KB / Downloads: 8)
Mit freundlichem Gruß

Rudi

WIN 7
Office 2010
Top
#2
Hi Rudi,

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

Dann die Einträge in EA löschen

Hilft das?

Raoul
Top
#3
Hallo Raoul,

vielen Dank für die schnelle Antwort, aber ich hätte schon gerne eine VBA Lösung um das ganze für den Benutzer so einfach wie möglich zu machen,
Mit freundlichem Gruß

Rudi

WIN 7
Office 2010
Top
#4
guten Morgen,

denke habe mein Problem nicht verständlich geschildert,

1. Schritt soll sein

beim betätigen der OK Taste (Sheet Liste) soll im Sheet EA der Vorgang A2 geprüft werden 

bei A, Artikelnummer die in B2 steht in Sheet Liste suchen und die dort in Spalte 3 befindliche Nr. löschen
         in Sheet EA die Zeile 2 komplett löschen.

bei E, Artikelnummer die in B2 steht in Sheet Liste suchen in Spalte 3 die Nummer aus Sheet EA C2 einfügen
          in Sheet EA die Zeile 2 komplett löschen.

wie könnte hier der Inhalt des Steuerelementes aussehen damit´s funktioniert ?

Vielen Dank!
Mit freundlichem Gruß

Rudi

WIN 7
Office 2010
Top
#5
Hallo Rudi,

Was soll ich da nicht verstanden haben? Wo ist da der Unterschied zu dem, wie ich in #2 zu Beginn beschrieben habe, was ich verstanden habe?

Raoul
Top
#6
Hallo Raoul,

mit einem klick auf die Schaltfläche OK soll dieser Ablauf starten (VBA) und automatisch durchlaufen.


Angehängte Dateien
.xlsx   Lager.xlsx (Größe: 16,52 KB / Downloads: 8)
Mit freundlichem Gruß

Rudi

WIN 7
Office 2010
Top
#7
Hallo Gemeinde,

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.

Wenn es hierfür ein Makro gäbe wäre das Super !
Mit freundlichem Gruß

Rudi

WIN 7
Office 2010
Top
#8
Hallo Rudi,

ich dachte, bei "E" soll der Lagerort übertragen werden?
Jetzt ist das bei "A". Und was soll bei "E" geschehen? Nichts?

Raoul
Top
#9
Hallo Raoul,

Ok,  EA!C2 soll nach LISTE!C2 geschrieben werden (Inhalt der Zelle)
Mit freundlichem Gruß

Rudi

WIN 7
Office 2010
Top
#10
Hallöchen,

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 Sad

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)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste