Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Listbox in Excell  (gelezen 9247 keer)

0 leden en 1 gast bekijken dit topic.

Offline tinbo

  • Lid
  • *
  • Berichten: 11
  • De Oplossing!
Listbox in Excell
« Gepost op: 17 mei 2005, 18:59:33 »
Ik zou graag in een listbox op een formulier (in VBA)de gegevens van 2 rijen uit een werkblad laten verschijnen.
Met de rowcource krijg ik dit maar gedeeltelijk gedaan, hij geeft nl de gegevens van 1 rij weer...hoe krijg ik die tweede erbij ???
Win 98 2'ed. - AMD Athlon 1600 Mhz - 512 Mb RAM

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.181
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re:Listbox in Excell
« Reactie #1 Gepost op: 17 mei 2005, 19:30:44 »
Hallo,

dat gaat ook niet. De RowSource is zoals het woord zegt de bron van 1 rij. je kan geen gegevens van de twee rijen weergeven met RowSource.

Wat je wel kan is een derde kolom bijmaken, en hierin een formule gebruiken.
voorbeeld:
A1  boeken    B1  kast     C1  =TEKST.SAMENVOEGEN(A1;B1)

De formule in C1 maakt een nieuw woord "boekenkast", door de inhoud van de opgegeven cellen samen te voegen.

Je kan er zelf nog tekst bij zetten, zoals:

= TEKST.SAMENVOEGEN(A1;" en ";B1)
resulteert in : C1   "boeken en kast"
of
= TEKST.SAMENVOEGEN(B1;" en ";A1)
resulteert in : C1   "kast en boeken "

De formule in C1 kan je nu doortrekken voor alle cellen in die kolom.
Het bereik in deze kolom kan je nu in RowSource van je listbox plaatsen, en dan zie je de inhoud van kolom A en kolom B via C.

Ik hoop dat je hiermee geholpen bent.

SoftAid
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline buks

  • Ervaren lid
  • ***
  • Berichten: 313
  • Oplossing.be
Re:Listbox in Excell
« Reactie #2 Gepost op: 17 mei 2005, 19:56:43 »
hallo,

Dit gaat weldegelijk met VBA op volgende wijze :

Private Sub UserForm_Initialize()
Dim LaatsteRij, i As Integer
LaatsteRij = ActiveCell.SpecialCells(xlLastCell).Row
For i = 1 To LaatsteRij
    ListBox1.AddItem Range("a" & i) & " " & Range("b" & i)
Next
End Sub

Indien dit niet lukt of als je iets niet begrijpt moet je maar een seintje geven

groetjes
Win 7 Home - Intel Core i3 CPU 550 @ 3.20GHz - Basicnet XL - IE 9 - MS Office 2010 - Norton Internet Security 2012

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.181
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re:Listbox in Excell
« Reactie #3 Gepost op: 18 mei 2005, 00:24:28 »
Hallo Buks,

Waar (en met welke methode) plaats je die macro?
In een Module, of in blad1 ?

SoftAid
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline LucHeyndrick

  • Volledig lid
  • **
  • Berichten: 217
  • Oplossing.be
Re:Listbox in Excell
« Reactie #4 Gepost op: 18 mei 2005, 09:09:50 »
Hoi Beste mensen,

je kan wél 2 kolommen in een listbox plaatsen.  Gewoon de Eigenschap ColumnCount van de listbox (kan ook met ComboBox) instellen op 2.

Veronderstel even dat de Listbox de naam ListBox1 heeft.
En de lijst die je wil laden op Blad1 staat in kolom A en B.

Zet dan deze code in je userform:

Private Sub UserForm_Initialize()
    Dim i As Integer
    i = 1
    With ListBox1
    Do Until Sheets("Blad1").Cells(i, 1).Value = ""
        .AddItem Sheets("Blad1").Cells(i, 1).Value
        .List(i - 1, 1) = Sheets("Blad1").Cells(i, 2).Value
        i = i + 1
    Loop
    End With
End Sub

En VOORAL: ColumnCount op 2 instellen.

Luc
Gelieve uw systeemgegevens in te vullen. Klik HIER voor meer informatie.

Offline buks

  • Ervaren lid
  • ***
  • Berichten: 313
  • Oplossing.be
Re:Listbox in Excell
« Reactie #5 Gepost op: 18 mei 2005, 18:27:31 »
Waar (en met welke methode) plaats je die macro?
In een Module, of in blad1 ?

In VBA kies je invoegen UserForm.  Hier maak je dan een Listbox aan.  Nu moet je ervoor zorgen als het formulier wordt opgeroepen de listbox wordt aangevuld met de gewenste gegevens. Dit gebeurt bij het initialiseren van het UserForm.  Dubbelklik hiervoor op het formulier, nu kom je in de procedure UserForm_Click() wijzig deze naar UserForm_Initialize() (dit via de keuzelijst rechts bovenaan) en voeg hier de code toe.

Bij mijn code worden alle gegevens van 1 rij samengevoegden kan je ze scheiden met eventuele tekens of spaties. Bij de manier van LucHeyndrick worden de gegevens genomen zoals ze in excel staan en zie je de kolom indeling. Afhankelijk van wat je precies wenst te doen met de gegevens heeft elk systeem zijn voordelen.

Om het Userform op te roepen kan je een knop maken in je werkblad en dubbelklik terwijl je in ontwerpmodus zit op de knop dan krijg je :

Private Sub CommandButton1_Click()

End Sub

Voeg hier volgende code toe :

UserForm1.show

Vervang eventueel UserForm1 door de naam die je aan het formulier gegeven hebt.

Ga nu naar het werkblad en zet de ontwerpmodus af.  Als je nu op de knop drukt zou het formulier moeten verschijnen.

Groetjes
Win 7 Home - Intel Core i3 CPU 550 @ 3.20GHz - Basicnet XL - IE 9 - MS Office 2010 - Norton Internet Security 2012

 


www.combell.com