Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Filter mit mehreren "Angaben"
#11
Was passiert denn mit der Liste mit den neuen Preisen hinterher? Wenn du die Preise per Sverweis ausliest, müsste die Änderungsliste ja dauerhaft erhalten bleiben. Was ist, wenn der Preis sich erneut ändert?

Wenn die Preise aktualisiert werden sollen, wäre evtl. eine VBA Lösung angebracht mit der die Preise ersetzt werden. Anschließend kannst du die Liste mit den Änderungen löschen oder anderweitig archivieren.
Antworten Top
#12
Hallöchen,

Günter meinte sicher so:

Arbeitsblatt mit dem Namen 'Tabelle1'
ABCDE
1Cola15Cola5
2Bier33
3Schnaps22

ZelleFormel
C1=WENNFEHLER(SVERWEIS(A1;$D$1:$E$2;2;FALSCH);B1)
C2=WENNFEHLER(SVERWEIS(A2;$D$1:$E$2;2;FALSCH);B2)
C3=WENNFEHLER(SVERWEIS(A3;$D$1:$E$2;2;FALSCH);B3)
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Anschließend kannst Du Spalte C kopieren und in Spalte B mit Inhalte Einfügen | Werte (bzw. Knopf 123) die Zahlen überschreiben
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#13
Danke für die Formel, die ist schon mal ein Anfang.

@Cadmus: Das hört sich nach der perfekten Lösung an, leider kann ich selbst mit VBA nichts machen :D

Die Liste wird ständig erneuert, d.h. es kommen sozusagen quasi täglich Updates mit neuen Preisen. Gibt es da eine VBA Lösung?

Vielen Dank
Antworten Top
#14
Hallo

da gibt es sicher eine Lösung, die Kollegen haben aber keine Lust eine Datei mit >1000 ID's selbst nachzubauen!!
Es reicht eine kleine Beispieldatei mit 10-20 Fantsiedaten damit man sieht in welchen Spalten man suchen muss. 
Soll ein Ergebnis in eine Hilfsspalte geschrieben werden, die man dann filtern kann??  Wenn ja in welche Spalte?

mfg  Gast 123
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • justice5656
Antworten Top
#15
Hallo,

also ich habe jetzt 2 Dateien hinzugefügt.

Datei 1 ist die "große" Masterdatei mit vielen IDs + Preis.

Datei 2 ist die "Updatedatei" in der nur eine kleine Menge IDs enthalten ist (Teilmenge) + neuer Preis.

Ich suche jetzt eine Möglichkeit, wie ich diese Teilmenge herausfiltern kann, bzw. auch einfach ohne vorher zu filtern updaten kann.

Danke im Voraus


Angehängte Dateien
.xlsx   Datei 1.xlsx (Größe: 8,5 KB / Downloads: 6)
.xlsx   Datei 2.xlsx (Größe: 7,89 KB / Downloads: 4)
Antworten Top
#16
Hallo

anbei deine Beispieldatei mit Makro und Button zurück, als erster Demo Versuch. Zur Demo schreibe ich die gefundenen Update Werte in Spalte C, man kann den Preis aber auch in Spalte B überschreiben. Das Makro ist dafür vorgesehen, der entsprechende Codeteil ist durch das vorgestellte " ' " Zeichen zur Zeit nicht aktiv!  zum direkten Überschrieben die Demo Code Zeile einfach löschen und das " ' " Zeichen darüber entfernen.

Am besten den Code in der Beispieldatei mit kopierten Originaldaten testen bis er einwandfrei laeuft. Bitte erst danach ins Original kopieren.
Ich kann auch noch zum Auswaehlen Daten aus anderen Spalten berücksichtigen.  Warte mal die Rückantwort ab. 

mfg  Gast 123


Angehängte Dateien
.xlsm   Master Datei 1.xlsm (Größe: 18,7 KB / Downloads: 4)
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • justice5656
Antworten Top
#17
Nachtrag:

im Code ist auch eine Zeile für Datei 2 zu Öffnen vorgesehen, auch durch " ' " Zeichen nicht aktiv!  Kann auf Wunsch aktiviert werden!

Oben in der Const Anweisung müssen aber noch dein Original Pfad zum Öffnen und spaeter die Original Dateinamen angegeben werden.  
Zur Zeit stehen meine Demo Datei Namen drin.  Bitte das Namen Aendern in der Original Datei nicht vergessen.

mfg  Gast 123
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • justice5656
Antworten Top
#18
Wow!

Vielen Dank für den Aufwand! Ich werde es gleich mal testen.

Grüße
Antworten Top
#19
Jetzt hätte ich noch eine Frage:

Kann man den VBA Code "modular" gestalten, sodass ich zB. immer pro Makro eine Spalte in der Masterdatei update?

Wenn die Updatedatei und die Masterdatei das gleiche Layout haben, also beispielsweise ID in Spalte A, Preis in Spalte B, Datum in Spalte C usw..

Was müsste ich hierzu im Code kopieren oder geht das überhaupt?

Vielen Dank schon mal
Antworten Top
#20
Hallo

VBA Maktos sind universell, die Spalten müssen zum Suchen und kopieren nicht gleich sein!  Die ID Nr. können in verschiedenen Spalten stehen, ich finde sie trotzdem. Nach dem Find können beliebig viele Spalten kopiert werden. Was wohin kopiert wird geht aus dem Code selbst hervor. 

Ich versuche mal den Code in der Master Datei zu erklaeren, vielleicht schaffst du es dann selbst in auf deine Wünsche zu aendern. Die Variable "lzMs" ist die letzte ID Zeile in der Master Datei. Ich lösche danach die Hilfsspalte C. Wenn da Daten sind wie Datum bitte den Befehl ClearContents löschen.  Die For Next Schleife sucht über Set rFind jede ID Nr. in der Update Tabelle. Wenn gefunden kommt dieser Teil:   AC.Offset(0, 2) = rFind.Offset(0, 1)
Im Klartext heisst es das die Spalte C den Wert Teilmenge bekommt. Dazu benutzt man Offset(0, 2) für Spalte C 

Offset funktioniert nach dem Z/S Prinzip.  Z=Zeile, S=Spalte!  Offset(1, 3) heist:  1 Zeile nach unten, drei Spalten nach rechts! AC.Offset(-1, -2) heisst:  1 Zeile nach oben, 2 Spalten nach Links von der Activen Zelle!  Hat man das System verstanden kann man jeden Wert aus beliebigen Quell Spalten in jede beliebige Ziel-Spalte kopieren. Eınfach mal auspropbieren, ein bisschen rum Experementieren.

Solltest du trotzcem nicht zurechtkommen bitte angeben oder Beispieldatei mit Lösung schicken was aus welchen Spalten wohin soll??
 
mfg  Gast 123 

Code:
  lzMs = .Cells(Rows.Count, 1).End(xlUp).Row
  'Spalte C als Hilfsspalte für Ergebnis löschen
  .Range("C2:C" & lzMs).ClearContents
 
  'Schleife zum UpDat Daten kopieren
  For Each AC In .Range("A2:A" & lzMs)
     Set rFind = UpDat.Columns(1).Find(What:=AC, After:=Cells(1, 1), LookIn:= _
         xlValues, LookAt:=xlWhole, SearchDirection:=xlNext, MatchCase:=False)
     If Not rFind Is Nothing Then
        'AC.Offset(0, 1) = rFind.Offset(0, 1)  'Code zum Preis überschreiben!
        AC.Offset(0, 2) = rFind.Offset(0, 1)   'Demo Code schreibt in Spalte C
        n = n + 1
     End If
  Next AC
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • justice5656
Antworten Top


Gehe zu:


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