• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Loop voor plaatsen gegevens uit userform

  • Onderwerp starter Onderwerp starter JonS
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

JonS

Gebruiker
Lid geworden
31 aug 2011
Berichten
7
Beste Experts,

Onlangs ben ik hier enorm goed geholpen en ik vraag mij af of dat nog eens mogelijk is.

Ik heb in de bijlage een userform dat op een bepaalde manier moet worden afgebakend, door meldingen te geven wanneer velden niet gevuld zijn. Het doel van het userform is het opvoeren van gewerkte uren per medewerker aan een bepaald project.
De kopjes bovenaan het form worden eenmaal ingegeven en gelden voor alle medewerkers.

Dan zijn er 3 frames. Eentje per activiteit.
Per activiteit kan je medewerkers ingeven met daarachter het aantal gewerkte uren.
Nou kan ik voor elke (combo- of text-) box aangeven welke msgbox moet volgen als deze niet gevuld is. Per combinatie zijn dat 2 mogelijkheden.
Ook moeten vervolgens alle gegevens in de tabel worden bijgeschreven, maar alleen als combobox1(medewerker )<>”” textbox1 (uren) <>”” en activiteit 1 <>””.
Dus alleen dan, alle kopjes boven de frames en de medewerker plus zijn gewerkte uren naar de tabel.

Vervolgens moet de macro naar de tweede rij kijken of alle gegevens erin staan. Alleen medewerker is melding, alleen uren is melding, beide leeg is door naar de volgende.

Dit werkt grotendeels wanneer het een klein groepje mensen betreft, maar ik wil een formulier waarop 3 afzonderlijke activiteiten kunnen worden gekozen, met daaronder de mogelijkheid tot 20 medewerkers per activiteit.
Als ik dit allemaal uitschrijf krijg ik een lap tekst, waarvan Excel zegt dat hij te lang is om uit te voeren.
Kan iemand hier een “Loop” voor bedenken zodat de macro wat efficienter wordt?

Ik hoor het graag als er iets niet duidelijk is.
Vast bedankt voor jullie tijd.
Groeten,
jonBekijk bijlage Test83.xlsm
 
Er zijn verschillende manieren om dit te doen. Het belangrijkste is om ze op een of andere manier te koppelen.

Je kunt hiervoor kijken naar verschillende methoden. Je kunt de form dynamisch bouwen (mijn persoonlijke voorkeur, maar wel wat ingewikkelder). Je kunt ook de naam van de combobox en bijbehorende textbox gelijk schakelen en de feedback naar de gebruiker met kleuren duidelijk maken in plaats van allemaal messageboxes. In beide gevallen kun je beter gebruik maken van events en niet alles alleen maar aan de submit knop koppelen.

Nadeel van deze aanpak (events) is dat je wel eenmalig veel in moet stellen. Dat is helaas eigen aan de huidige VBA.

Je kunt vervolgens met een "for each" loop door alle comboboxen en textboxen lopen en kijken of bijbehorende control goed is ingevuld.
 
Hallo Wampier,

Bedankt voor je reactie en de tips, maar helaas heb ik geen idee hoe ik een form dynamisch maak of combo-en textboxen gelijk kan schakelen. Ik was blij dat ik het tot zover werkende heb gekregen.
De reden dat ik alles aan de submit knop heb gehangen was omdat ik niet wist hoe ik het anders kon laten werken. Ook dit was erg veel werk in mijn hoofdbestand (ruim 240 if statements en ca. 60 Offset acties). Werk is dus het probleem niet, maar de lengte ervan wel. Kan je mij in de goede richting zetten van 1 van jou tips, in de hoop dat ik het dan verder uit kan werken?

Vast bedankt.
 
Waarom zoveel comboboxen en textboxen als deze toch vaak hetzelfde zijn?
Het is wellicht te overwegen om een combobox te nemen voor medewerker, activiteit en uren.

Met vriendelijke groet,


Roncancio
 
@Roncancio,
Dank voor je reactie. Daar heb ik ook aan gedacht maar diegene die de uren registreerd krijgt ze ook per activiteit aangeleverd. Om de invoer zo makkelijk en minimaal mogelijk te maken is het prettiger werken al je de activiteit ook maar 1 x hoeft in te voeren.

@wampier,
Gaaf. Bedankt voor je tijd. Daar kan ik zeker wel wat mee. Ik had al 1 Submit knop per Frame gemaakt om de code in drieën te kunnen knippen. Dat werkt, maar dit ziet er beter uit. Inderdaad wat ombouw werk, maar ik ben er heel blij mee.
Bedankt!

Gr. jon
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan