[VBA] combobox vervangen door variabele in code

Pagina: 1
Acties:
  • 147 views sinds 30-01-2008
  • Reageer

  • Guvner
  • Registratie: Oktober 2000
  • Laatst online: 05-04-2022
Hai,

Voor de sportvereniging hebben we een flink aantal overzichten met uitslagen, bardiensten en noem maar op... Ik ben bezig om deze overzichten in een enkel excel bestand te zetten. Ieder overzicht krijgt zijn eigen sheet in excel en op die sheet staat dan een combobox met daarnaast een knop "Ververs Gegevens". In de combobox staan dan bijvoorbeeld alle teams welke beschikbaar zijn binnen onze vereniging en door te drukken op de knop ernaast zal het overzicht van die sheet worden gemaakt op basis van de geselecteerde waarde in de combobox.

De waardes in de combobox zijn op basis van gegevens uit een externe database. Via de database query mogelijkheid in excel kan ik deze gegevens hierin zetten.

Ik wil nu echter een loop maken waarmee de combobox van iedere sheet gevuld zal worden. Hiervoor heb ik een extra sheet "Settings" gemaakt met daarop in kolom A de sheetnaam en in kolom B de query welke gebruikt moet worden om de combobox te vullen van de in kolom A gegeven sheet.

Ik heb ook in een cel opgegeven hoeveel sheets het zijn, waardoor ik weet hoeveel keer het loopje zou moeten draaien om alle sheets na te lopen en de combobox te vullen.

Het probleem waar ik tegenaan loop is echter het volgende. Een loop laten draaien, zoveel keer als er sheets zijn, is geen probleem. Het vullen van een combobox met de waardes welke uit de query van de settings sheet komen is ook geen punt.
Het zit hem in het combineren van deze twee stukjes.


VBScript: overzicht.xls
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Dim iAantalSheets As Integer
Dim iTeller1 As Integer

'Sheetcounter zit op D2
iAantalSheets = Cells(2, 3).Value

'Sql queries beginnen vanaf rij 7
iTeller = 7
        
For iTeller = iTeller To iAantalSheets + 6
    'Query utivoeren voor die sheet
    VoerQueryUit(Cells(iTeller, 2).Value)

    'Hier moet ik dus iets vullen waardoor ik de combobox kan vullen
    Worksheets(iTeller, 1).cmbBlad2.AddItem "testwaarde"

    'cmbBlad2 zou in regel 15 dus vervangen moeten worden door een variabele
    'iets als cmbBlad(iTeller) waardoor de loop dus gebruikt zou kunnen worden
Next iTeller



Iemand enige suggestie??

  • Daos
  • Registratie: Oktober 2004
  • Niet online
Zoiets??:
Visual Basic:
1
2
3
4
5
Sub vulComboBox()
    Dim combo As MsForms.ComboBox
    Set combo = OLEObjects("cmbBlad2").Object
    combo.AddItem "Hello World!"
End Sub

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 17:21

NMe

Quia Ego Sic Dico.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Guvner
  • Registratie: Oktober 2000
  • Laatst online: 05-04-2022
Bijna....

Het zou dan zoiets moeten zijn
VBScript: functie
1
2
Set combo = OLEObjects(sCombonaam).Object
combo.AddItem "Hello World!"

Dan zit in de variabele sCombonaam de naam van de combobox
Maar dat slikt ie ook niet, dan geeft ie een

Fout 1004 tijdens uitvoering:
Methode OLEObjects van object_worksheet is mislukt

  • Daos
  • Registratie: Oktober 2004
  • Niet online
Guvner schreef op vrijdag 30 maart 2007 @ 12:43:
Dan zit in de variabele sCombonaam de naam van de combobox
Kennelijk zit de naam niet in sCombonaam.

Leer eens debuggen:
Probeer eerst zonder variabele (zoals mijn voorbeeld). Als dat werkt, dan kijk je of in sCombonaam hetzelfde zit (Bv met MsgBox). Enz...


Waarschijnlijk ben je de Trim vergeten toen je van een integer een string maakte:
Visual Basic:
1
sCombonaam = "cmbBlad" & Trim(Str(iTeller))