Hallo ihr Lieben,
folgender Sachverhalt:
Ich habe Daten aus einer sehr umfangreichen Tabelle (Ich nenne Sie Datei 1) gezogen und in eine neue Datei (hier Target-Datei) eingefügt. Das hat auch sehr erfolgreich geklappt. Nun müssen diese Daten (dabei handelt es sich um Mengenangaben und Zahlenfolgen) mit Werten aus einer dritten Datei verglichen werden (hier Workbook "AllProjects" und Worksheet "Steckbriefe").
Es gibt zwei Bedingungen zum einen müssen die CN's und die GC's - aus den jeweiligen zwei Dateien überpüft werden, ob es die schon gibt oder eines von beiden neu ist - dieser Vergleich funktioniert einwandfrei - es wird in der Target-Datei in Spalte 17 angezeigt ob die GC's und die CN's neu sind oder bereits zusammen schon in der dritten Datei vorhanden sind. Zum anderen müssen aus insgesamt 6 Spalten die Mengen verglichen werden - alle gemeinsam müssen je Spalte aus der Target-Datei mit den Daten aus dritten Datei übereinstimmen, wenn das der Fall ist, dann soll es in der Spalte 18 der Target-Datei anzeigen, dass die Mengen Gleich sind, falls nur ein Spaltenwert aus der Target-Datei nicht mit dem passenden Wert aus der dritten Datei übereinstimmt, dann soll es "Mengen Ungleich" anzeigen.
Leider zeigt es mir aber immer nur "Mengen Ungleich" an oder gar nichts. Ich habe auch oft überprüft ob wirklich alle Werte nicht übereinstimmen, aber das ist nicht der Fall, die meisten Werte sind korrekt.
Ich habe auch schon überprüft, ob es etwas ausmacht, wenn die Zahlen in der Target-Datei versteckt mehrere Nachkommastellen haben und das in der dritten Datei nicht - aber das ist auch nicht die Ursache des Problems.
Ich habe auch mehrfach überprüft ob ich auch wirklich die richtigen Spalten richtig benannt habe - all das funktioniert...
Ich weiß leider nicht weiter - und fände es super, wenn ihr mir helfen könntet!
(Ich muss auch zugeben, ich bin kein Fachmensch in diesem Gebiet und musste mir nur - ich arbeite im Einkauf - das nötigste aneignen, und ich bin schon stolz, dass es soweit geklappt hat, aber der letzte Schliff fehlt noch).
Beste Grüße
Anna
Hier der Code ab dem Zeitpunkt bei dem ich die Tabellen miteinander vergleiche:
Workbooks.Open Filename:="\\ad001.siemens.net\dfs001\File\DE\FTH\TFN_PROJECT\200_Procurement_Overview_AllProjects\01_AllProjects\AllProjects.xlsx", ReadOnly:=True
Dim wsSteckbriefe As Worksheet
Set wsSteckbriefe = Workbooks("AllProjects.xlsx").Worksheets("Steckbriefe")
lastRowTarget = wsTarget.Range("A" & wsTarget.Rows.Count).End(xlUp).Row
lastRowSteckbriefe = wsSteckbriefe.Range("A" & wsSteckbriefe.Rows.Count).End(xlUp).Row
For rowTarget = 2 To lastRowTarget 'Daten werden ab der zweiten Zeile eingefügt
For rowSteckbriefe = 2 To lastRowSteckbriefe
Dim CNS As Variant 'CNA = Component Number Steckbriefe (AllPro)
CNS = (wsSteckbriefe.Cells(rowSteckbriefe, 7).Value)
Dim GCS As Variant 'GCS = Group Code Steckbriefe (AllPro)
GCS = (wsSteckbriefe.Cells(rowSteckbriefe, 2).Value)
Dim CNT As Variant 'CNA = Component Number Target-Datei
CNT = (wsTarget.Cells(rowTarget, 3).Value)
Dim GCT As Variant 'GCT = Group Code Target-Datei
GCT = (wsTarget.Cells(rowTarget, 1).Value)
'Mengen aus der Target-Datei
Dim Menge2020T As Variant
Menge2020T = (wsTarget.Cells(rowTarget, 10).Value)
Dim Menge2021T As Variant
Menge2021T = (wsTarget.Cells(rowTarget, 11).Value)
Dim Menge2022T As Variant
Menge2022T = (wsTarget.Cells(rowTarget, 12).Value)
Dim Menge2023T As Variant
Menge2023T = (wsTarget.Cells(rowTarget, 13).Value)
Dim Menge2024T As Variant
Menge2024T = (wsTarget.Cells(rowTarget, 14).Value)
Dim Menge2025T As Variant
Menge2025T = (wsTarget.Cells(rowTarget, 15).Value)
Dim Menge2026T As Variant
Menge2026T = (wsTarget.Cells(rowTarget, 16).Value)
'Mengen aus der AllPro-Datei (Steckbriefe)
Dim Menge2020S As Long
Menge2020S = (wsSteckbriefe.Cells(rowSteckbriefe, 15).Value)
Dim Menge2021S As Double
Menge2020S = (wsSteckbriefe.Cells(rowSteckbriefe, 16).Value)
Dim Menge2022S As Double
Menge2022S = (wsSteckbriefe.Cells(rowSteckbriefe, 17).Value)
Dim Menge2023S As Double
Menge2023S = (wsSteckbriefe.Cells(rowSteckbriefe, 18).Value)
Dim Menge2024S As Double
Menge2024S = (wsSteckbriefe.Cells(rowSteckbriefe, 19).Value)
Dim Menge2025S As Double
Menge2025S = (wsSteckbriefe.Cells(rowSteckbriefe, 20).Value)
Dim Menge2026S As Double
Menge2026S = (wsSteckbriefe.Cells(rowSteckbriefe, 21).Value)
If GCT = GCS Then
If CNT = CNS Then
wsTarget.Cells(rowTarget, 17) = "CP & PG vorhanden"
If Menge2020T = Menge2020S And Menge2021T = Menge2021S And Menge2022T = Menge2022S And Menge2023T = Menge2023S And Menge2024T = Menge2024S And Menge2025T = Menge2025S And Menge2026T = Menge2026S Then
wsTarget.Cells(rowTarget, 18) = "Mengen Gleich"
End If
End If
End If
Next rowSteckbriefe
Next rowTarget
For rowTarget = 2 To lastRowTarget
If Menge2020T <> Menge2020S Or Menge2021T <> Menge2021S Or Menge2022T <> Menge2022S Or Menge2023T <> Menge2023S Or Menge2024T <> Menge2024S Or Menge2025T <> Menge2025S Or Menge2026T <> Menge2026S Then
wsTarget.Cells(rowTarget, 18) = "Mengen Ungleich"
End If
Next rowTarget
For rowTarget = 2 To lastRowTarget
If wsTarget.Cells(rowTarget, 17) <> "CP & PG vorhanden" Then
wsTarget.Cells(rowTarget, 17) = "CP & PG neu"
wsTarget.Cells(rowTarget, 1).Interior.ColorIndex = 44
wsTarget.Cells(rowTarget, 3).Interior.ColorIndex = 44
End If
Next rowTarget
|