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 243888 keer)

0 leden en 2 gasten bekijken dit topic.

Offline lommer

  • Excel-Expert
  • Volledig lid
  • *****
  • Berichten: 132
  • Geslacht: Man
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #15 Gepost op: 16 december 2018, 13:44:40 »
BlackDevil,

Misschien is dit iets voor jou.

Groeten,
lommer
Standaard emailprogramma: Outlook Express
Standaard Operating System: Windows XP SP2
Standaard Browser:Internet Explorer 6

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #16 Gepost op: 16 december 2018, 13:45:37 »
Hallokes,

Even een vraagje aan de admin(s).
Mag ik hier mijn volgende (probleem)vraag stellen mbt tot hetzelfde project als de huidige vraag of moet ik hiervoor een nieuw topic opstarten?
(De volgende vraag betreft het aanmaken van een UserForm voor hetzelfde bestand.)

Vriendelijke 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 #17 Gepost op: 16 december 2018, 14:08:25 »
BlackDevil,

Misschien is dit iets voor jou.

Groeten,
lommer

Dag lommer,

Alvast bedankt voor je deelname :-).
Ik heb je bestandje even doorgenomen en dat ziet er inderdaad heel goed uit.
Hiermee heb ik zelfs geen hulpkolommen meer nodig denk ik.
Het enige probleem hier is namelijk wat SoftAid reeds aanhaalde, de schrikkeljaren...
Ook die 10 dagen die in 1582 plots verdwenen zijn zouden in rekening dienen gebracht te worden.
Als er een mogelijkheid zou zijn om dit ook te verwerken in de code dan denk ik wel dat dit de oplossing zou kunnen zijn.
Alleen snap ik (voorlopig althans) dus echt niks van de code :-)...

Nogmaals mijn oprechte dank.


Vriendelijke 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 #18 Gepost op: 16 december 2018, 17:38:56 »
@ SoftAid,
Toen ik eerst dacht het met formules op te lossen (ik blijf bij mijn standpunt dat dit perfect realiseerbaar was) had ik voor 2000 jaar bijtellen gekozen, wat twee vliegen in één klap betekende : enerzijds zoals je zegt de noodzaak een veelvoud van 400 te nemen, en anderzijds de zekerheid dat we 20 eeuwen konden terug gaan.
Om tot de gewenste output te komen had ik naderhand aan het idee van een UDF de voorkeur gegeven.

@BlackDevil,
Sorry om te horen dat je momenteel niet bijster mobiel bent. Zelf heb ik er sedert vanmorgen inmiddels een (wandel)marathon opzitten en tot mijn vreugde vastgesteld dat lommer het ondertussen al heeft gefikst. Ik had zelf tussendoor nog de bedenking gemaakt dat DATUMVERSCHIL en DATEDIFF (nochtans het zogenaamde vba-equivalent) niet precies hetzelfde doen, waardoor we het in de UDF gewoon zelf moeten uittellen, zodat ook het bijtellen van 2000 jaar niet meer nodig is.
Kortom, ik had het zelf niet beter kunnen doen dan lommer.

Voor de periodes waar onze voorouders mee gefoefeld hebben zullen wel nog wat correcties moeten ingebouwd worden.
Daar zou ik maar aan beginnen als we eerst volstrekte zekerheid hebben over hoe er destijds allemaal geschoven is.

En ook : wat ik je eerder al had gezegd en wat ook in het (met of zonder Excel) tellen betreft, je zal altijd rariteiten blijven hebben als je én maanden én dagen in je resultaat wil zien.
Voorbeeldje ?
Van 28/2/2018 tot 31/3/2018, is dat 1 maand ? of is dat 1 maand en 3 dagen ?
En wat dan met 28/2/2018 tot 1/4/2018 ? Zowel lommer als ikzelf moeten daar wel op 1 maand en 4 dagen uitkomen...

Ik wou dat het anders was, maar daar ontkom je niet aan. Een meer consistente methode is om enkel te rekenen in jaren en dagen. Maar dat is een knoop die we niet voor jou kunnen doorhakken...

Ik vrees dus dat je nog wat extra denkwerk op te knappen hebt vooraleer we je een definitieve oplossing kunnen bieden.

Groetjes, en veel beterschap,
pitufo

P.S. : ik heb ook de UDF AgeFunc eens bekeken, en die is alleen maar lang omdat er allerlei controles op juiste invoer gebeuren, en een ingewikkelde methode gebruikt om dag, maand en jaar af te zonderen. Voor de rest berekent die enkel het verschil in jaren, en die fase ligt ondertussen al een tijdje achter ons...

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

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.116
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #19 Gepost op: 17 december 2018, 12:14:47 »
Even een vraagje aan de admin(s).
Mag ik hier mijn volgende (probleem)vraag stellen mbt tot hetzelfde project als de huidige vraag of moet ik hiervoor een nieuw topic opstarten?
(De volgende vraag betreft het aanmaken van een UserForm voor hetzelfde bestand.)
Hallo BlackDevil,

Je mag een nieuw topic beginnen als je dat wenst. Maar ik vermoed dat de VBA code voor deze Userform toch betrekking gaat hebben op je huidig topic, en er met datums zal gerekend worden.

Het kan dus best zijn dat het handiger is om toch alles in één topic te laten.
Ik kan later de berichten die echt specifiek betrekking hebben op het maken van een Userform afsplitsen naar een apart topic.

En ja, ook van mij een bloemetje, vanwege je blessure...  :-*

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.116
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #20 Gepost op: 17 december 2018, 14:28:43 »
...... wat ook in het tellen betreft, je zal altijd rariteiten blijven hebben als je én maanden én dagen in je resultaat wil zien.  Voorbeeldje ?
Van 28/2/2018 tot 31/3/2018, is dat 1 maand ? of is dat 1 maand en 3 dagen ?
En wat dan met 28/2/2018 tot 1/4/2018 ? Zowel lommer als ikzelf moeten daar wel op 1 maand en 4 dagen uitkomen...
Dat is nou net wat er mis gaat bij het gewoon tellen zoals we dat zien bij ... iedereen  ::)
Men trekt (ook in die UFD's) jaartallen af van jaartallen, maanden van maanden en dagen van dagen.

Laten we er van uitgaan dat de tijd bij elke datum "00h 00m 00s" is, anders is het einde zoek....  0:-)

Als je een ouderdom in jaren, maanden en dagen wilt weergeven, dan moet je ook rekening houden met het aantal dagen in de tussenliggende maanden.
In jou voorbeeld is het antwoord (volgens mij 0:-)) 1 maand en 1 dag
(28/2/18 is 1 dag geleefd in februari, 31 dagen (1 maand) in maart, en ("00h 00m 00s") 1/4/2018 is een niet gebruikte, niet geleefde dag).

Excel telt NIET op dezelfde manier met =DATUMWAARDE().
       A1                   B1                      C1 =(DATUMWAARDE(B1)-(DATUMWAARDE(A1)))
28/2/2018 31/3/2018             31
   


Een serieuze opgave om een "correct" resultaat te krijgen zou zijn om de dagen voor 1/1/1900 om te kunnen zetten in een Excel-datumnotatie.
Zelfs met de datumnotatie na 1900 zou men bij het tellen met datumwaardes 1 dag bij het resultaat moeten tellen.

Van de 28ste februari tot de 28ste maart tellen als 1 maand, en er dan 3 of 4 dagen aan toevoegen geeft een vertekend en onjuist resultaat.

Een persoon die op 28 februari 2018 geboren wordt en op 28 maart 2018 sterft heeft 0 jaren, 0 maanden, 29 dagen geleefd
(op voorwaarde dat februari geen schrikkelmaand is, anders heeft hij 0 jaren, 0 maand, 30 dagen geleefd.)
Maar volgens Excel met datumwaardes van beide (tekst-) datums van elkaar af te trekken krijg je een foute uitkomst:
van 28/2/2018 tot 28/03/2018 28 dagen
van 28/2/2016 tot 28/03/2016 29 dagen

Een meer consistente methode is om enkel te rekenen in jaren en dagen.
Dat zou al heel wat (maar bijlange niet alle) problemen oplossen.
Maar ik vrees dat dit geen weergave is die de goedkeuring van BlackDevil zal wegdragen.
Ik heb ook de AgeFunc eens bekeken, en die is alleen maar lang omdat er allerlei controles op juiste invoer gebeuren, en een ingewikkelde methode gebruikt om dag, maand en jaar af te zonderen. Voor de rest berekent die enkel het verschil in jaren...

Ik heb die functie ook bekeken, en inderdaad, die voegt niet veel toe aan wat we al weten.
Als je datums omzet naar tekst, (wat deze UDF doet) dan kan je het inderdaad ook in je werkblad uittellen. Datum naar Tekst, Splitsen en aftrekken.

Napoleon had dit nog niet zo slecht bezien. In zijn kalender was elk van de 12 maanden 30 dagen lang, plus 5 bijkomende dagen.
Om de verschillen bij schrikkeljaren op te vangen waren dat elk 4de jaar 6 (ipv 5) bijkomende dagen. Veel gemakkelijker, maar toen gebruikte men nog geen Excel  ;D ;D ;D

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #21 Gepost op: 17 december 2018, 15:14:16 »
Hallokes allen,


Vooreerst hartelijk dank aan pitufo en SoftAid voor de beterschapswensen en het bloemetje ;-).

Ik heb, zo goed ik kon, eens grondig nagedacht van wat er nodig is en ben dan ook eens meer in detail de schrikkeljaren en die ontbrekende 10 dagen, bij de overgang van de Juliaanse naar de Gregoriaanse kalender, gaan bekijken.

Ik weet niet of dit quasi mogelijk is maar ik zou dus willen opteren om een klein programmatje te schrijven mbt dit specifieke project.

Voor het berekenen van de datums zou ik de oplossing van lommers willen gebruiken mits het toevoegen van een kleine logische test in de formule van de doelcel ivm leeftijd “op vandaag” en “bij overlijden”. (dit heb ik eigenlijk reeds gedaan :-) ).

Echter voor het bepalen van het aantal dagen per maand en meerbepaald in het teken van de schrikkeljaren dacht ik eventueel het volgende te doen :

1)   Vooreerst in de code te laten vaststellen dat de maanden ‘januari, maart, mei, juli, augustus, oktober en december’ 31 dagen tellen en dat de maanden ‘april, juni, september en november’ 30 dagen tellen.

2)   Vervolgens dat de maand  ‘februari’ 28 dagen telt behalve in :

-   De jaren welke een schrikkeljaar zijn (hiervoor zal er dan apart in de code deze jaren dienen vastgesteld te worden dmv opsomming (deze opsomming heb ik reeds gemaakt))
-   En het jaar 1583 waarin februari maar 18 dagen telde (overgang van Juliaanse naar Gregoriaanse kalender) (ook hier zal dan vooraf in de code dienen vastgesteld te worden dat enkel de dagen 1 tem 10 februari 1583 én 21 tem 28 februari 1583 bestonden). Met andere woorden, het verschil tussen bvb 5 februari 1583 en 25 februari 1583 moet een resultaat geven van maar 10 dagen ipv 20 dagen.

Verder zal er dan ook, zoals reeds aangegeven, een UserForm dienen gemaakt te worden voor de invoer van de gegevens makkelijker en overzichtelijker te kunnen uitvoeren.

Aangezien ik dus een leek ben op gebied van vba en dus niks begrijp van de commando’s of de structuur ervan heb ik geen idee hoe ik dit moet aanpakken. Maar als iemand mij misschien op weg kan helpen dan kan ik het misschien wel klaargespeeld krijgen, al vermoed ik toch wel dat ik hier regelmatig nog vragen zal moeten stellen :-).

Is wat ik in gedachten heb realiseerbaar via VBA?


Alvast nogmaals mijn oprechte dank.

Vriendelijke groetjes,
BlackDevil


Update :
Voor het vastleggen van de 'Schrikkeljaren' is volgende formulering mogelijk -> Schrikkeljaren = (In de range jaartallen 1100 tem 2020) = alle veelvouden van '4' met uitzondering van de jaartallen '1700', '1800' & '1900' .

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 #22 Gepost op: 17 december 2018, 19:02:51 »
Hallo SoftAid én BlackDevil,

Ik vrees dat we een beetje naast elkaar bezig zijn, en bovendien al wakker liggen van kwesties die we beter on hold zouden zetten.
Akkoord als we een gezamenlijke werkwijze bepalen ?
Mijn (bescheiden) suggestie : eerst afspreken (het is al langer gebleken dat er geen eenduidige rekenwijze bestaat en we dus een compromis zullen moeten sluiten) HOE we willen rekenen, daarna kunnen we aan het programmeren slaan (waarbinnen we meteen voor het verlangde uitvoerformaat zorgen), en last but not least een invoerformulier toevoegen.

Het eerste punt blijft het moeilijkste.
Je hebt gelijk over je opmerking i.v.m. rekenen met DATUMWAARDE, SoftAid. Maar dat is enkel een kwestie van steeds 1 bij te tellen als begin- en einddatum beide moeten meegeteld worden.
DATUMWAARDE rekent met datums in tekstformaat. Werk je daarentegen met datums in datumformaat en je doet einddatum - begindatum, hetzij op een Excel-werkblad, hetzij in vba, dan zal je zoals in jouw voorbeeld (28/2 tot 31/3) ook altijd 31 als resultaat krijgen.
Dus als zowel 28/2 als 31/3 moeten meegeteld worden moeten we gewoon 1 toevoegen.
Bijgevolg kan het antwoord zowel 1 maand als 1 maand + 1 dag zijn, maar niet (vind ik toch) 1 maand + 3 dagen.

BlackDevil, je hoort me al komen, da's er eentje waarvoor jij de knoop moet doorhakken.

DATUMWAARDE berekent ook enkel het verschil in dagen, hoe lang de periode ook is, dus uit die hoek kan de oplossing voor het maandprobleem helaas niet komen.

En dan moet ik me opnieuw tot BlackDevil richten : ik lees met verbazing dat je de UDF van lommer zou willen gebruiken. Zoals ik al eerder had gezegd zal die toch voor sommige periodes vreemde resultaten opleveren. Ik heb bij wijze van voorbeeld nog wat datums ingevuld. Aanschouw het resultaat :

28/02/2018   31/03/2018   0 jaar 1 maanden 3 dagen.
28/02/2018   1/04/2018   0 jaar 1 maanden 4 dagen.
31/01/2018   2/03/2018   0 jaar 0 maanden 30 dagen.
31/01/2018   3/03/2018   0 jaar 1 maanden 0 dagen.

Is dat ECHT wat je wil ?
Het is geen zwart/wit-kwestie (lees : geen kwestie van wie wel of geen gelijk heeft). Geloof me vrij : als we tot een consensus (ik lijk de regering wel) kunnen komen over hoe te rekenen, raakt al de rest ook opgelost !

BlackDevil, ik had tijdens mijn middagpauze (ja ja, werkdag) al een 'schrikkeljaarformule' gemaakt maar ze wegens nakend overleg nog niet kunnen posten.
Vermits jij al één en ander hebt opgelijst heb je misschien ook zin om ze te testen (?)
=ALS(A1>1582;ALS(OF(EN(REST(A1;4)=0;REST(A1;100)<>0);REST(A1;400)=0);"ja";"neen");ALS(REST(A1;4)=0;"ja";"neen"))
Mits goedkeuring  ;) kunnen we dan heel eenvoudig voor elke mogelijke maand het aantal dagen bepalen (we moeten érgens beginnen)

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 #23 Gepost op: 17 december 2018, 22:36:19 »
Hey pitufo,

Om op je eerste vraag te beantwoorden :

Wat ik bedoelde met de oplossing van lommer te gebruiken was in eerste instantie mbt het kunnen berekenen van datums pré 1900 zonder deze datums zelf in drie aparte kolommen te moeten zetten, dus door gebruik te maken van zijn VBA-code zodat deze datums gewoon in één kolom geplaatst kunnen worden.

Voor het berekenen van de leeftijden zelf :

De reden waarom ik de leeftijden nodig heb in zowel jaren, maanden als dagen is omdat de leeftijden op deze wijze beschreven worden in de diverse akten van de burgerlijke stand. En het soms echt wel op die leeftijdsbepaling aankomt om te weten welke persoon met welke akte gelinkt is.

In dergelijke akten word dan ook echt wel gerekend volgens de berekening van excel en zal er inderdaad een (incorrecte) weergave zijn van 0 jaar, 1 maand en 3 dagen.
Maar het kind is in werkelijkheid 31 dagen oud wat in dit geval dan ook een correcte weergave is want 28 + 3 is wel degelijk 31.

Dus in die zin dient het dan misschien niet helemaal correct tot op de dag weergegeven te worden in maanden/dagen.
Deze conclusie heb ik dus nu net gemaakt nadat ik hier die hele uitleg aan het schrijven was ;-).

Dus voor de basisberekening kunnen we zeker de oplossing van lommers gebruiken gezien daarmee ook het probleem met datums pré 1900 opgelost is.

Om op je formule te reageren mbt de schrikkeljaren heb ik deze getest en dat ziet er perfect uit dus dat kunnen we daarvoor zeker gebruiken.

Dient er nog enkel met die 10 onbestaande dagen in februari 1583 rekening gehouden te worden.

Mijn excuses voor het hele gedoe hieromtrent en vooral mijn dank voor het geduld en de telkens nieuwe bereidheid te helpen.


vriendelijke 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 RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.275
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #24 Gepost op: 17 december 2018, 22:56:18 »
Blackdevil, verzoekje van mijn kant voor de leesbaarheid van je posts... Aub alleen quoten wat noodzakelijk is. Bij een directe reactie op een post waar géén andere posts tussendoor zitten, is quoten zelfs overbodig. Tnx. ;)
______________________________

Groet, Leo

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #25 Gepost op: 17 december 2018, 23:20:35 »
@RedHead,

Ok, geen probleem hoor :-), mijn excuses.
Had er niet helemaal bij stil gestaan (zal de pijnmedicatie in combi met het slaaptekort zijn vrees ik ;-) )

vriendelijke 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 #26 Gepost op: 18 december 2018, 14:21:40 »
Goedenamiddag allen,

Ik heb het bestandje van lommers eventjes aangepast (welk ik even aanhang) qua weergave volgens wat ik nodig heb.
Dus enkel een lichte aanpassing aan de formule.
De VBA-code zelf heb ik ongewijzigd gelaten met uitzondering van het laatste lijntje inzake weergave.

Mogelijks kan het nog simpeler maar ik heb het gedaan volgens het beetje kennis dat ik heb inzake formules :-).

Nu ga ik mij eventjes verdiepen in het uitzoeken van een formulering inzake het specifiëren van het aantal dagen per maand en dan in het bijzonder die bewuste februari-maand in 1583.


Vriendelijke 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 #27 Gepost op: 18 december 2018, 14:32:10 »
Hallo BlackDevil,

In dergelijke akten word dan ook echt wel gerekend volgens de berekening van excel en zal er inderdaad een (incorrecte) weergave zijn van 0 jaar, 1 maand en 3 dagen.
Maar het kind is in werkelijkheid 31 dagen oud wat in dit geval dan ook een correcte weergave is want 28 + 3 is wel degelijk 31.

Van 28/2 tot 31/3 is uiteraard 31 dagen, maar dat is niet relevant in het rekenen met maanden + dagen, want in je Excel staat niet 31 dagen, maar wel 1 maand en 3 dagen.
30/4 tot 31/5 is bv. ook 31 dagen, en dan zegt je Excel 1 maand en 1 dag.

Of bedoel je nu werkelijk dat voor het eerste voorbeeld in die akten letterlijk te lezen staat dat het kind is … op de leeftijd van 1 maand en 3 dagen ? En staat er dan ook 0 maanden en 30 dagen bij 31/1 tot 2/3 ? En 1 maand en 0 dagen bij 31/1 tot 3/3 ?

Begrijp me niet verkeerd : ik ben bereid je te geloven, maar in mijn visie blijft dat extreem raar.

Ik reken professioneel ook wel eens met datums, en daar is de opvatting : een maand is een maand, eender hoe lang ze duurt. Een bediende heeft bijvoorbeeld altijd hetzelfde maandloon, ook in februari !
Daar is, begin- en einddatum inbegrepen, 28/2 tot 31/3 gelijk aan 1 maand + 1 dag, en 31/1 tot 3/3 is 1 maand en 4 dagen. Voelt dat niet gezonder ?
Toegegeven, beide periodes zijn even lang (32 dagen), maar dan rekenen we enkel met dagen… en is de redeneringscirkel rond

Andere kwestie : neem je geen al te zware medicatie ?
In post 15 schrijf je “Men ging van 4 oktober 1582 plots naar 15 oktober 1582”
En in post 22 “enkel de dagen 1 tem 10 februari 1583 én 21 tem 28 februari 1583 bestonden”
Mogelijk heb je informatie uit verschillende bronnen, want blijkbaar is de Gregoriaanse kalender niet overal op hetzelfde moment ingevoerd.
Dus een extra "to do" vrees ik.

Oei, net nu gezien dat je zelf ook een nieuwe post hebt gepost   ;D
Wordt dus vervolgd...
"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 #28 Gepost op: 18 december 2018, 15:17:07 »
Hey pitufo,

Het probleem met die akten is dat héél veel afhing van de ambtenaar en de regio bij de opstelling ervan.
Ook zijn er periodes waarbij de akten in het frans waren opgesteld.

Ik ga mijn best doen om zo algemeen mogelijk te verduidelijken hoe er gerekend word in deze akten.

25/2 tot 28/3 word vermeld als leeftijd van 1 maand en 3 dagen (dus 25/2 -> 25/3 = 1 maand ; 25/3 -> 28/3 = 3 dagen)
25/2 tot 20/4 word vermeld als leeftijd van 1 maand en 26 dagen (dus 25/2 -> 25/3 = 1 maand ; (25/3 -> 31/3 = 6 dagen + 1/4 -> 20/4 = 20 dagen) = 26 dagen)

15/9 tot 18/10 word vermeld als 1 maand en 3 dagen
15/9 tot 10/11 word vermeld als 1 maand en 26 dagen


Wat die andere kwestie betreft zit het dus zo :
Officieel ging de Gregoriaanse kalender van start op 15-10-1582 maar niet elk katholiek land volgde deze nieuwe kalender meteen.
In België schakelde men pas over naar de Gregoriaanse kalender op 21-02-1583.

Dus mijn beide vermeldingen zijn correct, alleen was ik vergeten te vermelden dat deze overschakeling niet in elk land op hetzelfde moment gebeurde. Er waren zelfs landen waar de overschakeling pas gebeurde begin 18e eeuw.

Mijn excuses voor de verwarring :-).

vriendelijke 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 SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.116
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Excel-beperking mbt datum pré 1900 wegwerken met VBA
« Reactie #29 Gepost op: 18 december 2018, 17:45:30 »
Hallo BlackDevil,

Je lijstje met berekeningswijze, haal je dat uit oude kronieken?

Zoals:
25/2 tot 28/3 wordt vermeld als leeftijd van 1 maand en 3 dagen  het verschil is 31
Wat dan met
25/3 tot 28/4                                                                            het verschil in dagen is 34

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

 


www.combell.com