• 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.

Userform koppelen aan nog te maken macro's

Status
Niet open voor verdere reacties.

fun_surfer

Gebruiker
Lid geworden
25 aug 2001
Berichten
621
Beste allemaal, ik ben begonnen met een userform, maar die kan ik niet aanpassen aan mijn wensen.
Mijn uiteindelijke doel is dat ik in het blad 'mutaties' op de knop 'record bijvoegen' klik, het invulscherm tevoorschijn komt en ik het invulscherm op 1 veld na geheel in moet vullen. Als ik hierna op OK klik wil ik dat de waarden uit de ingevulde velden in een nieuwe regel bovenaan het document worden verwerkt.
Ik heb legio voorbeelden gedownload, diverse sites bezocht maar ik heb nog niet voldoende kennis tot nog toe om hiermee zo'n formulier aan te kunnen maken.
Ik hoop dat er ook nu weer iemand is die mij een duwtje in de juiste richting kan en wil geven, in ieder geval alvast bedankt voor het meedenken.
GRTZ fun_surfer.
 
Laatst bewerkt:
een klein duwtje

Hoi,
Hier even een klein duwtje. Om de werking te snappen is het het handigst om dit even in een leeg werkblad te doen:
1. Maak een nieuw userform en zet daar een textbox op en een knop.
Ik ga er even van uit dat de textbox "textbox1" heet en dat de knop "commandbutton1" heet.

2. Dubbelklik nu op de knop. Je krijgt dan een venster waar je code in kunt voeren. Er staat al een procedure klaar genaamd "Private Sub commandbutton1_Click()
Voer hier de volgende code in.
Code:
Private Sub Commandbutton1_Click()
'Dit stukje code wordt iedere keer uitgevoerd wanneer je op 
'de knop klikt.
'Het blad activeren waar de ingevulde waarde moet komen te staan.
'In dit geval is dat het eerste werkblad van het actieve bestand.
Sheets(1).Activate

'De cel selecteren waar de ingevulde waarde moet komen te staan:
Range("A1").select

'De ingevulde waarde uit het userform in het werkblad zetten.
Activecell.FormulaR1C1 = textbox1.text

End Sub
3. Ga terug naar het userform en voer het uit.
4. Vul iets in in de textbox en klik vervolgens op de knop. De ingevulde waarde zal dan in cel A1 komen te staan.
 
Beste Brutus, dit werkt inderdaad alvast! Wat ik alleen nog niet begrijp is hoe ik die 'lijst' op moet laten roepen, ik heb een lijst met gegevens waaruit ik in tekstbox2 wil laten kiezen, hoe doe ik dit? En hoe activeer ik dit dialoogvenster, ik kan deze namelijk niet vinden in 'macro's'... :o
Alvast bedankt voor je/jullie hulp, grtz fun_surfer!
 
Een lijst in een textbox zetten is niet erg handig. Daar zou je beter een listbox of een combobox voor kunnen gebruiken. Om daar waarden in te zetten kun je gebruik maken van de userform_initialize procedure. Voorbeeldje:

Maak een userform en zet daar een combobox op, met de naam combobox1. Dubbelklik vervolgens op het userform. Er wordt nu een procedure "Userform1_Click()" klaar gezet. Verander het Click in Initialize en voer de volgende code in:
Code:
Private Sub Userform1_Initialize()

With Combobox1
    .AddItem "Keuzemogelijkheid 1"
    .AddItem "Keuzemogelijkheid 2"
    .AddItem "Keuzemogelijkheid 3"
End With

End Sub

Ga nu terug naar je Userform en zorg ervoor dat er geen controls op het userform geselecteerd zijn. Druk nu op het "play" knopje in de werkbalk. Je Userform zal nu tevoorschijn komen en in de combobox verschijnen je drie keuzemogelijkheden.

Om het userform vanuit een procedure te starten zet je in die procedure:
Code:
Userform1.Show
Hierbij is "Userform1" de naam van je userform.

Kijk trouwens ook eens in de help van VBA. Daar zitten echt heeeel veel nuttige voorbeelden in.
 
Brutus, ik ga vanavond of morgenavond alles uitproberen (mijn vrouw is vandaag jarig dus het zal wel morgenavond worden...), je helpt me in ieder geval alweer een heel eind op weg. Het probleem met help is dat ik niet weet waar ik naar moet zoeken; ik weet niet dat ik bijv. naar een listbox moet zoeken i.p.v. een textbox toe te voegen! Ik heb ook al diverse sites bezocht (aan de hand van HelpMij-topics) waar ze dit soort 'cursussen' op hebben geplaatst, maar het soort informatie dat voor mij toepasbaar is staat hier nagenoeg niet op. Misschien is dit niet de manier om VBA te 'leren', maar misschien kom ik er wel met jullie hulp! ;)
GRTZ en maar weer bedankt, fun_surfer. :thumb:
 
Hier staat een voorbeeld om een UserForm te maken?

http://www.contextures.com/xlUserForm01.html#Create

Er staan 2 voorbeelden om te downloaden waar onder ook een met comboboxen.

Download the sample file
Download the sample file with an enhanced UserForm, with comboboxes

Misschien kun je dit eens proberen?

Pierre
 
Laatst bewerkt:
Heb wat met je map gezich geweest in verband met het UserForm misschien kun je nu iets verder werken?

Pierre
 

Bijlagen

Beste Brutus en jpvs, met jullie tips kom ik al een heel eind, ik loop alleen steeds tegen hetzelfde aan: ik heb mijn debiteuren gedefiniëerd gelijk jij het hebt gedaan, maar toch blijft er een fout in sluipen... Ik weet niet wat ik fout doe maar mijn eigen invoerveld lukt op dit moment nog niet. :o
GRTZ fun_surfer.
P.S.: Brutus, nogmaals bedankt voor het wijzen op een listbox en combobox! ;)
 
Toch gelukt uiteindelijk, ik weet nog niet hoe, maar ik zat wat in de eigenschappen van die boxen te kijken toen ze het ineens deden... :p Verder wil ik nu alleen nog zien dat alleen de velden 'aanvrager' en 'dossier' optioneel zijn en dat de rest dus verplicht is, maar dit zijn schoonheidsfoutjes. Voorlopig is dit zoals ik hem wilde, allebei nogmaals heel erg bedankt!
 
Laatst bewerkt:
Nog wat aanpassingen gedaan:

Eerst op het UserForm de "dossier" en " nr" verwisseld een kwestie van juiste invoer op het Blad "mutaties"

Listing bij gevoegd (.AddItem "") is voor een leeg UserForm

naamvak = aangepast met leeg vak voor Formulier

verplichte invoer = aangepast

Pierre
 

Bijlagen

Bijlage is beschadigd, 2x geprobeerd te downloaden... Zelf ook nog wat aanpassingen gedaan, ben alleen nog op zoek naar een oplossing waarbij bij meerdere ingaven de rijen naar beneden opschuiven, nu gaat de nieuwste bovenaan, ik wil dat bij meerdere de nieuwste bovenaan gaat en de daaropvolgende hieronder komt. Dat zou iets moeten worden met offset 1,x maar daar kom ik nog niet uit.
Tof dat je er nog verder mee bent gegaan! ;)

EDIT: Ook ik had een foutje in het bestand... :o
 
Laatst bewerkt:
Wat er mis gegaan is weet ik niet ?


Pierre
 

Bijlagen

Laatst bewerkt:
Hoi jpvs, in eerste instantie was mij het nut van een leeg formulier niet echt duidelijk, maar het blijkt een probaat contrôlemiddel; er moet nu in ieder geval ìets worden ingevuld wat de kans natuurlijk bijzonder vergroot dat de juiste gegevens worden ingevoerd. Ik weet niet of jij nog een andere bedoeling hiervoor hebt, zo ja dan hoor ik hem uiteraard graag!
Wij zoeken de doos op onder de code bv. KK 4 - 59, een dossiernr. wordt zelden gebruikt. Daarom heb ik het textvak voor het dossier dus ook zo achteraan gezet en optioneel gehouden, ondanks dat ik het in mijn mutatieformulier vóór de locatie heb. Dit is weer omdat de dossiers die teruggeplaatst dienen te worden op dossiernr terug komen en achter het dossiernr staat de exacte locatie waar het dossier in hoort.
De reden dat de invulvelden bij mij niet verplicht ingevuld werden is dat ik deze code na de uit te voeren actie heb gezet... Stom, maar na het doornemen van jouw code kwam ik hier achter. :p
Ik heb de messagebox voor de aanvrager verschillend gehouden bij de actie 'OK + nieuw' en 'OK + sluiten' omdat dit niet altijd bekend is, maar ik hier toch wel wat waarde aan hecht.
Dank je wel weer voor je hulp, zo blijf ik mijn bestand met jouw hulp verbeteren, erg leuk!
GRTZ Art.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan