Hallo Anna
wenn ich mir deinen Code anschaue sage ich nur, du bist eine hervorragende Programmiererin! Alle Achtung, in einigen Befehlen bist du besser wie ich! Was dir vielleicht noch fehlt sind viele Jahre Programmier Erfahrung, und meine eigene Handschrift Codes zu entwickeln. Ich war erstaunt in einer For next Schleife DIM Variable zu sehen, denn die setze ich immer an den Anfang des Codes. Es liegt an dir wie du das künftig handhaben willst!
Ich habe mir erlaubt deinen Code auf mein System zu aendern, um ihn besser verstehen zu können! Dabei fiel mir sofort etwas auf!! Es springt dir förmlich ins Auge, wenn der DIM Text nicht mehr die Übersicht stört! Schau diir bitte mal die ersten Variablen mit der Endung "S" und "T" an, da stimmt etwas nicht! Du laedst beide aus denselben Zellen. Das ist NICHT okay. Weil es mir zu lange dauert den ganzen Code zu verstehen bitte ich dich zuerst mal diese Variablen zu prüfen. Vielleicht beseitigt das schon deinen Fehler. Würde mich sehr freuen!
Du bist wirklich sehr gut, was ich mit Ü65 als Vorteil besitze sind viele lange Jahre Erfahrung in Fehlersuche. Und über 2.000 Hilfe Tipps in Foren.
mfg Nobody
Sub Makro1()
Dim CNS As Variant 'CNA = Component Number Steckbriefe (AllPro)
Dim CNT As Variant 'CNA = Component Number Target-Datei
Dim GCS As Variant 'GCS = Group Code Steckbriefe (AllPro)
Dim GCT As Variant 'GCT = Group Code Target-Datei
Dim Menge2020S As Long
Dim Menge2020T As Variant
Dim Menge2021S As Double
Dim Menge2021T As Variant
Dim Menge2022S As Double
Dim Menge2022T As Variant
Dim Menge2023S As Double
Dim Menge2023T As Variant
Dim Menge2024S As Double
Dim Menge2024T As Variant
Dim Menge2025S As Double
Dim Menge2025T As Variant
Dim Menge2026S As Double
Dim Menge2026T As Variant
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
'Daten werden ab der zweiten Zeile eingefügt
For rowTarget = 2 To lastRowTarget
For rowSteckbriefe = 2 To lastRowSteckbriefe
CNS = (wsSteckbriefe.Cells(rowSteckbriefe, 7).Value)
CNT = (wsTarget.Cells(rowTarget, 3).Value)
GCS = (wsSteckbriefe.Cells(rowSteckbriefe, 2).Value)
GCT = (wsTarget.Cells(rowTarget, 1).Value)
Menge2020S = (wsSteckbriefe.Cells(rowSteckbriefe, 15).Value)
Menge2020S = (wsSteckbriefe.Cells(rowSteckbriefe, 16).Value)
Menge2020T = (wsTarget.Cells(rowTarget, 10).Value)
Menge2021T = (wsTarget.Cells(rowTarget, 11).Value)
Menge2022S = (wsSteckbriefe.Cells(rowSteckbriefe, 17).Value)
Menge2022T = (wsTarget.Cells(rowTarget, 12).Value)
Menge2023S = (wsSteckbriefe.Cells(rowSteckbriefe, 18).Value)
Menge2023T = (wsTarget.Cells(rowTarget, 13).Value)
Menge2024S = (wsSteckbriefe.Cells(rowSteckbriefe, 19).Value)
Menge2024T = (wsTarget.Cells(rowTarget, 14).Value)
Menge2025S = (wsSteckbriefe.Cells(rowSteckbriefe, 20).Value)
Menge2025T = (wsTarget.Cells(rowTarget, 15).Value)
Menge2026S = (wsSteckbriefe.Cells(rowSteckbriefe, 21).Value)
Menge2026T = (wsTarget.Cells(rowTarget, 16).Value)
'Mengen aus der AllPro-Datei (Steckbriefe)
'Mengen aus der Target-Datei
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
End Sub
|