Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
504to508
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
504to508
504to508
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Spezielles Problem: Zwei Listen abgleichen

Spezielles Problem: Zwei Listen abgleichen
23.10.2004 21:28:58
Nex
Hallo!
Ich habe schon das ganze Archiv durchgesucht und konnte bis jetzt nichts passendes für mich finden. Vll habt Ihr ja eine Lösung für mich:
Ich habe folgendes Problem: Meine Excel-Datei ist eine Preisliste mit dem Aufbau OEM-Nr. (also sowas wie eine Artikelnummer), Bezeichnung, Preis. Sie ist meine Grundtabelle (mit Spaltenüberschriften) und liefert die Informationen für meine Kalkulation. Dann habe ich eine zweite Datei, die von meinem Händler kommt. In ihr ist auch eine Spaltenüberschrift und auch Zeileweise die Artikel. Jetzt möchte ich die Preise abgleichen. D.h. ein Script o.ä. soll gucke, welcher Preis der OEM-Nr. zugeordnet ist und, wenn es Differenzen gibt, den Händlerpreis in meine Tabelle übernehmen. Das Problem ist nur, dass die Reihenfolge der Artikel eine andere ist und ich auch teilweise nicht alle Artikel meines Händler bei mir im System habe. Es ist also zwingend notwendig, dass das Script die OEM-Nr. mit einander vergleicht und dann der OEM-Nr. in meiner Datei den richtigen Preis aus der Händlerdatei zuordnet.
Fällt euch was tolles dazu ein?
Vielen Dank für Eure Hilfe.
Mit freundlichen Grüßen
NEX

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spezielles Problem: Zwei Listen abgleichen
23.10.2004 22:27:15
Josef
Hallo Nex!
Kopiere diesen Code in deine Datei und passe die Datei und Tabellennamen an.
Option Explicit

Sub vergleich_anpassen()
'Beide Dateien müssen geöffnet sein!
Dim sFind As Range
Dim lngR As Long
Dim lngC As Long
Dim wksSys As Worksheet
Dim wksDea As Worksheet
Set wksSys = Workbooks("System.xls").Sheets("System")
'Datei mit deiner Preisliste - Dateinamen und Tabellennamen anpassen
Set wksDea = Workbooks("Händler.xls").Sheets("Händler")
'Datei mit der Händlerpreisliste - Dateinamen und Tabellennamen anpassen
lngR = wksSys.Range("A65536").End(xlUp).Row
'Bereich mit den Artikelnummern in Spalte "A" feststellen
For lngC = 2 To lngR
'Bereich in Schleife abarbeiten
Set sFind = wksDea.Range("A:A").Find(what:=wksSys.Cells(lngC, 1), _
LookIn:=xlValues, lookat:=xlWhole)
'Artikelnummern in der Händlerdatei suchen
If Not sFind Is Nothing Then
'Wenn Artikelnummer gefunden
If wksSys.Cells(lngC, 3) <> sFind.Offset(0, 2) Then 'Preis vergleichen
wksSys.Cells(lngC, 3) = sFind.Offset(0, 2) 'Bei Preisunterschied abgleichen
wksSys.Range(Cells(lngC, 1), Cells(lngC, 3)).Font.ColorIndex = 5
'Optional die Zeile(n) mit geänderten Preisen farblich hervorheben
End If
End If
Set sFind = Nothing
Next
End Sub

Gruß Sepp
Anzeige
AW: Spezielles Problem: Zwei Listen abgleichen
24.10.2004 10:15:01
Uwe
Hallo Sepp,
habe gerade Deine Lösung gelesen und da man nur lernen kann eine Frage dazu.
Woran erkennt Dein VBA die Spalte ( Zelle ) mit dem Preis um sie vergleichen
und gegebenenfals abgleichen zu können ( suche Zahlen oder suche in Spalte .. ).
Ich kann es leider nicht erkennen. Und wie müsste es aussehen wenn nicht die
ganze Zeile Farbig markiert würde sondern nur 1 Zelle ( z.B. A.. also Artikel-Nr.)?
Für eine Antwort wäre ich wie immer dankbar.
Gruß
Uwe R.
AW: Spezielles Problem: Zwei Listen abgleichen
24.10.2004 10:46:13
Josef
Hallo Uwe!
Das sich die Preise in Spalte "C" befinden, geht aus den Angaben hervor.
Der Code sucht nun nach den Artikelnummern in den Spalten "A" und vergleicht
bei Übereinstimmung die Preise in Spalte "C".
For lngC = 2 To lngR
'Bereich in Schleife abarbeiten
Set sFind = wksDea.Range("A:A").Find(what:=wksSys.Cells(lngC, 1), _
LookIn:=xlValues, lookat:=xlWhole)
'Sucht nacheinander die Artikelnummern aus der "Systemdatei" in Spalte "A"
'der Händlerdatei
If Not sFind Is Nothing Then
'Wenn Artikelnummer gefunden
If wksSys.Cells(lngC, 3) <> sFind.Offset(0, 2) Then
'Vergleicht die Preise die sich laut Angabe in Spalte "C" (3) befinden
'wksSys.Cells(lngC, Spalte 3)
'sFind.Offset(0, 2) - sFind ist in Spalte 1 - .Offset(0, 2) ist Spalte 3
wksSys.Cells(lngC, 3) = sFind.Offset(0, 2) 'Bei Preisunterschied abgleichen
wksSys.Range(Cells(lngC, 1), Cells(lngC, 3)).Font.ColorIndex = 5
'Range(Cells(lngC, 1), Cells(lngC, 3)) = Range("Ax:Cx")
'oder
wksSys.Cells(lngC, 1).Font.ColorIndex = 5
'Nur Zelle mit Artikelnummer kennzeichnen - Cells(lngC, 1) = "Ax"
End If
End If
Set sFind = Nothing
Next

Code eingefügt mit: Excel Code Jeanie
Ich hoffe dir geholfen zu haben.
Gruß Sepp
Anzeige
AW: Spezielles Problem: DANKE Sepp
24.10.2004 11:45:09
Uwe
Hallo Sepp,
Danke für das Info, jetzt habe auch ich es verstanden.
Sorry aber nur so lernt man.
Gruß
Uwe R.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige