Warum werden die Werte nicht in der Combobox angezeigt?
Hi, ich programmiere in VBA und bekomme immer einen Fehler. Der Teil des Codes in dem der Fehler passierte:
If cmbUnterkategorie.Value = "Ton" Then
lblArt.Caption = "Farbe:"
lblArt.Visible = True
cmbArt.RowSource = Tabelle1.Range("E2:E" & _
Tabelle1.UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible)
cmbArt.Visible = True
End If
Um genau zu sein wird der Fehler bei der 4. und 5. Zeile angezeigt (gehören zusammen). Was habe ich falsch gemacht? Es gibt ein Formular mit einer Combobox "Unterkategorie". Wenn deren Wert "Ton" entspricht soll eine weitere Combobox eingeblendet werden. Das was man aus dieser Combobox auswählen kann wird aus dem Tabellenblatt Tabelle1 (VBA-interner Name) entnommen. Diese wird allerdings vorher gefiltert und deshalb sollen alle noch übrig gebliebenen Einträge aus Spalte E zur Auswahl in der Combobox stehen! Danke für die Antworten schon im Voraus!
2 Antworten
Ich kann den Fehler zwar reproduzieren, verstehe ihn aber nicht wirklich.
Allerdings konnte ich ihn in meiner Versuchsanordnung SO beheben:
=Sheets("Tabelle1").Range("E2:E" & _
cmbArt.RowSource
Tabelle1.UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible)
Anscheinend "verträgt" er die direkte Ansprache der Tabelle nicht.
Sicherheitshalber würde ich das Rows Count dann auch auf den Namen der Tabelle beziehen, damit es da keine Verwechslungen gibt:
=Sheets("Tabelle1").Range("E2:E" & _
cmbArt.RowSource
Sheets("Tabelle1").UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible)
Vielleicht klappt es bei Dir auch so?
mach mal vor der fehlerzeile 4 ein
msgbox Tabelle1.UsedRange.Rows.Count
ich habe erst freitag ein problem mit einer vorlage gehabt, bei der genau diese angabe völlig sinlos zwischen 148millionen und 296 schwankte - bei jedem aufruf anders
ich habs mir angesehen in excel - deine zuweisung ergibt ein range-object - rowsource erwartet aber einen string - du mußt also an deinem range noch ".adress" anhängen
cmbArt.RowSource = Tabelle1.Range("E2:E" & _ Tabelle1.UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).adress
ich habs allerdings nicht weiter ausprobiert
hab ich bereits gemacht... Aber der used Range gibt nicht die Anzahl der gefilterten Zeilen sondern die Anzahl der gesamten Tabelle zurück also ist das unnötig. ... was passt aber bei diesem Code nicht?