[EXCEL 2007] Listbox VBA

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Anoniem: 266173

Topicstarter
Hallo,

Ik ben me zelf aan het verdiepen in VBA en de meeste dingen lukken aardig.

Nu loop ik alleen vast op het volgende probleem:

1. Ik heb 2 listboxen
2. De eerste listbox laat een groep cellen zien
3. De 2e listbox zou ook groep cellen moeten laten zien, maar deze is afhankelijk van de keuze uit listbox 1.

Dus eigenlijk zou er een soort als()/ if() functie bij de macro/ row.source worden ingebracht. Ik ben nu al een aantal avonden bezig maar het lukt niet.

Weet iemand hoe ik dit aan moet pakken ik heb al middels valideren en een inmense als() functie het voor elkaar gekregen "=ALS(B11=AC11;h;ALS(B11=AE11;v;ALS(B11=AG11;l;ALS(B11=AI11;e;ALS(B11=AK11;l2l;ALS(B11=AM11;b;ALS(B11=AO11;ks;ALS(B11=AQ11;h1h;ALS(B11=AS11;p;ALS(B11=AU11;s;ALS(B11=AW11;g;ALS(B11=AY11;j;BA11))))))))))))" 8)7 8)7 8)7 , hierin zijn de letter groepen cellen.

Aangezien in dit niet geexporteerd krijg naar excel 2003 dan heeft dit niet echt zin. Dus middels VBA/ macro's. Dat moet wel lukken. Al ben ik nog geen ster in programmeren.

Acties:
  • 0 Henk 'm!

Anoniem: 147180

Kun je eens het bestand laten zien wat je hebt? Dat praat net even wat makkelijker.

Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Je geeft aan VBA te gebruiken maar ik zie geen regel code. Ook noem je exporteren maar ik snap niet waarvandaan. Waar loop je nu vast?
Er is v.w.b. VBA natuurlijk al veel inspiratie te halen uit http://gathering.tweakers...&where=Dit+forum#hitstart => bijv. [Access 2003] Listbox vullen met gegevens uit een tabel

Of zonder VBA: in plaats van een enorme IF-statement kan je beter 'gewoon' verticaal of horizontaal zoeken.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

Anoniem: 266173

Topicstarter
Het zit zo:

Ik heb een aantal hoofdgroepen welke onderverdeeld zijn in subgroepen, dus de data van de hoofdgroepen zijn de subgroepen. Maar wanneer ik middels de eerste listbox hoofdgroep 1 selecteer moet in de tweede listbox de subgroepen van hoofdgroep 1 komen te staan, wanneer ik hoofdgroep 2 selecteer in de eerste listbox moet in listbox 2 de subgroepen van hoofdgroep 2 komen te staan, etc. etc.

Exporteren:
Ik heb het nu werkend middels een validatie en een als functie zie eerste bericht. Maar deze kan ik niet exporteren naar Excel 2003 ivm met teveel tekens. Hierdoor wilde ik VBA werken waardoor deze wel opgeslagen kan worden als een excel 2003 bestand.

Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Dus vullen met VBA - zie mijn links voor tips - of zonder VBA maar via zoeken - al lijkt het zo te zien handiger om niet vert.zoeken() of horiz.zoeken() te gebruiken, maar VERGELIJKEN(), ZOEKEN() en/of INDEX().

offtopic:
Ik heb geen tijd om het uit te werken, maar met deze functies zou je er moeten komen volgens mij.

Overigens valt het op dat je nooit meer feedback geeft in topics waar je er blijkbaar uit bent gekomen of waar je het hebt opgegeven. Dat nodigt mensen bepaald niet uit om mee te denken, het is dus niet alleen netjes maar ook slim om altijd feedback te geven als je klaar bent met je eigen topic. Dit forum is geen eenrichtingverkeer ;)

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

Anoniem: 266173

Topicstarter
Je zegt vullen met VBA...

Hoe?

Wat moet ik als row.sorce gebruiken of welke vba code?

Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Ugh, zie ik nu goed dat ik je een Access voorbeeld gaf? :X
Oeps :+

code:
1
2
3
4
    With ActiveSheet.Cells(1, 1).Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:="=B2:B6"
    End With

:Y)

Natuurlijk aanpassen naar wens (o.a. variabelen ipv harde cellen) en natuurlijk pas aanroepen als nodig.

Alternatief is een ListBox maken en dan een loopje maken om alles in ActiveSheet.Range("B2:B6").Value te stoppen in ListBox1.AddItem

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

Anoniem: 266173

Topicstarter
Dit laatste snap ik niet.

Hoe zet ik de code op om het probleem op te lossen. Dus door een bepaald bereik te selecteren dat afhankelijk welke keuze er wordt gemaakt in listbox 1. Bijvoorbeeld:

Keuzes in listbox 1:
1
2
3
4
5

wordt er 1 gekozen dan in listbox 2:
11
12
13
14

wordt er twee gekozen dan in listbox 2:
21
22
23
24

wordt er 3 gekozen dan, etc.etc.

Ik weet niet goed hoe ik dit op moet zetten middels een listbox dat in een userform staat.
:? :?

Acties:
  • 0 Henk 'm!

  • ZanomiX
  • Registratie: Januari 2007
  • Laatst online: 13-06-2019
Laat maar, nutteloze post 8)7

[ Voor 135% gewijzigd door ZanomiX op 13-01-2009 20:53 ]

http://parkingwerchter.be


Acties:
  • 0 Henk 'm!

Anoniem: 266173

Topicstarter
ik hoop niet die van mij

Acties:
  • 0 Henk 'm!

Anoniem: 266173

Topicstarter
Ik heb de volgende site gevonden:

http://gregmaxey.mvps.org/Populate_UserForm_ListBox.htm

Ik snap aardig wat tie doet maar ik snap niet helemaal met userform initialize() en en bij de split functies. Die split functies doet tie volgend voor de de doc file.

Ik heb nu dit ingevuld. Dit werkt niet..


Private Sub ListBox4_Change()
Dim myArray As Variant
myArray = "kasboekuitgaven!hoofdgroepen"
Dim myArray100 As Variant
Dim myArray110 As Variant
Dim myArray120 As Variant
Dim myArray130 As Variant
Dim myArray140 As Variant
Dim myArray150 As Variant
Dim myArray160 As Variant
Dim myArray170 As Variant
Dim myArray180 As Variant
Dim myArray190 As Variant
Dim myArray200 As Variant
Dim myArray210 As Variant
myArray100 = "kasboekuitgaven!subgroep100"
myArray110 = "kasboekuitgaven!subgroep110"
myArray120 = "kasboekuitgaven!subgroep120"
myArray130 = "kasboekuitgaven!subgroep130"
myArray140 = "kasboekuitgaven!subgroep140"
myArray150 = "kasboekuitgaven!subgroep150"
myArray160 = "kasboekuitgaven!subgroep160"
myArray170 = "kasboekuitgaven!subgroep170"
myArray180 = "kasboekuitgaven!subgroep180"
myArray190 = "kasboekuitgaven!subgroep190"
myArray200 = "kasboekuitgaven!subgroep200"
myArray210 = "kasboekuitgaven!subgroep210"

myArray3 = ListBox4.List(ListBox4.ListIndex, 1, Chr(13))
ListBox3.List = myArray3


End Sub

Private Sub ListBox3_Change()


End Sub

-----------------------------------------------------------------------------------------------------------------

Ik moet nog ergens opgaven dat tie kiest uit de subgroepen, bij myArray3. Ik weet alleen niet hoe dit werkt...
Ideeën?

Acties:
  • 0 Henk 'm!

Anoniem: 266173

Topicstarter
Ik heb het opgelost conform de volgende site:

XL2000: How to Populate One List Box Based on Another List Box

bij mij ziet deze er dan zo uit:

Private Sub ListBox4_Click()

Select Case ListBox4.Value

Case "Huisvesting"
ListBox3.RowSource = "Kasboekuitgaven!AC12:AD20"
ListBox3.ColumnCount = 2

Case "Vervoer"
ListBox3.RowSource = "Kasboekuitgaven!AE12:AF20"
ListBox3.ColumnCount = 2

etc. etc. etc.

End Select

End Sub

---------------------------------------------------------------------------

Nu heb ik nog twee vragen:

1: Nu zijn de cases "vast" kan ik ook nog verwijzen naar cellen, dus huisvesting en vervoer een cel aanwijzen waar huisvesting en vervoer in staan?
2: Hoe plaats ik de gegevens nu in excel?

[ Voor 45% gewijzigd door Anoniem: 266173 op 14-01-2009 18:25 ]


Acties:
  • 0 Henk 'm!

Anoniem: 266173

Topicstarter
Hallo,

Ik kan wel de waarde van de gekozen waarde uit de 1e kolom laten zien, middels:

"sheet1!A1" = listbox1.value

Maar hoe laat ik nu de waarde uit de 2e kolom van listbox1 zien wanneer ik meerder kolommen heb?

Acties:
  • 0 Henk 'm!

Anoniem: 266173

Topicstarter
Opgelost:

"sheet1!A1" = listbox1.column(1)

0-waarde is de 1e kolom
1-waarde is de 2e kolom
2-waarde is de 3e kolom

etc. etc.

Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

(Late reactie), dank voor de update :)

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)

Pagina: 1