Aanpassing van code gevraagd

Status
Niet open voor verdere reacties.

masala09

Gebruiker
Lid geworden
6 aug 2012
Berichten
886
In onderstaand programma toch een aanpassing gevraagd die ik zelf niet meer ziet.

Ik heb een chekbox3 ingevoerd om eventueel een factuur op te kunnen maken voor een klant die niet in mijn klantenlijst staat. Nadat de factuur dan is opgemaakt dan dienen de gegevens wel in de klantenlijst opgenomen te worden. Tot hier geen probleem. Dat lukt mij denk ik zelf wel dus dat wil ik nog even voor mijzelf houden.

Waar het mij nu omgaat is het volgende. Zolang checkbox3 niet is aangevinkt dan werkt het formulier zoals het moet. De invullingen gaan goed en het automatisch doorstappen via setfocus naar andere comboboxen en textboxen gaat goed.

Echter zodra ik de checkbox3 is aangevinkt, gaat het mis. Er worden een label en een textbox zichtbaar waarna daar de focus op komst te staan, maar na textbox5, wordt er niet via tab of enter doorgegaan naar textbox6. Dat is wel de bedoeling. Daarna dient na textbox9 automatisch weer de setfocus op combobox2 gezet te worden en daar gaat het mis. De focus wordt niet gezet. Sterker. Na textbox 5, kan ik nergens meer heen. Textbox 6,7,8 en 9 staan in een ander frame.

Hoe kan ik dit oplossen, waar ga ik fout, want ik krijg het niet voor elkaar.

De later bijgevoegde procedures zijn er 2 en staan boven Private Sub Initialize().

Tevens wil ik de kleuren die ik heb gedimd, zoals in de bovenste procedure voor chexkbox3, willen laten gelden over heel het userform. Op die manier wordt het voor mij duidelijk welke kleur er op dat moment wordt ingezet. Ik heb het nu enkel werkend in private sub checkbox3_change().
Het event public werkt niet of ik vul deze niet goed in.

Alvast bedankt.


Bekijk bijlage FrmFactuurMaken.xlsm
 
Als ik je goed begrijp is daar geen aanpassing in de code nodig maar moet je per object in het formulier het attribuut TabIndex nakijken en zorgen dat deze de juiste volgorde hebben. Nu gaat alles dwars door elkaar heen waardoor de volgorde niet klopt.
 
De tabindex is volgens mij in orde. Ik heb zelfs het formulier opnieuw aangemaakt omdat ik hier eerder wel in heb zitten stoeien. Om er zeker van te zijn dat het allemaal klopte, ik had namelijk al een paar problemen, heb ik het formulier in volgorde opnieuw opgemaakt. Hierna waren de problemen weer weg. Nu heb ik enkel checkbox3 verplaatst naar een ander frame en de code er aan vastgemaakt die in het bijgevoegde bestand staat.

Het probleem ontstaat enkel wanneer checkbox3 gebruikt wordt.
 
Ik neem aan dat het formulier dit dan zelf regelt. En als ik verder kijk hebben de textboxen, comboboxen, labels en checkboxen een eigen TabIndex reeks.
 
Klopt, ze hebben allemaal een eigen TabIndex. Maar als je kijkt naar de objecten van linksboven naar rechtsonder moet dat TabIndex 1, 2, 3, etc zijn. En dat is het nu niet. Die TabIndex bepaald bepaald naar welk object wordt gesprongen als je op de Tab toets drukt, dus de huidige plus 1, en dat loopt nu kriskras door elkaar.
 
Laatst bewerkt:
Sorry Edmoor. Dit begrijp ik even niet. Ik weet waar ik TabIndex moet instellen, maar hoe moet dit dan ingesteld worden. Ik werk ook nog eens met frames. Als ik de objecten in de frames gaat vergelijken dan zie ik dat er objecten in andere frames hetzelfde TabIndex nummer dragen. In frame 1 kom ik bijvoorbeeld een TabIndex 2 tegen en ook in frame 2. Verder wat moet ik dan in volgorde zetten. Gewoon alleen de textboxen of alle objecten in het volledig userform.

De laatste keer dat ik hieraan heb gezeten, functioneerde het userform nog minder.
 
Ik heb het formulier werderom, snel opnieuw gemaakt. Voordeel dat ik de opzet nu uit mijn hoofd ken. Hierna werkte het nog steeds niet.

Nadat ik de Cycle van frame2 op frmCycleCurrentForm heb gezet, gaat de tabindex wel goed. Maar SetFocus naar Combobox2 in frame6 werkt nog steeds niet bij checkbox1 = True vanaf Textbox9 in frame 2.

Ik heb het aangepaste bestand voor de zekerheid toegevoegd. Dit als je er naar moet cq. wilt kijken.

Bekijk bijlage FrmFactuurMaken.xlsm
 
Laatst bewerkt:
Op de code: msgbox("po") moet je maar niet letten in Private Sub TextBox9_AfterUpdate().

Deze is er even voor mij voor een pauze in te voeren, zodat ik de verandering in de gaten kan houden na het klikken op OK. Deze gaat en of mag er gewoon uit.
 
Nou ik ben even uitgeblust. Ik ga nu toch echt vragen om aanpassingen daar waar het nodig is.

De problemen met de TabIndex zijn voor zover ik nu kan zien, verholpen. Dat wil zeggen dat dat stukje loopt. Echter wat mij ook opvalt is dat zodra de knop Reset wordt aangeklikt, de TextBoxen 15 en 16 wel naar vbNullString gaan, maar zij worden niet gelockt en ook niet veranderd van kleur en blijven wit van kleur. De rest reset weer wel. Toch is de code volgens mij in orde dus het zit ergens anders in een _Change of _Afterupdate.

Dus met de .SetFocus Combobox2 zoals eerder beschreven, zit er hier dus ook hier een probleem in.
 
Oke probleem voor TextBoxen opgelost. Ik heb een IF Statement toegevoegd om de For loop te beëindigen zodra ComboBox1 leeg is. Vernieuwd bestand bijgevoegd.

Enkel blijft tot nu toe de SetFocus naar ComboBox2 in frame 6 vanaf TextBox9 in frame2. Hier blijf ik steken. Dus graag een oplossing.

Bij voorbaat dank.

Bekijk bijlage FrmFactuurMaken.xlsm
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan