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

Fehler bei Listbox.Rowsource

Fehler bei Listbox.Rowsource
05.06.2018 11:28:13
Starkl
Sehr geehrte Forum Teilnehmer,
ich bin tatsächlich an ein Problem gestoßen, wo ich mich Frage, ob es sich um einen Programmfehler in Excel handelt - Ich weiß das haben schon viele gedacht und sind eines besseren belehrt worden ... Ich hoffe das werde ich auch.
Bei einem Formularaufruf wird ein darin befindliches Listenfeld mit den Daten aus einer Tabelle befüllt. Wird das Formular das erste mal geöffnet, dann funktioniert das Makro Fehlerfrei. Die Listbox wird mit den Werten aus der Tabelle befüllt.
Beim zweiten Aufruf des Formulars kommt immer eine Fehlermeldung:" Ungültiger Eigenschaftswert. RowSource konnte nicht gesetzt werden. Laufzeitfehler 380"
Beim schließen den Formulars verwende ich bereits "unload me", so dass eigentlich jedesmal exakt der gleiche Ablauf sein müsste....
Anbei der eingekürzte Code:
Private Sub UserForm_Activate()
S = "Stammdaten"
M= “MR” ‘Tabellenblattname
Application.ScreenUpdating = False
Me.LBMengenregulierung.Clear
Me.LBMengenregulierung.ColumnCount = 11
Me.LBMengenregulierung.ColumnHeads = False
Me.LBMengenregulierung.ColumnWidths = "0cm;2cm;7,5cm;1,9cm;2,2cm;2,2cm;2,2cm;2,2cm;2,2cm;2,2cm;  _
_
_
2cm"
Me.LBMengenregulierung.RowSource = ""
'Alle alten Einträge in der Tabelle löschen
Sheets(M).Range("A2:P500").ClearContents
‘Die Tabelle neu mit einer Schleife befüllen
For ZeileS = 3 To 200
'Befüllen der Tabelle
Anweisung
ZeileM = ZeileM + 1
End If
Next
Application.ScreenUpdating = True
Quelle = CStr("'" & M & "'!A2:K" & ZeileM - 1)
FRMMengenregulierung.LBMengenregulierung.RowSource = Quelle
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Fehler bei Listbox.Rowsource
05.06.2018 13:22:28
Daniel
Hi
wie kopiest du deinen Code?
wo kommen die schrägen Hochkommas vor einigen Kommentaren her?
was passiert bei "Anweisung"
Wo ist IF zum END IF in der For-Next-Schleife?
warum programmierst du die Einstellungen der Listbox?
Alle Einstellungen, die fix sind und nicht berechnet werden müssen, kann man auch direkt in die Eigenschaftsliste schreiben.
Außer RowSource könntest du alle Listboxeigenschaften direkt setzen.
warum verwendesst du einmal "ME" und am Schluss dann: "FRMMengenregulierung" um die Userform anzusprechen.
Wenn es die gleiche sind, sollte man auch immer die gleiche Ansprechmethode verwenden.
Gruß Daniel
Anzeige
AW: Fehler bei Listbox.Rowsource
05.06.2018 13:26:37
ChrisL
Hi
Sub t()
m = “MR”
MsgBox m
m = "MR"
MsgBox m
End Sub
Wenn der Debugger anspringt, die Variablen prüfen.
cu
Chris
AW: Fehler bei Listbox.Rowsource
05.06.2018 15:35:56
fcs
Hallo Starkl,
du musst eine Prüfung einbauen, ob in Stammdaten anzuzeigenden Daten gefunden wurden bevor du den Zellbereich der Combobox als Quelle zuweist.
Außerdem sollte die Clear-Methode nicht auf eine List-/Combobox angewendet werden, der ein Zellbereich als Quelle zugewiesen wird.
Der Fehler tritt auf, wenn ZeileM - 1 Null wird.
Da die Daten ab Zeile 2 der Box als Quelle zuweisen willst must du den Zeilenzähler ZeileM prüfen auf
ZeileM - 1 
So wie ich dass sehe musst du auch irgendwo den Startwert von ZeileM auf 2 setzen. Aber das hängt dann davon ab, was sich hinter sich hinter Anzeigen versteckt und wie der AUfbau der Daten in den beiden beiden Blättern ist.
Gruß
Franz
Private Sub UserForm_Activate()
S = "Stammdaten"
M = "MR" 'Tabellenblattname
Application.ScreenUpdating = False
Me.LBMengenregulierung.Clear  'nicht gut für Combobox mit RowSource
Me.LBMengenregulierung.ColumnCount = 11
Me.LBMengenregulierung.ColumnHeads = False
Me.LBMengenregulierung.ColumnWidths = _
"0cm;2cm;7,5cm;1,9cm;2,2cm;2,2cm;2,2cm;2,2cm;2,2cm;2,2cm;2cm"
Me.LBMengenregulierung.RowSource = ""
'Alle alten Einträge in der Tabelle löschen
Sheets(M).Range("A2:P500").ClearContents
'Die Tabelle neu mit einer Schleife befüllen
For ZeileS = 3 To 200
'Befüllen der Tabelle
'Anweisungen
Next
Application.ScreenUpdating = True
'Prüfung ob Stammdaten gefunden wurden
If ZeileM - 1 

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige