Hi Leute,
ich hoffe ihr könnt mir bei meinem kleinen Problemchen helfen.
Das Problem ist das Einlesen von Daten in eine Combobox.
Meine Datei besteht aus 3 Tabellenblättern.
Wenn ich meine Datei öffne und in Tabelle 2 auf den Button "Ausführen" klicke, erscheint zunächst eine Abfrage. Diese Abfrage kopiert erstmal Ausgangsdaten aus Tabelle 1 in eine "Hilfstabelle" Tabelle 3. Dann soll Tabelle 3 nach den abgefragten Daten gefiltert werden. Die Filterung erfolgt hier durch die Abfrage in einer Userform, die sich die Daten mit Hilfe eines Scripting Dictionary holt und in einer Combobox anzeigt.
Hier ist mein Problem. Wenn ich den Code über den Button auf Tabelle 2 ausführe, ist der Filter und somit auch die Auszählung falsch. Es werden nicht die richtigen Daten in der Combobox angezeigt, also nicht die Daten, die in die Tabelle 3 kopiert wurden.
Habe ich aber die Tabelle 3 geöffnet und führe den Code manuell aus, wird der richtige Filter gesetzt und die Auszählung ist korrekt.
Der Fehler liegt meiner Meinung nach in der Erstellung der ComboBox bzw. dem Code, aus dem die Daten gezogen werden, also in den Userformen. Es werden einfach die Daten aus der als erstes ausgeführten Abfrage genommen. Bei einer zweiten Ausführung werden diese wiederverwendet und nicht die gewählt, die man zuletzt ausgewählt hat.
Vielleicht muss ein Code zum resetten des Dictionary eingefügt werden? Kennt sich da jemand aus? Ich weiß sonst leider nicht mehr weiter...
Folgenden Code habe ich dort verwendet:
Sub UserForm_Initialize()
'Auslesen der Daten aus "Hilfstabelle"
Dim objDic As Object
Dim lngZ As Long
Dim i As Integer
'Hier evtl ein Reset einsetzen ?
Set objDic = CreateObject("Scripting.Dictionary")
With Sheets("Hilfstabelle")
For i = 12 To Sheets("Hilfstabelle").Cells(.Rows.Count, 3).End(xlUp).Row
If Sheets("Hilfstabelle").Rows(i).Hidden = False Then
ComboBox2.AddItem .Cells(i, 3)
objDic(.Cells(i, 3).Value) = 0
End If
Next
End With
Me.ComboBox2.List = objDic.keys
With Me.ComboBox2
.AddItem "Alle Daten"
End With
End Sub
Beste Grüße
Rafa
|