Hey BlackDevil,
Geen probleem ivm het wachten, privéleven gaat voor.
Hopelijk valt jouw driedaagse goed mee?
Oei, ik vrees dat je mijn uitspraak
daarna wacht mij een uiterst belastende driedaagse in mijn job
meer dan een beetje verkeerd hebt geïnterpreteerd : ik heb op het werk 3 LOODzware dagen achter de rug, boordevol onderhandelingen, opleidingen (geven en krijgen), vba- en sql-demonstraties (enkel geven…), enz., alles in bijzijn van een pakket hiërarchische toplui.
Heb serieus moeten ‘terugbladeren’ in je laatste posts en e-mail om de openstaande probleempjes te verzamelen. Haal ze vooral even terug aan mocht ik er over het hoofd hebben gezien !
En ja, ik kan je nu natuurlijk ook geen bijlage meer bezorgen vermits we beiden op een vroeger exemplaar onze eigen weg zijn gegaan, dus op goed geluk wat antwoordjes :
Bovendien zou ik die laatste regel tussen If en Else opnemen.
Bedoel je een nieuw If-statement dan?
want het opnemen in dat van de ChckB_Boek gaat niet werken hé aangezien de TxtB_Boek ook leeg kan
zijn indien ChckB_Boek aangevinkt is.
Toch wel, hoor, we zullen er wel voor zorgen dat het gaat werken.
(Tussen haakjes : ik vond in je code ook “Set ilb_blad = Sheets("IdxLst_Bk" & Format(i, "00"))”. Dat is overbodig, want je doet verder niets meer met ‘ilb_blad’. Enkel gegevens uit Boeken naar Invoer overbrengen is hier het doel. Ook “i_rij = WorksheetFunction.Match(nr, ilb_blad.Columns(1), 0))” is daarom overbodig. Al wat je nodig hebt is bkn_rij, en die is al eerder bepaald)
Eerst even de logica bepalen : als je “Bewerken” aanklikt is je formulier nog niet geladen. Elke keer dat het wel geladen wordt zal het enkel die zaken bevatten die in het ontwerp zijn voorzien. Daar zijn alle checkboxen uitgevinkt, alle textboxen leeg én disabled. Alles wat we in Boeken vinden en daarmee overeenstemt moeten we vooral niet opnieuw gaan doen.
Wat we kunnen aantreffen in Boeken : in de linker kolom P of ‘-‘, in de rechter ‘-‘ of een paginanummer.
Dus : als in de linker kolom ‘-‘ staat moeten we niets doen.
Alleen als er P staat is actie nodig : chkbox moet aangevinkt worden en textbox enabled, en als rechts ‘-‘ staat blijft textbox leeg, anders nemen we het paginanummer over.
In vba-taal :
aantal_boeken = 25
For i = 1 To aantal_boeken
p_kolom = i * 2
If Bkn.Cells(bkn_rij, p_kolom) = "P" Then
Invoer("ChckB_Boek" & i).Value = True
Invoer("TxtB_Boek" & i).Enabled = True
If Bkn.Cells(bkn_rij, p_kolom + 1) <> "-" Then
Invoer("TxtB_Boek" & i).Value = Bkn.Cells(bkn_rij, p_kolom + 1)
End If
End If
Next i
Met de code in je volgende post zat je dus goed, maar deze hierboven leest prettiger en volstaat.
Want zo heb ik de formules op de personenfiches bij de datums ook reeds aangepast omdat daar steeds als waarde “0” werd weergegeven als een bepaalde datum niet ingevuld was terwijl dit dan ook ‘leeg’ hoort te zijn.
Dat was mij ook al opgevallen, en ik had het in mijn ‘interne’ versie ook al opgelost toen ik vernam dat je zelf volop aan het coderen was.
Die formules aanpassen op zich vormt voor mij geen problemen maar wat de waarde van de blanco geboortedatum betreft heb ik geen idee hoe ik deze moet oplossen, vooral omwille van die speciale “p_dif”-functie.
Heel wat posts geleden hebben we een verandering moeten aanbrengen, al weet ik echt niet meer waarom, waardoor alle lege cellen als 0 werden gezien, en dat werd niet meer zoals tevoren opgevangen met “als.fout”.
Ik zou helemaal vooraan in de “p-dif”-functie zetten (om de wiskundige 100% zeker te zijn) :
If d1 = "" Or d2 = "" Or d1 = 0 Or d2 = 0 Then
p_dif = "": Exit Function
End If
Een andere kleine aanpassing is ook een goed idee (zij het enkel om cosmetische redenen) :
waar (bijna op het einde) “IF dagen > 1” staat kan dit beter worden “IF dagen <> 1”
Ik heb ook de wijze om de formulieren op te roepen gewijzigd naar een mini-formuliertje maar dat dient ook nog op punt gezet te worden.
Het extra werkblad, de userform met de keuzelijst & opdrachtknop en de keuzelijst heb ik reeds gemaakt. Ook het vastzetten van het userform op het extra werkblad heb ik reeds in orde gebracht, enz…
Ik heb uit alle macht geprobeerd om een meerwaarde te ontdekken in deze beide nieuwe formulieren, maar zonder resultaat. Als experiment is er uiteraard niets mis mee, maar naar mijn gevoel is het er een beetje ‘over’. Vermoedelijk heb je ondertussen ook al ondervonden dat je niet één klik hebt gewonnen ?
maar telkens ik elders in het bestand wil werken moet ik het mini-form afsluiten en als ik het dan erna weer
wil gebruiken moet ik gewoon in het werkblad "Start" ergens klikken om het weer te voorschijn te halen
Dus als je hier toch wil aan vasthouden kunnen we dat natuurlijk wat ordentelijker laten verlopen.
Voor je allernieuwste extra werkblad zie ik inderdaad een veel simpeler manier, maar moet straks weer de deur uit, dus die gaat even in de koelkast.
Misschien toch een goed idee om, eens je deze zaken hebt verwerkt, mij nog eens de laatste versie te bezorgen ?
Groetjes,
pitufo