Meerdere textboxen verbergen in userform

Status
Niet open voor verdere reacties.

marcelh

Gebruiker
Lid geworden
9 sep 2009
Berichten
46
Beste forummers,

Doordat de code in vba veel te groot is aan het worden wilde ik aan jullie vragen of ik de volgende code ook kan verkorten naar 1 of 2 regels:

Code:
Textbox1.visible=True
Textbox2.visible=True
Textbox3.visible=True
Textbox4.visible=False
Textbox5.visible=False

Alvast bedankt
Marcel
 
Zo bijvoorbeeld. Al gebruik je True en False op een op dit moment voor ons ondoorzichtige manier, dus geen idee of je hier wat aan hebt.
Code:
For i = 1 To 20
    Me("Textbox" & i).Visible = True
Next i
For i = 21 To 40
    Me("Textbox" & i).Visible = False
Next i
 
Beste OctaFish,

Allereerst bedankt voor je reactie.

Ik ben een Userform aan het bouwen waarin heel veel verschillende informatie moet worden ingegeven, daarbij zal de userform ook berekeningen moeten maken voor hoekberekeningen, lengteberekeningen, variabel aantal profielen berekenen, etc. het is dus van belang dat de vereiste gegevens ook in de juiste volgorde moeten ingegeven worden. Tevens, om het door mensen te laten invullen welke niet de knowhow hebben, moet het ook nog eens visueel duidelijk gemaakt worden a.d.h. van tekeningen. (Ik heb dit reeds onder excel gedaan maar dat wordt zeer onoverzichtelijk en belachelijk groot voor een exel-sheetje). Nu daarom wil ik textboxen, frames, checkboxen en images laten zien of verdwijnen op het moment dat het nodig is.

Ik ben zelf niet thuis in vba maar ik probeer met behulp van zeer simpele codes de userform te bouwen. het probleem is dus dat ik codes gebruik die veel en veel te lang worden, en zal dus regelmatig moeten snoeien.

Hopelijk heb je wat aan mijn uitleg, terug naar de code: ik heb hem geprobeerd maar krijg nu de foutmelding:"Een variabele is niet gedefinieerd", ik weet even niet of het belangrijk is, maar ik heb je code gebruikt in de Private Sub Userform_Activate()

groet Marcel
 
Laatst bewerkt:
Om te beginnen: berichten quooten die pal boven je eigen bericht staan is zinloos, en maakt draadjes alleen maar nodeloos lang. Dat niet alleen: je hebt ook nog een deel van de quote code verwijderd, zodat de quoot het niet doet, en om de kers op de taart te leggen: waarom, als je toch een quoot wilt gebruiken (en een quoot is iets anders het hele bericht ;) ) het hele bericht? Da's geen quoot meer, da's plagiaat :). Graag de quoot dus verwijderen. Voorbeeldje van een correcte quoot:

...het is dus van belang dat de vereiste gegevens ook in de juiste volgorde moeten ingegeven worden.
Antwoord hierop is natuurlijk dat je de tabvolgorde moet instellen op de juiste volgorde.
Wat betreft je foutmelding: als je de variabele i niet hebt gedefinieerd (Dim i As Integer bijvoorbeeld) Dan krijg je die foutmelding als je in het formulier de optie Option Explicit hebt staan. Wat overigens wenselijk is, want dat wordt er tenminste gecheckt op juist gebruik van variabelen.

Zichtbaar maken of onzichtbaar maken van objecten die afhankelijk zijn van een ander object kun je uiteraard nooit op deze manier afdwingen. Daarvoor moet je checks hebben die kunnen kijken naar die objecten. Bijvoorbeeld een checkbox. Stel dat je 20 checkboxen hebt, en 20 tekstvakken, en je hebt de naamgeving consequent gehouden, dan kun je op deze manier de tekstvakken zichtbaar of onzichtbaar maken:

Code:
For i = 1 To 20
    Me("Textbox" & i).Visible = Me("Checkbox" & i).
Next i
Overigens gaat dit je probleem (onoverzichtelijk formulier) nauwelijks oplossen, want zelfs als je alle checks goed hebt gemaakt (je hebt een andere check nodig voor tekstvakken i.c.m. afbeeldingen bijvoorbeeld) dan nog zit je met enorme gaten op je formulier waar dan de ruimte zit voor de verborgen objecten. Dat ziet er echt niet fraai uit.
 
berichten quooten die pal boven je eigen bericht staan is zinloos,

idd, was de snelligheid zullen we maar zeggen:o is aangepast....

Ok, Option Explicit heb ik idd bovenaan mijn formulier staan, ga het gelijk proberen met de "Dim i As Integer"
de tab volgorde is goed ingesteld, maar deze stopt als het in een ander frame staat (is daar trouwens ook een oplossing voor?)

Je hebt wel gelijk met de lege ruimtes op het formulier maar die heb ik opgevuld met andere vragen:D:D, ik probeer zoveel mogelijk op 1 pagina te zetten zonder dat er van formulier veranderd wordt.

groet Marcel
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan