Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Excel-beperking mbt datum pré 1900 wegwerken met VBA  (gelezen 249594 keer)

0 leden en 1 gast bekijken dit topic.

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #90 Gepost op: 29 december 2018, 21:30:17 »
Hey pitufo,

Ik heb nog enkele probleempjes ondervonden bij de 'personenfiche'.
Zo kan ik bevoorbeeld niet naar beneden of naar boven scrollen in de personenfiche wat vrij lastig is.
Ook heb ik nog een 'oude' formule teruggevonden die er niet meer hoort in te staan maar kan deze
niet verwijderen...
En ook de eerste 4 rijen kan ik niet laten verbergen...
Het werkblad lijkt op één of andere manier 'geblokkeerd' te zitten maar is toch niet beveiligd...

groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #91 Gepost op: 30 december 2018, 11:27:09 »
Hey BlackDevil,

Wat je laatste post betreft heb ik geen idee wat er kan gebeurd zijn. Geen enkele van je vaststellingen doen zich in mijn versie voor : met de scrollbalk is er natuurlijk weinig bewegingsruimte gezien het aantal gebruikte rijen. Met de pijltjes kan ik steeds overal heen. En ook rijen verbergen of zichtbaar maken gaat goed.
Ik heb voor de aardigheid ook een formule verwijderd, en zoals verwacht zonder problemen.
Mijn enige advies is om de bijlage even opnieuw te downloaden.
Welke formule is het overigens die weg zou moeten ?

Over naar je voorlaatste post :
Het enige wat nog moest aangepast worden was dat de verplichte velden enkel "naam" en "geslacht" mogen zijn.
Maar omdat "geslacht" een keuze met 3 mogelijkheden betreft wist ik niet hoe ik dat dan moest gaan aanpassen in de code
vandaar dat het veld "voornaam" er momenteel nog in staat.
Die nemen we mee naar versie 3.

Punt 4 uit mijn vorige bericht is inderdaad opgelost wat betreft de invoer bij een nieuwe persoon maar zodra men datzelfde record
opent voor bewerken en het dan opslaat dan ontstaat het probleem opnieuw. Dan staat automatisch het '?' standaard geselecteerd.
Idem dus.
Het 'probleem' (maar da's hier een overstatement) was dat 'Geslacht' en 'B/C' er hetzelfde uitzien maar niet zijn.
Vermits 'Geslacht' een verplicht veld is zijn er 3 mogelijkheden : M, V en ?.
Maar bij 'B/C' zijn er dus 4 mogelijkheden : B, C, ? en alles leeg.

Betreft de invoer van de datums zijn er ook wel nog enkele 'voorwaarden' die in de code moeten opgenomen worden ter voorkoming
van foutieve input. Zoals bvb dat tussen geboortedatum en 1e huwelijksdatum minstens 16 jaar moet zitten.
En zoals bvb dat overlijdensdatum na de geboortedatum moet vallen en vóór de B/C-datum moet liggen... en dergelijke...

Omdat je daar nooit eerder over praatte nam ik aan dat je dat zelf tijdens het inputten in de gaten zou houden.
We kunnen uiteraard zo een code inbouwen (maar iets lastiger dan op het eerste zicht).
Het uitgangspunt zou kunnen zijn :
geb.datum < doopdatum < huw.datum1 < huw.datum2 < huw.datum3 < overl.datum < B/C-datum
Als dat zou kloppen moesten de datums enkel per paar bekeken worden, maar meerdere zullen in de meeste gevallen leeg blijven.
En doopdatum kan nog een eindje naar rechts opschuiven, nl. tot voorbij huw.datum3, dus :
geb.datum < huw.datum1 < huw.datum2 < huw.datum3 < overl.datum < B/C-datum
en :
geb.datum < doopdatum < overl.datum
Als we dan nog met de minimum leeftijd bij huwelijk rekening houden, zie jij dan nog vergeten zaken in deze redenering ?

Groetjes,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #92 Gepost op: 30 december 2018, 12:04:49 »
Hey pitufo,

Wat betreft het scrollen in de 'personenfiche' lukt het mij niet om met de pc-muis te scrollen.
Als ik gewoon op de pijltjes van de scrollbalk klik lukt het wel natuurlijk, maar om vlug het onderste deel van
de 'personenfiche' te bekijken is het natuurlijk wel sneller en dus handiger met het scrollwieltje van de pc-muis.
De rijen die ik niet kan verbergen zijn de eerste 4. Deze waren oorspronkelijk namelijk niet verborgen, enkel de
rijhoogte zo minimaal mogelijk gezet. Ik heb deze groter gemaakt omdat ik gewoon even wou kijken wat er in
die cellen was ingegeven en vervolgens wou ik ze verbergen wat niet gelukt is.
De formule die nog moet verwijderd worden staat in cel B25 (als ik me niet vergis).
Er stonden dus in B23 en B25 nog hulpformules mbt mijn oorspronkelijke versie van de 'personenfiche' met de
'vert.zoeken'-formules. Maar gezien we de formules allemaal hebben omgezet naar 'index'- en 'vergelijken'-formules
zijn die oorspronkelijke hulpformules dus totaal overbodig geworden.
De formule in B23 heb ik zonder problemen kunnen verwijderen maar B25 lukt dus niet.
Uiteindelijk, door de gewijzigde formule-structuur waren de hulpformules in de eerste rij eigenlijk ook overbodig met
uitzondering dan van de formule voor het 'geslacht-symbool' in G1.


Wat de extra controle op de input van de datums betreft hou ik dit normaliter uiteraard zelf in de gaten al is een typfout
snel gebeurd. Maar zoals ik eerder reeds vermeld heb ga ik niet de enige zijn die met het bestand zal werken.
Vaak zal mijn 12-jarige dochter de input doen en zij gaat daar mogelijks niet altijd extra op letten en dan wil ik zoveel
mogelijk mogelijke inputfouten voorkomen door enkele 'voorwaarden' of 'regels' toe te voegen met een ingebouwde melding.
Maar als dat echt te omslachtig zou zijn dan hoeft het niet persé hoor.

De opstelling die jij daar opgeeft lijkt me op het eerste zicht ok te zijn.
Nu wat die 'doopdatum' betreft zal deze sowieso altijd tussen de geboortedatum en de 1e huwelijksdatum moeten vallen.
Hedendaags word daar niet zoveel aandacht meer aan gegeven maar tot voor enkele jaren terug diende men zowel gedoopt
als het vormsel gehad te hebben alvorens men voor de kerk mocht trouwen. En zeker in de vorige eeuwen was trouwen voor
de kerk automatisch bij het eerste huwelijk.
Ik herinner me zelfs dat ik (43 jaar geleden dus) niet gedoopt kon worden alvorens mijn ouders voor de kerk getrouwd waren.
Zij huwden voor de wet midden 1974 en ik werd gedoopt begin 1976 en een week voor mijn doop zijn mijn ouders nog voor de
kerk moeten trouwen. Maar goed.
Wat mij betreft mag de redenering dus gewoon de volgende zijn :
geb.dat < doopdat < huw.dat1 < huw.dat2 < huw.dat3 < ovl.dat < B/C-dat

verder zie ik zo direkt wat de datums betreft geen specifieke voorwaarden meer.

vriendelijke en dankbare groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #93 Gepost op: 30 december 2018, 12:35:09 »
Hey BlackDevil,

Spijtig dat mijn glazen bol kapot is, anders kon ik je misschien wel zeggen wat er scheelt.
De overbodige formules laten zich in mijn versie met plezier verwijderen, en scrollen met de muis gaat prima.
Ik stuur het bestand met de verwijderde formules nog eens mee als versie 2.1  ;)
Als dit bij jou blijft tegenpruttelen zit er vermoedelijk ergens iets fout in je Excel-opties.

De datumvergelijkingen staan inmiddels ook ingepland voor versie 3  0:-)

Groetjes,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #94 Gepost op: 02 januari 2019, 11:51:02 »
Hey pitufo,

Het probleem lag blijkbaar volledig bij mij.
Ik heb wel al langer allerlei problemen met mijn laptop. Sinds Win10 een dik jaar geleden die
speciale update heeft gedaan heb ik niets anders dan miserie... maar dat is voor een ander forum :).


Ik heb jouw nieuwe versie voor het berekenen van de leeftijden bekeken en deze is inderdaad wel correcter
dus die mag je dan zeker toevoegen.

Wat de formules in de personenfiche betreft heb ik echter nog een klein 'foutje' gevonden.
Het is te zeggen, niet echt een fout, eerder een onvolledige formule.
Het is namelijk zo dat er bij de invoer van 'vader' op het userform enkel de voornaam word ingevuld maar
op de personenfiche moet uiteraard zowel de familienaam als de voornaam staan.
Daarom had ik dus in mijn formule bij 'vader' op de personenfiche de formule zodanig opgesteld dat hij de
gegevens van de kolom 'vader' moest combineren met de kolom 'familienaam' van de persoon van de fiche
waarbij dan eerst de familienaam en dan de voornaam dient te komen.
Dus die formule zou nog mogen aangepast worden. Ik heb het zelf geprobeerd maar dit lukt me niet.
Ik kan ze wel aanpassen maar zodra ik dan op enter druk staat de oorspronkelijke formule er weer.

Maar voor de rest ziet het er helemaal goed uit ;).

vriendelijke en dankbare groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #95 Gepost op: 02 januari 2019, 21:31:55 »
Hallo BlackDevil,

't Is gebeurd : versie 3 heeft het levenslicht gezien.
Even een overzichtje van de recente aanpassingen : het probleem met de keuzerondjes bij Geslacht en B/C is van de baan, er wordt bij opslaan nog enkel voorafgaand gecheckt of naam en geslacht zijn ingevuld, de leeftijdsverschilfunctie is toegevoegd en geactiveerd, zowel onder de vorm van formules (Persoonsfiche) als via vba (wegschrijven naar Leeftijdsberekeningen), alle ingevoerde datums worden ten opzichte van elkaar gecontroleerd, en de keuzelijsten voor de verschillende comboboxen worden continu up to date gehouden.

Het is namelijk zo dat er bij de invoer van 'vader' op het userform enkel de voornaam word ingevuld maar
op de personenfiche moet uiteraard zowel de familienaam als de voornaam staan.
Daarom had ik dus in mijn formule bij 'vader' op de personenfiche de formule zodanig opgesteld dat hij de
gegevens van de kolom 'vader' moest combineren met de kolom 'familienaam' van de persoon van de fiche

Dat zouden we uiteraard zo kunnen regelen, maar dan stuiten we mogelijk op een probleempje.
Het zou niet de eerste keer zijn dat een ambtenaar van de burgerlijke stand zich vergist waardoor een kind plots een andere familienaam heeft dan zijn vader (een y die plots ij wordt, dubbele medeklinkers die enkele worden of omgekeerd, enz.)
Ik weet het, het vraagt wat meer inputwerk, maar het lijkt mij de enige manier om het 100 % correct te houden. Wat denk je ?

Volgend probleem zou iets groter kunnen zijn :
Er gebeurt op 'Leeftijdsberekeningen' ook al wat, maar de gegevens '°-datum vader' en '°-datum moeder' zijn uiteraard nodig om hun leeftijd te bepalen. En die zijn nergens voorzien op het formulier. Evenmin is er een aantoonbare link tussen kind en ouders.
Op één of andere wijze zullen we die toch ergens vandaan moeten halen, want ze zijn zelfs op Persoonsfiche nodig.
Hopelijk kijk ik gewoon ergens over, anders vrees ik dat het invulformulier nog deze uitbreiding nodig heeft.
Buig jij je daar nog eens over ?

Ik zie nog 2 andere zaken die, althans in mijn ogen, eenvoudiger kunnen, maar wijs mij vooral terecht als je dat anders bekijkt !
Bij Geslacht en B/C kan inderdaad worden geredeneerd : het ene, óf het andere, óf we weten het niet.
Maar bij de 9 groepen betreffende documenten zou het kunnen zijn : ja (ik heb het document) of neen (ik heb het niet). In dat geval kunnen 3 keuzerondjes worden vervangen door 1 selectievakje (tenzij de redenering moet luiden : het document bestaat, óf bestaat niet, óf we weten niet of het bestaat).

De andere kwestie gaat over 'Boeken'. Zou je niet kunnen stellen dat én selectievakje én tekstvak dubbel gebruik is ?
De mogelijkheden daar kunnen we 0/0, 0/1, 1/0 en 1/1 noemen. Enkel de eerste en de laatste zijn geldig. Want wat te doen als selectievakje niet geactiveerd is maar wel een paginanummer ingevuld (0/1), ofwel wél geactiveerd zonder paginanummer (1/0) ?
Als we het selectievakje weghalen blijft enkel 0 en 1 over. Bijkomend voordeel : minder invoerwerk.
De vba-redenering wordt dan : een ingevuld paginanummer wordt weggeschreven, én bij een leeg wordt een lege cel weggeschreven.

Ziezo, werk aan de winkel : deze knopen even doorhakken, én versie 3 testen ! Veel plezier ermee !

Groetjes,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #96 Gepost op: 03 januari 2019, 02:49:12 »
Hey Pitufo,

Dat zouden we uiteraard zo kunnen regelen, maar dan stuiten we mogelijk op een probleempje.
Het zou niet de eerste keer zijn dat een ambtenaar van de burgerlijke stand zich vergist waardoor een kind plots een andere familienaam heeft dan zijn vader (een y die plots ij wordt, dubbele medeklinkers die enkele worden of omgekeerd, enz.)
Ik weet het, het vraagt wat meer inputwerk, maar het lijkt mij de enige manier om het 100 % correct te houden. Wat denk je ?

Inderdaad, dat gebeurde vaak.... In mijn rechte voorvaderlijke lijn, over amper een 10-tal generaties, word mijn familienaam maar liefst op 6 diverse wijzes geschreven. In die tijd werd er vooral op gehoor geschreven en in de Franse periode werden de namen zelfs soms in het Frans genoteerd, zoals bvb De Prijck werd dan voor 1 of 2 generaties Duprecq.
Dit gezegd zijnde begrijp ik enerzijds jouw redenering wel maar het is wel zo dat ik daar mijn eigen systeem voor heb waardoor mijn wijze van overname in de personenfiche van de familienaam nooit voor problemen kan zorgen omdat deze in hoofdzaak altijd hetzelfde ingegeven word. Indien er toch eens één tussen zit waarbij de familienaam van het kind anders werd geschreven dan zet ik deze 'andere wijze' tussen haakjes bij de voornaam. Dit systeem pas ik zo al bijna 20 jaar toe om diverse redenen en kan ik nu ineens onmogelijk gaan wijzigen.
Dus graag hou ik het voor de ingave van de vader bij de input op enkel de voornaam en in de personenfiche de formule ['familienaam kind' + '(voor)naam vader'].

Citaat
Volgend probleem zou iets groter kunnen zijn :
Er gebeurt op 'Leeftijdsberekeningen' ook al wat, maar de gegevens '°-datum vader' en '°-datum moeder' zijn uiteraard nodig om hun leeftijd te bepalen. En die zijn nergens voorzien op het formulier. Evenmin is er een aantoonbare link tussen kind en ouders.
Op één of andere wijze zullen we die toch ergens vandaan moeten halen, want ze zijn zelfs op Persoonsfiche nodig.
Hopelijk kijk ik gewoon ergens over, anders vrees ik dat het invulformulier nog deze uitbreiding nodig heeft.
Buig jij je daar nog eens over ?

Je hebt inderdaad ergens over gekeken :).
In mijn vorige gegevensbestand, waarin ik nog met vertikaal zoeken werkte had ik dit zo ingesteld met mijn formules op de personenfiche (enige plaats waarvoor ik die leeftijd (van de ouders) nodig heb) dat men deze moest zoeken via de SOSA-nrs... Zoals ik daarover reeds uitgelicht had, is het SOSA-nr
van de vader altijd het dubbele van de betreffende persoon en het SOSa-nr van de moeder altijd het dubbele + 1 van de betreffende persoon.
Dus de persoon met SOSA-nr 58, diens vader heeft dan SOSA-nr 116 en de moeder SOSA-nr 117.
Aangezien ik enkel maar voor de personen met een SOSA-nr de personenfiche moet maken kan dit nog steeds perfect op die wijze opgehaald worden.
Vandaar dat ik deze datums bewust heb weggelaten op het invoerformulier, het stond al vol genoeg met velden die wél noodzakelijk zijn.
Dus ook hier vormt er zich dus geen probleem :).

Citaat
Ik zie nog 2 andere zaken die, althans in mijn ogen, eenvoudiger kunnen, maar wijs mij vooral terecht als je dat anders bekijkt !
Bij Geslacht en B/C kan inderdaad worden geredeneerd : het ene, óf het andere, óf we weten het niet.
Maar bij de 9 groepen betreffende documenten zou het kunnen zijn : ja (ik heb het document) of neen (ik heb het niet). In dat geval kunnen 3 keuzerondjes worden vervangen door 1 selectievakje (tenzij de redenering moet luiden : het document bestaat, óf bestaat niet, óf we weten niet of het bestaat).

Ook hier is er weer een doordachte reden voor de 3 keuzerondjes bij elk document.
De redenering luidt : ja (ik heb het document gevonden én in bezit), of Nee (ik heb het document wél gevonden maar nog niet in bezit), of ? (ik heb het nog niet gevonden of het bestaat niet).

Citaat
De andere kwestie gaat over 'Boeken'. Zou je niet kunnen stellen dat én selectievakje én tekstvak dubbel gebruik is ?
De mogelijkheden daar kunnen we 0/0, 0/1, 1/0 en 1/1 noemen. Enkel de eerste en de laatste zijn geldig. Want wat te doen als selectievakje niet geactiveerd is maar wel een paginanummer ingevuld (0/1), ofwel wél geactiveerd zonder paginanummer (1/0) ?
Als we het selectievakje weghalen blijft enkel 0 en 1 over. Bijkomend voordeel : minder invoerwerk.
De vba-redenering wordt dan : een ingevuld paginanummer wordt weggeschreven, én bij een leeg wordt een lege cel weggeschreven.

Nee, het is geen dubbel gebruik, het is namelijk de bedoeling dat men enkel een paginanummer kan invullen nadat het bijhorende selectievakje aangekruist is.
Dit om te vermijden dat de betreffende persoon in de verkeerde indexlijst zou worden opgenomen. Maar ook is het zo dat ik voor velen reeds op voorhand weet
in welk boek ze zullen vermeld worden maar nog geen exact paginanummer heb maar wel reeds mijn indexlijst moet hebben.
Enkel in de lijsten van de boeken die aangevinkt zijn mogen de gegevens van die persoon vermeld worden en in geen enkele andere lijst.
Dus ook hier hebben beide, zowel het selectievak als het tekstvak, hun doel.
Ikzelf bijvoorbeeld zal zeker in een 7-tal boeken voorkomen maar ik weet nu nog niet op welke pagina in elk boek ik met mijn gezin zal voorkomen...

Citaat
Ziezo, werk aan de winkel : deze knopen even doorhakken, én versie 3 testen ! Veel plezier ermee !

Geen knopen door te hakken dus ;).
Versie 3 zal ik morgenvoormiddag uittesten en mijn bevindingen dan hier vermelden.

vriendelijke en dankbare groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #97 Gepost op: 03 januari 2019, 14:30:24 »
Hey pitufo,

Zoals beloofd ben ik versie 3 volop aan het uittesten.
Hierbij al enkele kleinigheidjes die zouden mogen aangepast worden (sommigen zou ik zelf kunnen aanpassen
maar aangezien het beter is om alles binnen hetzelfde bestand aan te passen en te coderen vermeld ik alles hier) :

1) De keuzemenu's in het formulier zouden "scroll-baar" mogen gemaakt worden, werkt makkelijker en vlotter.

2) de structuur van de leeftijden zou ik graag standaard hebben op ** jaar, ** maand en ** dag(en), zelfs indien
    de leeftijd maar enkele dagen (dus 0 jaar, 0 maand en ** dag(en) ) of maanden (dus 0 jaar, ** maand en ** dag(en) ) is.

3) en dan nog een héél klein mini-detail, is gewoon echt een persoonlijke voorkeur vanuit esthetisch oogpunt en misschien
    ook totaal niet mogelijk, maar indien het toch mogelijk zou zijn en niet te omslachtig is bij de codering ervan dan zou ik
    het wel wenselijk vinden indien de datumnotatie gewijzigd kan worden in dd-mm-jjjj (dus met koppelstreepjes)
    én dan nog een detail vanuit praktische voorkeur indien mogelijk voor de invoer ervoor zorgen dat deze streepjes niet
    steeds effectief moeten ingevoerd worden. Dus dat ik gewoon 03012019 moet intypen en dit dan geregistreerd word
    als 03-01-2019.

Verder heb ik buiten deze vier kleine details niet zo meteen iets kunnen opmerken dus dat ziet er momenteel eersteklas uit ;).

vriendelijke en zéér dankbare groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #98 Gepost op: 06 januari 2019, 11:20:56 »
Hallo BlackDevil,

De volgende telg is versie 4.
Behalve aanvullingen die al langer op de planning stonden heb ik in de mate van het mogelijke ook rekening gehouden met de aandachtspunten uit je laatste 2 posts :

Citaat
Dus graag hou ik het voor de ingave van de vader bij de input op enkel de voornaam en in de personenfiche de formule ['familienaam kind' + '(voor)naam vader'].
Citaat
De redenering luidt : ja (ik heb het document gevonden én in bezit), of Nee (ik heb het document wél gevonden maar nog niet in bezit), of ? (ik heb het nog niet gevonden of het bestaat niet).
Beide zijn volledig aangepast naar wens.

Citaat
Je hebt inderdaad ergens over gekeken (Sosa)
Niet helemaal… Ik struikelde over het feit dat geboortedatum van de ouders ook was voorzien op werkblad Leeftijdsberekeningen en op de bijlagen die ik vond zag ik geen formule maar een waarde, dus gewoon ingevuld. Maar goed, als het eigenlijke gebruik enkel de Personenfiche betreft kan het uiteraard via Sosa-nr worden gevonden. In de praktijk komt het resultaat van de opzoeking/berekening nu toch op Leeftijdsberekeningen en haalt Personenfiche het daar op.
Al zou het logisch klinken vba de berekening te laten maken en het resultaat in Leeftijdsberekening te zetten, is hier toch met formules gewerkt. Ze moeten evenwel niet op voorhand over duizenden rijen worden gekopieerd. Ze staan enkel op de eerste rij en vba kopieert ze telkens je een nieuw persoon toevoegt. De reden voor deze werkwijze is te vinden in de (grote) kans dat een kind vroeger dan de ouders wordt ingevoerd of dat het Sosa-nummer van de ouders pas later wordt toegevoegd.

Citaat
De keuzemenu's in het formulier zouden "scroll-baar" mogen gemaakt worden
Dat is jammer genoeg niet instelbaar. Mits een beetje googelen vond ik wel een zogenaamde mogelijkheid, maar de commentaren daarop zijn behoorlijk uiteenlopend. Ik heb er eentje geprobeerd met als gevolg een Windows-crash…
Wat je wel kan doen (maar dat doe je beter zelf i.v.m. bv. je schermresolutie) is de lijsten langer maken. Moet je wel per combobox afzonderlijk instellen bij ListRows (staan standaard allemaal op 8 rijen).

Citaat
de structuur van de leeftijden zou ik graag standaard hebben op ** jaar, ** maand en ** dag(en)
Dit was een makkelijke, diende enkel aangepast te worden binnen de ontworpen functie.

Citaat
en dan nog een héél klein mini-detail, misschien ook totaal niet mogelijk (03012019 - 03-01-2019).
Mogelijk uiteraard wel, maar vergde meer aanpassingen dan ik eerst dacht, vooral omwille van de datums vóór 1900, maar eens begonnen heb ik het toch maar helemaal in orde gebracht.

Blijft... de boekenkwestie...
Citaat
Nee, het is geen dubbel gebruik, het is namelijk de bedoeling dat men enkel een paginanummer kan invullen nadat het bijhorende selectievakje aangekruist is
Zelf vind ik het nog steeds logisch dat ik dubbel gebruik vermoedde, want je hebt in je basisontwerp geen enkele gegevenstabel waar iets gebeurt met het selectievakje !
Zoals je formulier was opgebouwd kon eender welk selectievakje worden aangevinkt en elk paginanummer worden ingevuld. Dat is niet goed genoeg omwille van het woordje “kan” uit jouw citaat. Ik heb dus initieel al alle textboxen ‘disabled’ gezet in het formulierontwerp, en deze via vba telkens laten reageren op het aan- of uitvinken van het selectievakje.
Het grote probleem blijft : zolang we niet beide elementen wegschrijven kan onmogelijk op een correcte manier het formulier door vba worden ingevuld als je een persoon wil bijwerken.
Bekijk je nog eens hoe je dat liefst zou geregeld zien ? De voor de hand liggende manier lijkt mij in je gegevenstabel per boek 2 kolommen te voorzien. Wat denk je ?

Groetjes,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #99 Gepost op: 06 januari 2019, 12:52:38 »
Hey pitufo,

Nogmaals bedankt voor de nodige aanpassingen en verdere uitbreiding.

Blijft... de boekenkwestie...Zelf vind ik het nog steeds logisch dat ik dubbel gebruik vermoedde, want je hebt in je basisontwerp geen enkele gegevenstabel waar iets gebeurt met het selectievakje !
Zoals je formulier was opgebouwd kon eender welk selectievakje worden aangevinkt en elk paginanummer worden ingevuld. Dat is niet goed genoeg omwille van het woordje “kan” uit jouw citaat. Ik heb dus initieel al alle textboxen ‘disabled’ gezet in het formulierontwerp, en deze via vba telkens laten reageren op het aan- of uitvinken van het selectievakje.
Het grote probleem blijft : zolang we niet beide elementen wegschrijven kan onmogelijk op een correcte manier het formulier door vba worden ingevuld als je een persoon wil bijwerken.
Bekijk je nog eens hoe je dat liefst zou geregeld zien ? De voor de hand liggende manier lijkt mij in je gegevenstabel per boek 2 kolommen te voorzien. Wat denk je ?

De indexlijst in de tabellen per boek dient eigenlijk zuiver om over te brengen naar mijn boekbestand(.docx) en dit zal rechtstreeks
gebeuren via 'copy/paste'.

Volgens mijn plan was dit het stappenplan :
(voor wat de interactie tussen formulier (vba) en tabellen (excel) betreft)
invoer pag.nr in formulier -> overdracht naar juiste kolom in tabel 'boeken' -> wanneer 'waarde' in cel van bepaald boek voor een bepaald record, dan waarde in indexlijst-tabel van het betreffende boek -> wanneer in de indexlijst-tabel, betreffende een bepaald record, een waarde in de kolom 'pag_nr' staat dan mogen de andere benodigde gegevens uit dat record vermeld worden, anders niet en blijft de rij leeg.

(voor wat de interactie op het formulier betreft)
wanneer selectievakje aangevinkt dan dient het bijhorende txtvak geactiveerd te worden zodat invoer mogelijk word (maar dus niet 'verplicht' is). Wanneer selectievakje niet is aangevinkt mag invoer in het bijhorende txtvak niet mogelijk zijn.


Mag ik uit jouw uitleg begrijpen dat die interactie binnen het formulier niet mogelijk is via VBA-code?

vriendelijke en dankbare groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #100 Gepost op: 06 januari 2019, 14:05:00 »
Hallo BlackDevil

Citaat
wanneer selectievakje aangevinkt dan dient het bijhorende txtvak geactiveerd te worden zodat invoer mogelijk word (maar dus niet 'verplicht' is). Wanneer selectievakje niet is aangevinkt mag invoer in het bijhorende txtvak niet mogelijk zijn.
Mag ik uit jouw uitleg begrijpen dat die interactie binnen het formulier niet mogelijk is via VBA-code?

Maar dat is toch exact wat ik reeds in orde had gebracht :
Citaat
Ik heb dus initieel al alle textboxen ‘disabled’ gezet in het formulierontwerp, en deze via vba telkens laten reageren op het aan- of uitvinken van het selectievakje.

Stel je even volgend (m.i. realistisch) scenario voor : bij invoer van persoon X vink je boeken 2, 5, 6, 9 en 11 aan en zet je enkel bij boek 9 effectief een pagina. Later vind je extra informatie over X en kiest voor Bijwerken. Op het formulier dat je dan te zien krijgt zouden we maximaal als noodoplossing vba kunnen wijsmaken dat boek 9 moet aangevinkt worden, maar nooit de vinkjes bij de andere boeken.
Toch nog eens over nadenken ? Of wil ik het gewoon TE goed doen ?

Groetjes,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #101 Gepost op: 06 januari 2019, 14:43:55 »
Hey pitufo,

Inderdaad, zo had je het reeds in orde gebracht, op zich dus in orde, maar ik had nu (duidelijk verkeerdelijk) willen
begrijpen dat je bedoelde dat deze werking niet goed zat naar het wegschrijven toe.
eventjes een verwarring van mijn kant, dus niets gezegd ;D

Stel je even volgend (m.i. realistisch) scenario voor : bij invoer van persoon X vink je boeken 2, 5, 6, 9 en 11 aan en zet je enkel bij boek 9 effectief een pagina. Later vind je extra informatie over X en kiest voor Bijwerken. Op het formulier dat je dan te zien krijgt zouden we maximaal als noodoplossing vba kunnen wijsmaken dat boek 9 moet aangevinkt worden, maar nooit de vinkjes bij de andere boeken.
Toch nog eens over nadenken ? Of wil ik het gewoon TE goed doen ?

Dus als ik het goed begrijp behoudt VBA mijn aangevinkte keuzevakjes niet als ze ook niet effectief weggeschreven staan in de tabel..
Tja, nu ik het zo zelf schrijf lijkt me dat natuurlijk ook volkomen logisch ;D. (vermoedelijk omdat ik nu de werking van vba beter begin
te begrijpen door er zelf ook mee te werken :) ).

Ja, dan zal ik eens moeten nadenken op welke manier ik het dan 'anders' kan verwerken.
Het doel is gewoon dat ik door de invoer van mijn records(personen) automatisch de benodigde gegevens voor de indexlijsten
in de juiste tabellen van de betreffende boeken heb staan zodat ik mijn indexlijsten niet afzonderlijk in mijn boek een tweede
keer handmatig moet zitten intypen. Maw dat ik ze gewoon onmiddellijk in de juiste opmaak via copy/paste kan overnemen
in mijn boeken zonder dat ik elke pagina van mijn boek moet overlopen om elke persoon die erin vermeld staat in de lijst te
kunnen zetten.

Per boek 2 kolommen voorzien zou inderdaad een oplossing zijn maar gezien het veel boeken zijn dan word het wel een héle
brede tabel...
Maar om de gehele werking zo simpel mogelijk te houden misschien toch wel de enige oplossing...
Heb er even (terwijl ik dit bericht aan het schrijven ben) over gedacht en ja, laten we het zo doen, gewoon 2 kolommen per boek.

Ik zal in mijn gedownde bestand van versie 4 de tabel dan aanpassen, (ik vermoed dat in de code dan gewoon gezet zal
worden wanneer het selectievakje aangevinkt is dat er dan een "J" dient geplaatst te worden in de betreffende kolom).
Ik had toch enkele 'vergetelheden' gevonden welke ik ondertussen heb aangepast in mijn bestand van versie 4.
(oa bij de code voor het wegschrijven van "documenten" was je de opname van het "InternID_nr" vergeten :-) ,
ook diende de weergave in de tabel bij documenten niet 'J' - 'N' - '?' te zijn maar gewoon bepaalde symbolen (ander lettertype)
die in het standaard lettertype gelijk staan met een 'P' voor ja - een 'O' voor nee - een 'X' voor ? of lege cel).

Ik doe de nodige aanpassingen en dan hang ik het aangepaste bestand er hier weer eventjes aan.

vriendelijke en dankbare groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #102 Gepost op: 06 januari 2019, 16:55:11 »
Hey BlackDevil,

Citaat
Tja, nu ik het zo zelf schrijf lijkt me dat natuurlijk ook volkomen logisch
Fijn te horen dat je weer een extra stap hebt gezet in het begrijpen van het hele vba-gebeuren.
Zo simpel is het inderdaad : alles wat je later opnieuw nodig hebt moet ergens bewaard blijven.

Klopt, InternID was ik blijkbaar vergeten bij Documenten. Nog een geluk dat we elkaar zo een beetje in de gaten houden  8)
Mijn idee over J en N bij Documenten was alweer dat het op zich niet veel kan uitmaken. Als je het zelf naar smaak wil aanpassen, let dan wel op dat het in 2 richtingen moet kloppen : van formulier naar tabel én vice versa.

Wat de boeken betreft heb je bij de supplementaire kolommen mogelijk geen enkele behoefte om die op het werkblad te raadplegen. In dat geval kunnen die eventueel constant verborgen blijven staan (vba vindt die sowieso  ;) )

Groetjes,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #103 Gepost op: 06 januari 2019, 17:53:36 »
Hey pitufo,

Mijn idee over J en N bij Documenten was alweer dat het op zich niet veel kan uitmaken. Als je het zelf naar smaak wil aanpassen, let dan wel op dat het in 2 richtingen moet kloppen : van formulier naar tabel én vice versa.

Ja, in principe zou de J en de N duidelijk genoeg zijn maar aangezien ik er symbolen wil plaatsen voor een makkelijkere en snellere visuele weergave met
voor een positieve waarde een groen vinkje en voor een negatieve waarde een rood kruisje en dit via invoegen in excel terugkomt als een P en een O in het lettertype "Segoe UI Symbol"...
Toen ik nog zuiver via excel en formules werkte had ik in de tabel het lettertype dus op "Segoe UI Symbol" gezet en voor de kleuren dit (via voorwaardelijke opmaak) zo ingesteld dat als er een P ingevoerd werd dit dan in het groen moest komen en bij de invoer van een O in het rood moest weergegeven worden.
Ik heb me nu, terwijl ik toch die kolommen aan het toevoegen was, eventjes eraan gewaagd om de code, mbt het wegschrijven van de gegevens, zelf proberen
aan te passen voor het werkblad 'Boeken'. Dit is perfect gelukt (alvast voor het gewoon 'opslaan' toch).
Ik ben er ook in geslaagd om via VBA de tekstkleur aan te passen voor de waarde bij een aangevinkt selectievakje, wat me nu echter niet lijkt te lukken
is het instellen van het lettertype. Noch in excel zelf, noch via VBA. Hiervoor is mijn kennis nog belange niet voldoende vrees ik ;D.

Dus als iemand me daar zou kunnen bij helpen.
Dus als het selectievakje aangevinkt is geeft die de waarde 'P' bij het wegschrijven naar de tabel in de tekstkleur (zee)groen.
Maar dit zou dan ook nog eens in het lettertype "Segoe UI Symbol" moeten zodat er uiteindelijk in de tabel een groen "vinkje" komt te staan.

Alvast enorm bedankt op voorhand,

Groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #104 Gepost op: 07 januari 2019, 13:17:45 »
Hallo BlackDevil,

Vba zal nooit méér met je werkblad doen dan wat je zelf wil, m.a.w. ook geen lettertypes wijzigen. In je code dient daar dus geenszins iets te worden gewijzigd.
Ik merk wel dat je gekozen lettertype ook bij mij gewoon in O of P resulteert. Maar met Wingdings2 krijg ik wel je verlangde symbolen. Ik denk dat je die dus enkel voor alle kolommen eenmalig kan instellen, en je er verder nooit nog zorgen om moet maken.

Groetjes,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

 


www.combell.com