Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
508to512
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
508to512
508to512
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Listbox befüllen

Listbox befüllen
30.10.2004 16:21:30
Maxx
Hallo,
ich muss ein Formular in Excel erstellen, in dem es mehrer Listboxen gibt, die aus einer externen xls-Datei befüllt werden. Kann ich es irgendwie geschickter machen, momentan benutze ich für das Befüllen der Listboxen für jede Listbox den eingefügten Code 1x. Geht das auch perfomanter (also dass nicht jedes mal die Datenbankdatei geöffnet und wieder geschlossen wird pro Listbox?
Ich bin für jeden Tipp dankbar!! Ach ja, das ganze muss in Excel sein, auch wenn sich Access dafür sicher besser eignen würde. Hier ein Beispiel-Code:
With Me.listshipper
.Clear ' remove existing entries from the listbox
' turn screen updating off,
' prevent the user from seeing the source workbook being opened
Application.ScreenUpdating = False
' open the source workbook as ReadOnly
Set SourceWB = Workbooks.Open("c:\DB.xls", _
False, True)
ListItems = SourceWB.Worksheets(1).Range("A2:A1000").Value
' get the values you want
SourceWB.Close False ' close the source workbook without saving changes
Set SourceWB = Nothing
Application.ScreenUpdating = True
ListItems = Application.WorksheetFunction.Transpose(ListItems)
' convert values to a vertical array
For i = 1 To UBound(ListItems)
.AddItem ListItems(i) ' populate the listbox
Next i
.ListIndex = -1 ' no items selected, set to 0 to select the first item
End With

Danke!
Maxx

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox befüllen
Ulf
Wenn die Daten alle aus dem selben Workbook stammen, kannst du das auch in einem Rutsch erledigen. Ich würde aber statt Workbook.Open mit GetObject hantieren.
Ulf
AW: Listbox befüllen
30.10.2004 16:32:57
Maxx
Hallo Ulf,
danke für den Tipp! Ja die Daten stammen alle aus einer Datei. Kannst du mir vielleicht ein Beispiel mit GetObject geben? Kenne mich nicht wirklich mit VB aus bis jetzt...
Dabei gleich noch eine weiter Frage, ist es möglich in einer Listbox 2 Spalten zu haben? Ich müsste aus der Datenbankdatei in einer Listbox 2 Spalten haben, und dann aus der ausgewählten Zeile die 2. Spalte in eine Zelle zurückschreiben.
Anzeige
AW: Listbox befüllen
Ulf
Ne, sorry, ich hab keine Lust, mir das Szenario nachzubauen. Dein Code ist völlig ohne Variablendeklaration.
Eine Listbox kann, wenn sie ungebunden ist, bis zu 10 Spalten haben.
Ulf
AW: Listbox befüllen
30.10.2004 16:36:30
Rolf
Hallo Ulf,
worin liegt der Vorteil von
GetObject ggü. Workbook.open?
FG
Rolf
AW: Listbox befüllen
Ulf
Der Vorgang läuft unsichtbar, quasi im Hintergrund ab.
Ulf
AW: Listbox befüllen
30.10.2004 17:43:37
Rolf
Hallo Ulf,
schon klar - aber geht's schneller,
ist die Performance besser...?
HG
Rolf
AW: Listbox befüllen
Ulf
Hab noch nie versucht, den Zeitunterschied zu ermitteln.
Ulf
AW: Listbox befüllen
HerbertH
hallo Rolf,
ich habe es jetzt probiert..
GetObject ist nicht schneller...
gruß Herbert
Anzeige
AW: Listbox befüllen
Ulf
Mal mit 500 Dateien getestet, GetObject ist ca. 20% schneller.
Ulf
getobject vs. workbook.open
31.10.2004 08:55:05
Rolf
Hallo Ulf,
20 % ist ja schon 'was.
Der Vergleich basiert auf
deaktivierter Bildschirmaktualisierung
bei Workbook.Open?
HG
Rolf
AW: getobject vs. workbook.open
Ulf
Beide Codes exakt gleich, auch screenupdating = false, nur eben statt Workbooks.Open
GetObject.
Ulf
AW: getobject vs. workbook.open
Rolf
Hallo Ulf,
danke für deine Nachforschungen.
Jetzt wissen wir's.
Herzliche Grüße
Rolf

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige