400 textboxen en 200 checkboxen vullen

Status
Niet open voor verdere reacties.

pasan

Terugkerende gebruiker
Lid geworden
6 nov 2010
Berichten
1.110
hoi

ik heb een userform gemaakt met daarop 200 keer een groepje van 2 textboxen en 1 checkbox dus samen 3

ik vul de eerste 6 groepjes van 3 boxen vanuit blad1 met de volgende code
voor de resterende 194 groepjes van 3 heb ik de code nog niet gemaakt omdat ik graag de mening van iemand van dit forum wil afwachten


Code:
Private Sub UserForm_Initialize()

Me.TextBox22.Value = Worksheets("blad1").Range("a2")
Me.CheckBox23.Value = Worksheets("blad1Range("e2")
Me.TextBox151.Value = Worksheets("blad1").Range("d2")

Me.TextBox37.Value = Worksheets("blad1").Range("a3")
Me.CheckBox24.Value = Worksheets("blad1").Range("e3")
Me.TextBox155.Value = Worksheets("blad1").Range("d3")

Me.TextBox45.Value = Worksheets("blad1").Range("a4")
Me.CheckBox25.Value = Worksheets("blad1").Range("e4")
Me.TextBox159.Value = Worksheets("blad1").Range("d4")

Me.TextBox53.Value = Worksheets("blad1").Range("a5")
Me.CheckBox26.Value = Worksheets("blad1").Range("e5")
Me.TextBox163.Value = Worksheets("blad1").Range("d5")

Me.TextBox55.Value = Worksheets("blad1").Range("a6")
Me.CheckBox27.Value = Worksheets("blad1").Range("e6")
Me.TextBox167.Value = Worksheets("blad1").Range("d6")

Me.TextBox62.Value = Worksheets("blad1").Range("a7")
Me.CheckBox28.Value = Worksheets("blad1").Range("e7")
Me.TextBox171.Value = Worksheets("blad1").Range("d7")

End Sub


zoals je ziet is de nummering een beetje willekeurig van de textboxen en checkboxen.

Als ik nu alle alle textboxen die in de A range moeten zoeken benummer van 400 tot 599
en alle textboxen die in de B range moeten zoeken benummer met 600 tot 799
en alle checkboxen die in de C range moeten zoeken benummer met 400 tot 599
is er dan een kortere code te maken?
of kan ik de benummering zoals ik die nu heb van alle textboxen en checkboxen zo laten?
en dan een kortere code laten werken

groet

Pasan:thumb:
 
Laatst bewerkt:
Moeilijk degelijk advies te geven daar wij het volledige plaatje niet kennen :(

600 controls op één form :shocked: Hoe kan dit nog overzichtelijk zijn?
Ik veronderstel dat daarbij nog eens evenveel labels voorkomen of anders kan de gebruiker toch niet weten wie, wat is :confused:

Waarom niet één groep van 2 txtboxen en 1 checkbox en dan een dropdown met de 200 mogelijkheden?

Wat moet er dan gebeuren met de ingave van de gebruiker?
Nu vul jij de controls met data uit een sheet, ik had eerder het omgekeerde verwacht.
 
het gaat om een vogel bestand en dan welke vogels zitten er in de voliére, 1 textbox laat de ringnummer zien en 1 textbox de geboorte datum de checkbox laat zien of het een man is = true pop = false
dus qua overzicht gaat het prima uit al deze boxen kan de gebruiker dan een koppel samen stellen
labels zitten er niet bij de vorm van de boxen spreekt voor zich
 
Laatst bewerkt:
Je kan dus 200 vogeltjes beheren, van elk beestje hou je drie zaken bij.
Heb ik het goed begrepen?

Waarom zit alles dan niet gewoon in één werkblad en gebruik je autofilter om één of meerdere vogeltje(s) uit de lijst te selecteren??
 
idd het gaat om 200 vogels
de userform bestaat uit een aantal tabbladen waar de voliére tablad 1 van is
zoals daar ook nog een tabblad voor broedkooien is
het kwekers tabblad bestand werkt al
en zo loop ik stap voor stap door mn project puur als hobby
zonder dit forum zou het mij nooit lukken
 
en op je vraag waarom alles niet op 1 werkblad zit met auto filter
bedoel je dat om dan met dat werkblad in beeld te werken? of om dan eenvoudiger die gegevens in een userform te plaatsen?
ik wilde alles graag via het userform laten lopen omdat ik dat er iets gelikter uit vind zien
 
Laatst bewerkt:
Het zou een stuk handiger zijn als er een logica in de nummering van de objecten zou zitten, dan kun je met een loop alles in één keer instellen, en heb je relatief weinig code nodig. Iets als:
Code:
For i=1 To 200
     Me("TextBox" & i).Value = Worksheets("blad1").Range("A" & i + 1)
     Me("CheckBox" & i).Value = Worksheets("blad1").Range("E" & i + 1)
     Me("TextBox" & i + 200).Value = Worksheets("blad1").Range("D" & i + 1)
Next i
Met dit stukje kun je in één keer 200 vogels inlezen.
 
@pasan: Inderdaad werkbald gebruiken als user interface.
Er komt wel 1 kolom bij voor de voliére, 1 voor de broedkooien enz..
Met het autofilter kan je dan naar believen selecteren ... ...
Je kan dan nog zoveel aan het werkblad "likken" met "voorwaardelijke opmaak", randen, cellen beveiligen, titels blokkeren, ... ... ... :eek:

Het project zal veel onderhoudsvriendelijker zijn via een werkblad dan via zo'n complexe UI. Wat als er plots 10 vogeltjes bijkomen? Wat als je een paar volieres bij hebt? Wat als... ... Beging maar je UI en je code aan te passen.

Met de sheet, gewoon onderaan toevoegen en de filter neemt ze gewoon mee.
't Is maar mijn persoonlijk idee :eek:

Wens je de korte code van OctaFish te gebruiken mag je al schuiven met controls :shocked:
 
@pasan: Inderdaad werkbald gebruiken als user interface.
Er komt wel 1 kolom bij voor de voliére, 1 voor de broedkooien enz..
Met het autofilter kan je dan naar believen selecteren ... ...
Je kan dan nog zoveel aan het werkblad "likken" met "voorwaardelijke opmaak", randen, cellen beveiligen, titels blokkeren, ... ... ... :eek:

Het project zal veel onderhoudsvriendelijker zijn via een werkblad dan via zo'n complexe UI. Wat als er plots 10 vogeltjes bijkomen? Wat als je een paar volieres bij hebt? Wat als... ... Beging maar je UI en je code aan te passen.

Met de sheet, gewoon onderaan toevoegen en de filter neemt ze gewoon mee.
't Is maar mijn persoonlijk idee :eek:

Wens je de korte code van OctaFish te gebruiken mag je al schuiven met controls :shocked:

ik begrijp je opmerking, ben me ook wel bewust van de mogelijke beperkingen met gebruik van een userform.
maar ik zie dit ook als een leer object voor mezelf en de persoon die met dit progje gaat werken als het uiteindelijk af is, die komt niet boven de 150 vogels per jaar uit dus dan is dit progje meer dan voldoende.

in iedergeval bedankt voor je reactie die ik uiteraard zeer waardeer.

groet

Pasan:thumb:
 
OctaFish ik ga met jou code verder puzzelen
ik moet dus mn textboxen in logische volgorde nummeren.
in jou code schrijf je for i= 1 tot 200, kan ik daar ook for i= 400 tot 600 van maken?

groet

Pasan
 
Zoek jij dus een userform te maken met 1200 tot 1800 controls op ? Tot zover het 'er gelikt uitzien' :d
Wat betreft het nummeren van je boxen zoals OctaFish al aangaf.
Groep 1 wordt dan Textbox1 - Checkbox1 - Textbox201
Groep 2 wordt dan Textbox2 - Checkbox2 - Textbox202
enz....
Op die manier kan je eindeloos controls vullen met de code van Michel.
Veel suc6 met je schuifwerk.:D
 
Zoek jij dus een userform te maken met 1200 tot 1800 controls op ? Tot zover het 'er gelikt uitzien' :d
Wat betreft het nummeren van je boxen zoals OctaFish al aangaf.
Groep 1 wordt dan Textbox1 - Checkbox1 - Textbox201
Groep 2 wordt dan Textbox2 - Checkbox2 - Textbox202
enz....
Op die manier kan je eindeloos controls vullen met de code van Michel.
Veel suc6 met je schuifwerk.:D

hmm mijn opmerking van het ziet er gelikt uit was mischien niet helemaal goed gekozen
gezien het komentaar hierop.:d vergeef me mijn onwetendheid, aldoende leert men (ik)

op mijn userform zitten 600 controls en de form is beeld vullend (schermgrotediscussie);)
op mijn pc en die van degene voor wie ik dit probeer te maken past de userform uitstekend en is alles prima te overzien

Warme bakkertje bedankt voor je uitleg
ik ga dr mee aan de slag
ik heb alleen de pech (eigenschuld) dat op dat userform met tabbladen al meer textboxen staan
die ik nu ook allemaal moet aanpassen qua naam en ook de code die erbij hoort:rolleyes:
ik kan tablad voliére textboxen niet met 1 laten beginnen omdat textbox1 al in gebruik is op een ander tabblad.

groet

Pasan:thumb:
 
Ok we houden het bij een user form :(

Wat ik mij nu nog afvraag is "WAT moet de code nog doen, behalve controls opvullen vanuit worksheets?"
Zorg dat je daar niet ergens tegen de muur loopt... ...

De "For i = ..... to ....." loop werkt op vele wijzen...
Code:
For i = 200 to 2000 Step 100
For i = 600 to 400 Step -5
For i = 100 to 0 Step -1
Wanneer je geen "Step" definieert, dan gaat de code uit van +1.
 
hoi mcs51mc

de code hoeft alleen maar gegevens op te halen want boven aan de tabblad voliére staan 2 comboboxen 1 voor man en 1 voor pop en alle textboxen met ringnummers kan ik via een comandbutton wijzigen in pop of man en dit wordt dan weer weergegeven door de checkboxen op de userform das alles. De controls dienen alleen maar voor een totaal overzicht, mischien dat ik dat nog op een later tijdstip uitbrei om per groep van 3 meer details van een vogel in beeld te krijgen maar voorlopig is alleen het ringnummer en geboorte datum en verwijzing naar man of pop genoeg.
De lijst die weergegeven wordt in de man combobox of de pop combobox past zich automatisch aan
Als je wil kan ik het bestand ingepakt via de mail versturen, hier neer zetten gaat niet meer omdat het nu inmiddels 2 MB groot is

groet

Pasan:thumb:
 
hier een scherm afbeelding van hoe al die boxen er uit zien

groet

Pasan:thumb:
 

Bijlagen

  • Nieuw - Microsoft Excel-werkblad.xlsx
    97,9 KB · Weergaven: 171
Hoi Pasan,

Zou je je project niet eerst even goed uitdenken?

Heb je ooit een programma gezien met 400 textboxen en 200 checkboxen in een enorm groot onoverzichtelijk formulier?

Wat dacht je van (ik doe maar een greep) twee listboxes, "man", "pop"
waar je bij aanklikken van een regel in de listbox lin je form de details kan zien van de geselecteerde regel.
(één detailscherm per listbox)

Je kunt je listbox vullen met een array van gegevens van je "database" ,
en neem in die array detail gevens mee, en filtercriteria, zodat je kan zoeken in je array welke waarden er aan je filter voldoen en moeten worden getoond in de listbox.

Dat lijkt me een stuk beter onderhoudbaar, en overzichtelijker.
Het is natuurlijk makkelijk gezegd, maar je kunt met een goed plan van jouw opdracht een hartstikke mooi project maken. daar heb je echt niet 600 controls voor nodig!
 
ik kan tablad voliére textboxen niet met 1 laten beginnen omdat textbox1 al in gebruik is op een ander tabblad.

Begin dan Jouw textboxen met bijv Vol...of laat de loop enkel op dat Tabblad lopen, (de namen zul je sowieso moeten wijzigen)
Ben het volkomen met alle andere posters eens, maar ben wel van mening dat het er netjes uit ziet, let wel; ergens boven de 1000 controls op een Userform geeft problemen (althans bij mij)
 
tis me gelukt alle namen van de controls aangepast
en het werkt:d

(blijven ademen)

groet

Pasan:thumb:
 
aangezien deze vraag is opgelost zet ik deze ook als zodanig op opgelost heren dank jullie wel voor jullie hulp
maar ik kom ongetwijfeld terug met nieuwe vragen zodat ik mn project "Vogel kweek" uiteindelijk kan afronden
Tot de volgende .......

Groet

Pasan
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan