Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1056to1060
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
ComboBox Daten einlesen
11.03.2009 13:12:12
Leitz
Hallo!
Habe mit dem einlesen in eine ComboBox kleine Probleme!
Folgender Code:

Private Sub UserForm_Initialize()
Dim objDic As Object
Dim lxRow As Long, lLRow As Long
lxRow = 1
lLRow = ActiveSheet.Range("Q" & ActiveSheet.Rows.Count).End(xlUp).Row
On Error Resume Next ' Prevent Error message on duplicate keys
Set objDic = CreateObject("Scripting.Dictionary")
For lxRow = lLRow To 3 Step -1
If ActiveSheet.Cells(lxRow, "Q").Value  "" Then
objDic.Add ActiveSheet.Cells(lxRow, "Q").Value, ActiveSheet.Cells(lxRow, "Q").  _
_
Value
End If
Next lxRow
On Error GoTo 0
ComboBox1.List = objDic.Keys
Set objDic = Nothing
ComboBox1.ListIndex = 0
End Sub


Wenn in Spalte Q keine Einträge sind dann habe ich VBA Fehler, möchte aber gerne eine Info daß keine Daten zur Verarbeitung vorhanden sind.
Außerdem zeigt mir die Box die einmal eingelesen Daten auch dann noch an, wenn ich sie bereits gelöscht habe. Muß ich die Box vor neuem Aufruf leeren und neu einlesen?
Wenn JA wie geht das?
Bitte um Hilfe
Gruß
Leitz G.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox Daten einlesen
11.03.2009 14:29:49
Renee
Hi Leitz,
Lösche den ganze Code und schmeiss diesen in die Userform:

Private Sub UserForm_Activate()
Dim objDic As Object
Dim lxRow As Long, lLRow As Long
lxRow = 1
lLRow = ActiveSheet.Range("Q" & ActiveSheet.Rows.Count).End(xlUp).Row
ComboBox1.Clear
If lLRow = 1 Then
MsgBox "Es sind keine Einträge vorhanden", vbOKOnly + vbCritical
Exit Sub
End If
On Error Resume Next ' Prevent Error message on duplicate keys
Set objDic = CreateObject("Scripting.Dictionary")
For lxRow = lLRow To 3 Step -1
If ActiveSheet.Cells(lxRow, "Q").Value  "" Then
objDic.Add ActiveSheet.Cells(lxRow, "Q").Value, ActiveSheet.Cells(lxRow, "Q").Value
End If
Next lxRow
On Error GoTo 0
ComboBox1.List = objDic.Keys
Set objDic = Nothing
ComboBox1.ListIndex = 0
End Sub


Sollte beide Probleme lösen!
GreetZ Renée
Anzeige
AW: ComboBox Daten einlesen
11.03.2009 17:38:45
Leitz
Hallo Renee!
Danke für die Hilfe!
Habs noch ein wenig geändert auf:

Private Sub UserForm_Activate()
Dim objDic As Object
Dim lxRow As Long, lLRow As Long
lxRow = 1
lLRow = ActiveSheet.Range("Q" & ActiveSheet.Rows.Count).End(xlUp).Row
If lLRow  2 Then
ComboBox1.Clear
On Error Resume Next ' Prevent Error message on duplicate keys
Set objDic = CreateObject("Scripting.Dictionary")
For lxRow = lLRow To 3 Step -1
If ActiveSheet.Cells(lxRow, "Q").Value  "" Then
objDic.Add ActiveSheet.Cells(lxRow, "Q").Value, ActiveSheet.Cells(lxRow, "Q"). _
Value
End If
Next lxRow
On Error GoTo 0
ComboBox1.List = objDic.Keys
Set objDic = Nothing
ComboBox1.ListIndex = 0
End If
End Sub


Das funktioniert jetzt (Zufall ? durch probieren).
Hab jetzt noch ein blödes Problem mit folgendem Code:
Dim rngZelle As Range, wks As Worksheet
Set wks = ActiveSheet
Selection.AutoFilter Field:=11, Criteria1:="" 'Spalte K
With wks
For Each rngZelle In .Range(.Cells(3, 11), _
.Cells(.Rows.Count, 11).End(xlUp)).Cells.SpecialCells(xlCellTypeVisible)
.Cells(rngZelle.Row, 16).Value = .Cells(rngZelle.Row, 4).Value
.Cells(rngZelle.Row, 17).Value = strAktiveDatei
.Cells(rngZelle.Row, 18).Value = .Cells(rngZelle.Row, 7).Value
.Cells(rngZelle.Row, 19).Value = strBearbeiterÜbergabeEintrag
.Cells(rngZelle.Row, 4).Value = ""
Next
End With
Das funktioniert tadellos solange NICHT die Zeile 3 die gewählte und die einzige ist die gefunden wird.
Warum ist das so!
Gruß und Dank
Leitz G.

Anzeige
Erledigt oT
13.03.2009 17:31:32
Renee

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige