Pagina 1 van 1

variable element vba

Geplaatst: 29 aug 2010, 21:00
door defenderII
ik heb volgend probleem in vba
ik heb verschillende textbox elementen waarde1, waarde2, ....
via een loop zou ik bv de height waarde willen veranden; dit dacht ik als volgt willen doen
for i=1 to 10
waarde(i).height = 125
next i

dit werkt echter niet
kan iemand mij opweg helpen om dit op te lossen?

Re: variable element vba

Geplaatst: 29 aug 2010, 21:11
door honda4life
bij je waarde(i) vermoed ik dat je datatype een array is, terwijl je datatype een object is.
Hoe je dat volgens mij kan oplossen denk ik is door je textboxen
tekstbox(1) enz te noemen, zodat dit ook een array is
Is al veel te lang geleden dat ik met vba gewerkt heb helaas.

Re: variable element vba

Geplaatst: 30 aug 2010, 00:03
door cptKangaroo
Zoiets misschien: (ben ook niet meer vertrouwd met VBA)

For i=0 to 10
Form1.Controls("waarde" & i).Height = 125
Next i

(of de Controls collectie van een ander Form of object, natuurlijk)

Re: variable element vba

Geplaatst: 30 aug 2010, 10:31
door Maglor
Je kan de textboxen ook in een frame plaatsen en dan het volgende doen:

Dim txtB As Control
For Each txtB In Frame1.Controls
txtB.Height = 120
Next

Re: variable element vba

Geplaatst: 30 aug 2010, 11:40
door BMaster
In de gewone VB (heb ook geen ervaring in VBA) heb je behalve de Name van een textbox ook een Index property. Hier kan je dan een array mee maken. Noem de eerste textbox "Waarde" en zet de Index op 1. De tweede textbox noem je hetzelfde maar geef je Index 2. Enzovoort. De for-lus zoals je ze in de eerste post hebt staan zal dan wel werken.

Re: variable element vba

Geplaatst: 30 aug 2010, 11:45
door honda4life
BMaster schreef:In de gewone VB (heb ook geen ervaring in VBA) heb je behalve de Name van een textbox ook een Index property. Hier kan je dan een array mee maken. Noem de eerste textbox "Waarde" en zet de Index op 1. De tweede textbox noem je hetzelfde maar geef je Index 2. Enzovoort. De for-lus zoals je ze in de eerste post hebt staan zal dan wel werken.
Inderdaad ja, er beginnen me terug dingen te binnen te schieten, volgens mij maakt hij zelf die arrays aan als je textboxen kopieert en plakt in je form :wink:

Re: variable element vba

Geplaatst: 30 aug 2010, 11:52
door BMaster
honda4life schreef:
BMaster schreef:In de gewone VB (heb ook geen ervaring in VBA) heb je behalve de Name van een textbox ook een Index property. Hier kan je dan een array mee maken. Noem de eerste textbox "Waarde" en zet de Index op 1. De tweede textbox noem je hetzelfde maar geef je Index 2. Enzovoort. De for-lus zoals je ze in de eerste post hebt staan zal dan wel werken.
Inderdaad ja, er beginnen me terug dingen te binnen te schieten, volgens mij maakt hij zelf die arrays aan als je textboxen kopieert en plakt in je form :wink:
Ongeveer... hij stelt geloof ik een vraag in het genre van "do you want to create a control array?". Maar dat is dus de gewone oeroude VB6.. Geen idee hoe VBA daarmee omgaat!

Re: variable element vba

Geplaatst: 30 aug 2010, 14:39
door honda4life
Identiek wat betreft forms :wink:
Heb er nog een heel mooi eindwerk gedaan met VBA 8)
Hoe het juist zit met bijvoorbeeld een knopje in de application weet ik echter niet.

Re: variable element vba

Geplaatst: 30 aug 2010, 15:41
door kweezie wabbit
defenderII schreef: for i=1 to 10
waarde(i).height = 125
next i
Deze notering verwijst inderdaad naar een array
Prober eens met waarde & i

Re: variable element vba

Geplaatst: 30 aug 2010, 21:38
door defenderII
ik ge deze oplossingen eens uitproberen en zien wat er (het best in mijn geval) werk; in ieder geval al bedankt voor deze reacties :wink:

Re: variable element vba

Geplaatst: 31 aug 2010, 07:58
door BMaster
kweezie wabbit schreef:
defenderII schreef: for i=1 to 10
waarde(i).height = 125
next i
Deze notering verwijst inderdaad naar een array
Prober eens met waarde & i
hoe zou je dat dan exact noteren? "waarde & i.height = 125"? Dat gaat niet werken hoor...