Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1932to1936
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

Befüllen einer ListBox

Befüllen einer ListBox
12.06.2023 13:46:23
WunschPizza

Hey ho liebes Forum,
ich habe folgendes Projekt: Ich erstelle eine "Datenbank" aus welcher dann über eine UserForm daten aufgerufen und in eine Word Datei transferiert werden können.
Dabei verwende ich eine Große ListBox auf der UserForm welche dafür sorgt das die Aktuell ausgewählten Daten Visualisiert werden, heißt die ListBox füllt sich immer mit neuen Werten, je nach dem welchen Such Filter ich verwende.
Nun zu meinem Problem. Die liste zu Füllen ist bei meinem ersten Tabellenblatt kein Problem.
Sobald ich aber den Filter ändere, der die Worksheet Seite bestimmt, bringt die UserForm1.ListBox1.List = ... einen Objektfehler.
Aber Warum ?

Hier mein Code:

Private Sub ComboBox1_Change()

Dim Worksheet As String
Dim Workbook As String
Dim Bereich As Range
Dim AnzahlZeilen As Integer
Dim AnzahlSpalten As Integer

Application.ScreenUpdating = False

Workbook = "Zensiert" (nicht das ich dem Forum nicht Traue, aber ist Geschäftlich, daher ein wenig Vorsicht)

Workbooks.Open (Workbook)

Worksheet = UserForm1.ComboBox1.Value -->hier übergebe ich den neuen Worksheet Namen
AnzahlSpalten = WorksheetFunction.CountA(Workbooks.Open(Workbook).Worksheets(Worksheet).Rows(1))
AnzahlZeilen = WorksheetFunction.CountA(Workbooks.Open(Workbook).Worksheets(Worksheet).Columns(1))

With UserForm1.ListBox1
.Clear
.ColumnCount = AnzahlSpalten
.List = Workbooks.Open(Workbook).Worksheets(Worksheet).Range(Cells(1, 1), Cells(AnzahlZeilen, AnzahlSpalten)).Value --> hier entsteht der Fehler
End With

Workbooks.Open(Workbook).Close SaveChanges:=False

Application.ScreenUpdating = True

End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Befüllen einer ListBox
12.06.2023 13:50:52
onur
Hat dir noch keiner gesagt, dass du KEINE VBA-Schlüsselwörter als Variablenname nehmen darfst?
SOWAS geht gar nicht:
Dim Worksheet As String
Dim Workbook As String


AW: Befüllen einer ListBox
12.06.2023 14:12:55
WunschPizza
Okay, nein leider habe ich das bisher noch nicht Mitbekommen.
Das werde ich natürlich sofort ändern und ich danke dir für den Hinweis.
Das ganze löst nur Leider mein Problem nicht.
Hast du dafür eine Lösung ?


AW: Befüllen einer ListBox
12.06.2023 14:18:21
Rudi Maintaire
hallo,
das hängt an mangelhafter Referenzierung.
  Dim strWKS As String
  Dim strWKB As String
  Dim objWKB As Workbook
  Dim objWKS As Worksheet
  Dim Bereich As Range
  Dim AnzahlZeilen As Long
  Dim AnzahlSpalten As Long
  
  Application.ScreenUpdating = False
  
  strWKB = "Zensiert" '(nicht das ich dem Forum nicht Traue, aber ist Geschäftlich, daher ein wenig Vorsicht)
  strWKS = UserForm1.ComboBox1.Value '-->hier übergebe ich den neuen Worksheet Namen
  
  Set objWKB = Workbooks.Open(strWKB)
  Set objWKS = objWKB.Sheets(strWKS)
  
  With objWKS
    AnzahlSpalten = WorksheetFunction.CountA(.Rows(1))
    AnzahlZeilen = WorksheetFunction.CountA(.Columns(1))
    Set Bereich = .Range(.Cells(1, 1), .Cells(AnzahlZeilen, AnzahlSpalten))
  End With
  
  With UserForm1.ListBox1
    .Clear
    .ColumnCount = AnzahlSpalten
    .List = Bereich.Value
  End With
  
  objWKB.Close SaveChanges:=False
Gruß
Rudi


Anzeige
AW: Befüllen einer ListBox
12.06.2023 14:28:44
WunschPizza
Ich danke dir vielmals, das hat mein Problem gelöst.


AW: Befüllen einer ListBox
12.06.2023 14:42:29
snb
Private Sub Userform_initialize()
   listbox1.List=sheets(1).usedrange.value
   listbox1.columncount=ubound(listbox1.list,2)+1
Edn Sub
ferttig

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige