Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1612to1616
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
Inhaltsverzeichnis

Seltsame automatische Änderungen im Dictionary

Seltsame automatische Änderungen im Dictionary
05.03.2018 14:50:10
Tim
Hallo Zusammen,
für die Auswertung von div. Excel Listen habe ich ein VBA Makro geschrieben welches die unterschiedlichen Inhalte mit Hilfe von Klassen strukturiert und dann auswertet. Es gibt drei Klassen die folgende Objekte darstellen: Aufträge, Baugruppen und Teile. Ein Teil kann immer nur einmal vorkommen. Eine Baugruppe kann mehrere unterschiedliche Teile enthalten und ein Auftrag auch mehrere Baugruppen. Das Ganze ist dann mit Hilfe von Dictionaries verschachtelt.
Eine der Auswertungen ("Teilenummern_kumulieren") kumuliert alle identischen Teile und erstellt eine Liste. Während der Kumulierung passiert allerdings etwas sehr kurioses: der kumulierte Wert ersetzt immer einen Wert im übergebenen Dictionary. Das Dictionary, in dem Code unten als "dictAuftraegeTmp" benannt, wird aber als "ByVal" übergeben. Eine Änderung in der ursprünglichen Prozedur dürfte gar greifen. Darüber hinaus habe ich zum testen das Dictionary vor der Kumulierung kopiert um einen Fehler von ByRef und ByVal auszuschließen. Nach der Prozedur sind allerdings beide Dictionaries verändert....
Zeilen 370 und 430 liefern den Wert 8. Die Zeilen 480 und 520 liefern beide den 596.
340 Set objAuftrag = dictAuftraege("8586")
350 Set objBaugruppe = objAuftrag.Baugruppen("30-234-01-06")
360 Set objTeil = objBaugruppe.Teile("7033493")
370 Debug.Print "Check 1: " & objTeil.BA_Bedarf
' Teilenummern kumulieren (mdlTeilenummern_kum)
380 StatusAnzeige "Teilenummern kumulieren", 8 / intGesamtanzahlStatus
390 Set dictAuftraegeTmp = dictAuftraege
400 Set objAuftrag = dictAuftraegeTmp("8586")
410 Set objBaugruppe = objAuftrag.Baugruppen("30-234-01-06")
420 Set objTeil = objBaugruppe.Teile("7033493")
430 Debug.Print "Check temp 1: " & objTeil.BA_Bedarf
440 Call Teilenummern_kumulieren(dictAuftraegeTmp, dictBemerkungen, lngAnzahlTeilenummern)
450 Set objAuftrag = dictAuftraegeTmp("8586")
460 Set objBaugruppe = objAuftrag.Baugruppen("30-234-01-06")
470 Set objTeil = objBaugruppe.Teile("7033493")
480 Debug.Print "Check temp 2: " & objTeil.BA_Bedarf
490 Set objAuftrag = dictAuftraege("8586")
500 Set objBaugruppe = objAuftrag.Baugruppen("30-234-01-06")
510 Set objTeil = objBaugruppe.Teile("7033493")
520 Debug.Print "Check 2: " & objTeil.BA_Bedarf
Ich bin etwas ratlos warum das so ist und was ich noch versuchen kann. Hat jemand von euch eine Idee?
Danke und Gruß,
Tim

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Seltsame automatische Änderungen im Dictionary
06.03.2018 11:42:27
Tim
Problem gelöst, indem das Objekt "geklont" wurde.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige