Listbox füllen

08/04/2008 - 11:14 von Manzenreiter Gerhard | Report spam
Hallo
Hàtte da wiedermal ein Problem.
Ich habe eine Userform mit einer Listbox und die Daten für die Listbox lese
ich von einer externen Datei ein.Nachdem einlesen schliese ich diese Datei
wieder.Wenn ich jetzt aber auf einen Eintrag in der Listbox klicke kommt
sofort eine Störmeldung.
" Für diesen Vorgang ist nicht genügend Speicher verfügbar. "

Lasse ich die andere Datei offen,gibt es keinen fehler.Aber ich möchte diese
Datei nur zum Einlesen der Daten offen haben.


So fülle ich die Listbox

Dim i As Integer
Workbooks.Open("C:\Dokumente und Einstellungen\MG\Desktop\text
.xls").Sheets("Tabelle1").Range("A1").Select

i = ActiveSheet.UsedRange.Rows.Count

With UserForm1.ListBox1
.ColumnCount = 3
.ColumnHeads = True
.RowSource = "Tabelle1!A2:C" & i
.ColumnWidths = "2cm;3cm;3cm"
End With

'Mappe jetzt wieder schliessen
ActiveWorkbook.Close savechanges:=False

Dank im Voraus

Manzenreiter Gerhard
 

Lesen sie die antworten

#1 Thomas Kühn
08/04/2008 - 11:40 | Warnen spam
Hallo Gerhard,

sofort eine Störmeldung.
"  Für diesen Vorgang ist nicht genügend Speicher verfügbar. "


Immer nett was sich MS für Fehlertext ausdenkt ;-)


Lasse ich die andere Datei offen,gibt es keinen fehler.Aber ich möchte diese
Datei nur zum Einlesen der Daten offen haben.

.RowSource = "Tabelle1!A2:C" & i



Du setzt allerdings einen Verweis auf die Daten und
kopierst nicht die Daten selbst.


'Mappe jetzt wieder schliessen
ActiveWorkbook.Close savechanges:=False



Damit sind die Daten aus dem Verweis nicht mehr da.


Versuch mal die Daten direkt in die Source zu kopieren:

i = ActiveSheet.UsedRange.Rows.Count
strSource = ""
For iRow = 2 To i
For iCol = 1 To 3
With Sheets("Tabelle1")
strSource = strSource & .Cells(iRow, iCol) & ";"
End With
Next iCol
Next iRow

strSource = Left(strSource, Len(strSource) - 1)

...

.RowSource = strSource



Oder:

Du setzt die RowSource so daß die Datei gefunden wird:

.RowSource = "[C:\Dokumente und Einstellungen\MG\Desktop
\text.xls]Tabelle1!A2:C" & i



Gruß Thomas

http://www.thomas-kuehn.de

Ähnliche fragen