Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1048to1052
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

ListBox befüllen

ListBox befüllen
13.02.2009 11:33:00
Lenni
Moin Excellianer!
Im Archiv habe ich sehr sehr viele Beispiele zum Befüllen einer ListBox gefunden. Ich konnte aber leider nix meiner unten stehenden Fragestellung zuordnen.
Mit folgenden Code befülle ich eine ListBox in einem UserForm.


Private Sub UserForm_Activate()
Me.ListBox1.RowSource = "Tabelle1!B10:B50"
End Sub


Wenn aber leere Felder im Bereich B10:B50 der Tabelle1 sind, dann werden diese mit übernommen. Dazwischen und - vor allem - vom letzten Eintrag bis zum Ende der Liste.
Das empfinde ich als sehr unschön! Deshalb meine Frage: Kann man es realisieren, dass nur (!) die Einträge der Liste aus der Tabelle1 in der ListBox1 erscheint? Wie geht das?
Vielen Dank!
Viele Grüße aus dem hohen Norden!
Lenni

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListBox befüllen
13.02.2009 11:38:00
Tino
Hallo,
fülle diese mit einer Schleife und der AddItem-Methode und Filtere die Leeren Zellen aus.
Gruß Tino
AW: ListBox befüllen
13.02.2009 11:57:00
Lenni
Hallo Tino!!
Danke für Deine Antwort Tino! ...und ich schmunzel so vor mich hin: Du traust es mir also zu bzw. Du bist der Meinung, das ich in VBA soweit sein müßte, es selber zu schaffen!! ...und deshalb Dein "Anschubser".
O.K. Tino! Das empfinde ich als ein großes Lob!! ...und ich werde mich jetzt "an die Arbeit" machen!! Es wird aber seine Zeit brauchen. Sollte ich es nicht schaffen, melde ich mich noch mal! ...oder sollte ich es schaffen, die Lösung hier natürlich posten!
Drück mir die Daumen!! Melde mich!!
Gruß
Lenni

Anzeige
noch eine mit Beispiel
13.02.2009 12:05:00
Tino
Hallo,
dies mit einer (zwei) Area zu machen.
Beispiel:

Dim MeArea, MeAreaList() As String
Dim i As Integer, ii As Integer
MeArea = [Tabelle1!B10:B50] 'Zellbereich
For i = 1 To UBound(MeArea) 'Area Filtern
If MeArea(i, 1)  "" Then
ReDim Preserve MeAreaList(ii)
MeAreaList(ii) = MeArea(i, 1)
ii = ii + 1
End If
Next i
ListBox1.List = MeAreaList
Erase MeArea: Erase MeAreaList


Gruß Tino

AW: noch eine mit Beispiel
13.02.2009 12:47:00
Lenni
Danke Tino! ...also bei Deinem "Anschubser" trennt sich die "Spreu vom Weizen"... ...und ich bin da eher die Spreu... ;-((
Meine Überlegungen enden irgendwie immer im Nirvana....
Ist es entscheidend, das die ListBox1 in einem Page einer MultiPage ist?! ...meiner Meinung nach doch wohl eher nicht. Ich meine, ich kann doch Objekte immer   direkt "ansprechen"  ... ...oder?! Und muss nicht im VBA-Code darauf Rücksicht nehmen, dass sie irgendwo drinne sind... ?!?
Dein zweites Beispiel mit Area wirft Fehlermeldungen raus.
  • Tino, darf ich Dich bitten, mir ein Beispiel mit einer Schleife zu posten und - wenn es Dir nix ausmacht - mir ein wenig zu erklären, was eine Schleife eigentlich ist und wie sie grundsätzlich umgesetzt wird. Aber nur, wenn es Dir nix ausmacht!!

  • Ich meine das ungefähr so: Josef Ehrenberger hat mir mal zum Thema Matrixformeln diesen Link gepostet:
    http://www.online-excel.de/excel/singsel.php?f=26
    Das war wie eine Offenbarung für mich!! Hast Du ähnliche Tips?!
    UND: Ich bin langsam so weit, dass ich VBA mit Hilfe eines Buches erarbeiten will. Doch welches? Es muss mich wirklich da abholen, wo ich stehe und mit einfachen Beispielen erklären. Es gibt da viele Bücher... ...aber welches ist das richtige für mich (Bücher sind sehr teuer!! ...und ich will nicht erst beim 17. das Richtige gefunden haben!). Hast Du hier einen Tip?!
    Danke für Dein konkretes Tun und Handeln (...das mit der "Mühe" passt ja nicht wirklich!) und Deine Hilfe!
    Gruß
    Lenni

    Anzeige
    AW: noch eine mit Beispiel
    13.02.2009 13:08:00
    Tino
    Hallo,
    so direkt habe ich da nichts,
    ich habe mich halt irgendwann mal damit beschäftigt, gelesen und getestet.
    Heute ist dies irgendwo in meinem Hinterstübchen drin.
    Eine Multiseite kann man sich so vorstellen, ist wie eine Userform auf der Userform wobei jedes Register eine Userform ist und die Elemente darauf muss man entsprechend ansprechen.
    (Hoffentlich bekomme ich jetzt keine Schimpfe mit den wirklichen Profis, bei solch einem Vergleich)
    Beispiel:
    MultiPage1(0) ist Register 1, MultiPage1(1) wäre Register 2 usw.…
    
    Private Sub UserForm_Initialize()
    Dim MeArea, MeAreaList() As String
    Dim i As Integer, ii As Integer
    MeArea = [Tabelle1!B10:B50] 'Zellbereich
    For i = 1 To UBound(MeArea) 'Area Filtern
    If MeArea(i, 1)  "" Then
    ReDim Preserve MeAreaList(ii)
    MeAreaList(ii) = MeArea(i, 1)
    ii = ii + 1
    End If
    Next i
    MultiPage1(0).ListBox1.List = MeAreaList
    Erase MeArea: Erase MeAreaList
    End Sub
    


    Gruß Tino

    Anzeige
    hier ein Beispiel
    13.02.2009 13:51:00
    Tino
    Hallo,
    habe Dir mal zwei Varianten aufgebaut, am Ende wird ein Timer ausgegeben,
    dies soll Dir nur zeigen warum die Area Variante zu bevorzugen ist.
    Die lesen mit Area, sieht zwar vom Code her länger aus, ist aber um ein vielfaches schneller.
    https://www.herber.de/bbs/user/59426.xls
    Zu Schleifen, schau mal in die Hilfe unter
    For Next
    For Each
    Do Loop
    While...Wend
    Ich denke dies sind die wichtigsten.
    Gruß Tino
    AW: noch eine mit Beispiel
    13.02.2009 15:21:00
    Horst
    Hi,
    der Vergleich zwischen UF und Multipage hinkt. In unterschiedlichen UF kann es Controls
    mit identischen Namen geben, im MP müssen alle Namen unique sein. Insofern müssen
    die Controls nicht zusätzlich mit dem Containernamen angesprochen werden.
    mfg Horst
    Anzeige
    stimmt...
    13.02.2009 17:02:00
    Tino
    Hallo,
    aus irgendeinem Grund habe ich mir das so angewöhnt, diese über die Page anzusprechen.
    Werde auch bei dieser Methode bleiben. ;-)
    Gruß Tino
    Vielen Dank!!
    13.02.2009 17:24:00
    Lenni
    Danke Tino! ...und auch Dir Horst für Deine Erklärung! So ganz verstehe ich das nicht, werde mich da aber durcharbeiten!
    Deine Beispieldatei mit der gestoppten Zeit ist klasse!! Mit Hilfe Deiner weiteren Erklärungen werde ich mich mal der "Schleifenproblematik" annehmen. Das mit der Area schaue ich mir dann an. Eins nach dem anderen.
    Dafür, dass Du VBA so "nebenbei angenommen hast", ziehe ich den Hut. Finde ich schon ziemlich gut!! Bei einigen Sachen macht es ja auch mir so langsam "klick". Sitze da und schreibe einen kleinen Code... ...und dann funktioniert er auch. Konnte ich vor einem Jahr auch noch nicht. Es ist aber nach wie vor "Schmalspur-VBA" bei mir.
    Ach ja: Ich habe Dein Beispiel - ohne die Stopuhr - mit der Schleife "umgemodelt für mein Hauptprojekt. ES LÄUFT!! ...aber das mit MeArea schau ich mir wie gesagt auch noch an!!
    Vielen Dank Tino!! ...für Deine Super-Hilfe!!
    Gruß
    Lenni

    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige