Help!

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

Hulp bij posten

Recente topics

Auteur Topic: waarden met getalnotatie samenvoegen met behoud van notatie  (gelezen 6566 keer)

0 leden en 1 gast bekijken dit topic.

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: waarden met getalnotatie samenvoegen met behoud van notatie
« Reactie #15 Gepost op: 13 mei 2021, 17:13:33 »
Ha ha ha... jij bent de absolute master met het moeilijkste onderwerp óóit!

 :D :D en toch denk ik dat ik nóg beter kan  ;D

Omdat genealogie, naast mijn gezin, mijn grootste bezigheid is ben ik dus héél veel bezig met datums pré 1900 en dit voor talloze handelingen.
En omdat ik bij het willen automatiseren van veel van deze handelingen (omdat ze handmatig zo tijdrovend zijn) toch elke keer weer op de gekende hindernissen (beperkingen excel) stuit én omdat excel onterecht het jaar 1900 als een schrikkeljaar heeft vastgelegd ben ik mij nu al enkele dagen aan het afvragen of het niet mogelijk zou zijn om (louter voor die genealogische doeleinden) een soort aangepaste telling te ontwikkelen die start op 01-01-1583.
(deze specifieke datum omdat december 1582 amper 21 dagen telde wegens de omschakeling van de juliaanse naar de gregoriaanse kalender).
Van 01-01-1583 tem 31-12-1899 zijn exact 115782 dagen (schrikkeljaren in rekening gebracht) waardoor vandaag (13-05-2021) dan het seriële nummer 160110 zou krijgen ipv 44329.
Het moet toch mogelijk zijn om hiervoor een aparte functie te schrijven met een eigen getal-notatie?
Maar ik vrees dat dit, gezien mijn beperkte kennis, veel te hoog gegrepen zal zijn. Dus dan zal ik mij eerst moeten bijscholen tot 'master vba' ipv 'master moeilijke onderwerpen'  ;D ;D ;D ;D ;D.
Maar goed, we zullen het maar simpel houden en alle mogelijke handelingen gewoonweg handmatig blijven uitvoeren, hoe tijdrovend ze ook moge zijn.  ;)

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 cow18

  • Ervaren lid
  • ***
  • Berichten: 340
  • Geslacht: Man
  • Oplossing.be
Re: waarden met getalnotatie samenvoegen met behoud van notatie
« Reactie #16 Gepost op: 14 mei 2021, 07:51:24 »
pré-1900 datums zijn een probleem op niveau van het werkblad, mits goeie toepassing niet voor VBA.
Zo kan je perfect werken met datums tot 01-01-0100, evenwel zonder de gekende correcties aan de juliaanse of gregoriaanse kalender. Eigenlijk kinderachtig eenvoudig dus.

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: waarden met getalnotatie samenvoegen met behoud van notatie
« Reactie #17 Gepost op: 14 mei 2021, 11:08:39 »
@Montagnard,

Eerst en vooral wil ik een zeer klein detail rechtzetten : TS is een zij  ;D

Ik begrijp wat je bedoeld met dat een bestand, codeblok of programma dusdanig geëvolueerd kan zijn dat enkel de TS nog weet waarvoor alles dient en hoe alles werkt.

Maar met mijn vraagstelling in bericht #11 was het doel enkel maar om adhv één handmatig in te geven zoekwaarde bepaalde berekeningen/vergelijkingen te laten doen tussen specifieke datums (al dan niet pré 1900), die adhv die zoekwaarde opgehaald worden uit de gegevenstabel, om tenslotte op mijn tweede werkblad als eindresultaat een bepaalde periode (startdatum en einddatum) te laten weergeven. Het is trouwens ook een net gestart bestand dus op het moment van mijn vraag stond er enkel nog maar de VBA-code in om de nummers uit de eerste drie kolommen op een specifieke manier te laten samenvoegen.

Maar goed, aangezien mijn vraag uit het 1e bericht wél is opgelost geraakt (met dank aan Haije en veerj voor de formule-oplossing en dank aan RedHead voor de VBA-oplossing) en vraag #11 wel betrekking had op hetzelfde bestand maar los staat van de oorspronkelijke vraag mag dit topic afgesloten worden wat mij betreft.

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 Montagnard

  • Ambassadeur
  • *****
  • Berichten: 2.383
  • Geslacht: Man
  • To Windows or not to Windows , that's the question
Re: waarden met getalnotatie samenvoegen met behoud van notatie
« Reactie #18 Gepost op: 14 mei 2021, 11:47:08 »
mijn excuses , je hoeft zeker het topic niet af te sluiten !
ik heb mijn "post" verwijderd....

Mvg,
Montagnard.
HP ProBook 450 G3 15 inch
OS : Windows 11 Pro NLD 64bit
Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
16 GB  Vengeance 2666 MHz
KINGSTON SA400S37480G - 447,13 GB als bootdisk
WD Blue Solid state 2 TB - intern - M.2 2280 - SATA als datadisk
AV: Windows Defender
FW: Windows Firewal

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: waarden met getalnotatie samenvoegen met behoud van notatie
« Reactie #19 Gepost op: 14 mei 2021, 12:18:29 »
@Montagnard,

Dat was nu ook niet de bedoeling...
Ik bedoelde dit helemaal niet negatief.

Wou met mijn laatste bemerking enkel maar aantonen dat de originele vraag opgelost was en aangezien die bijkomende vraag (#11) blijkbaar door mij verkeerd werd geformuleerd en er op die wijze waarschijnlijk toch geen oplossing uit de bus zal vallen dat het topic mbt tot de originele vraag mag afgesloten worden/als opgelost mag gezet worden.

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 Montagnard

  • Ambassadeur
  • *****
  • Berichten: 2.383
  • Geslacht: Man
  • To Windows or not to Windows , that's the question
Re: waarden met getalnotatie samenvoegen met behoud van notatie
« Reactie #20 Gepost op: 14 mei 2021, 12:20:05 »
pré-1900 datums zijn een probleem op niveau van het werkblad, mits goeie toepassing niet voor VBA.
Zo kan je perfect werken met datums tot 01-01-0100, evenwel zonder de gekende correcties aan de juliaanse of gregoriaanse kalender. Eigenlijk kinderachtig eenvoudig dus.
tja wat voor U "kinderachtig eenvoudig" is , is voor de mindere goden onder ons misschien niet zo evident , waarom geen voorbeeldje bij mét uitleg ? dan kan TS en wijzelf er ook wat uit leren ?
trouwens het moet "kinderlijk eenvoudig" zijn , "kinderachtig" komt heel negatief over :

Kinderachtig betekent gewoonlijk dom of onvolwassen. Dit bijvoeglijk naamwoord verwijst meestal (maar niet altijd) naar ongunstige eigenschappen.

Kinderlijk betekent vertrouwen of onschuldig, en verwijst doorgaans naar de positievere of gunstiger eigenschappen van een kind.

Mvg,
Montagnard.
HP ProBook 450 G3 15 inch
OS : Windows 11 Pro NLD 64bit
Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
16 GB  Vengeance 2666 MHz
KINGSTON SA400S37480G - 447,13 GB als bootdisk
WD Blue Solid state 2 TB - intern - M.2 2280 - SATA als datadisk
AV: Windows Defender
FW: Windows Firewal

Offline Montagnard

  • Ambassadeur
  • *****
  • Berichten: 2.383
  • Geslacht: Man
  • To Windows or not to Windows , that's the question
Re: waarden met getalnotatie samenvoegen met behoud van notatie
« Reactie #21 Gepost op: 14 mei 2021, 12:25:29 »
@Montagnard,
Ik bedoelde dit helemaal niet negatief.
weet ik wel  ;) , nog een fijne dag en verder heel veel plezier met uw hobby !
Mvg,
Montagnard.
HP ProBook 450 G3 15 inch
OS : Windows 11 Pro NLD 64bit
Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
16 GB  Vengeance 2666 MHz
KINGSTON SA400S37480G - 447,13 GB als bootdisk
WD Blue Solid state 2 TB - intern - M.2 2280 - SATA als datadisk
AV: Windows Defender
FW: Windows Firewal

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.277
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: waarden met getalnotatie samenvoegen met behoud van notatie
« Reactie #22 Gepost op: 14 mei 2021, 12:39:27 »
De methode die Koe voor ogen heeft, is volgens mij de +2000 jaar methode. Dus tel bij elke datum éérst 2000 jaar op en bereken dán het verschil in jaren, maanden, dagen. Het verschil met 12 dagen kan dan wel gebeuren als een datum voor 1752 ligt. In dat jaar in september heeft er een correctie plaatsgevonden om weer gelijk te komen met de seizoenen en zijn er 12 dagen "zoek". Maar als dat geen probleem is, werkt bovenstaande methode goed (volgens Google).
______________________________

Groet, Leo

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: waarden met getalnotatie samenvoegen met behoud van notatie
« Reactie #23 Gepost op: 14 mei 2021, 12:58:43 »
@RedHead

Die methode (+2000) had ik ook eerst toegepast toen ik mijn 'doel' nog met formules had aangemaakt...
Maar omdat ik binnen vba nog nooit met de datum-functies had gewerkt had ik dan maar voor een niet zo mooie oplossing gekozen, namelijk de maanden en jaren eerst omzetten naar 'aantal maanden', de nodige berekeningen/vergelijkingen doen en dan het eindresultaat terug omzetten naar dag, mnd, jaar om vervolgens weg te schrijven.

Ondertussen, omdat mijn bedenking uit bericht #15 toch maar door mijn hoofd bleef spoken (heb de afgelopen week werkelijk zelfs gedroomd over die datumproblematiek en vba-code  :D), heb ik nu een vrij simpele conversietabel ontwikkeld met een eigen 'telling' waarin ik elke datum vanaf 01-01-1583 een gekoppeld nummer heb gegeven. Op deze manier kan ik mijn datums in mijn gegevenstabel gewoon in één kolom plaatsen als tekst en dan de waarden, die uit de gegevenstabel 'gevonden' worden met mijn code, laten opzoeken in de conversietabel en vervangen door het toegekende nummer waarmee ik dan de nodige berekeningen en vergelijkingen kan doen binnen vba en waarna ik het eindresultaat (nummer) opnieuw via de conversietabel laat vervangen door de bijhorende (tekst)datum die dan dient weggeschreven te worden in mijn tweede werkblad.
Misschien redelijk omslachtig maar op die manier moet ik niet in mijn code zelf conversies uitvoeren en worden mijn datums ineens in het juiste format weergegeven.
Heb mijn conversietabel nog maar net af dus nu ga ik me bezighouden met het reeds aanwezige code-blok aan te passen zodat de conversietabel gebruikt kan worden.
Zodra ik het klaargespeeld heb gekregen zal ik het resultaat hier aanhangen.

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.277
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: waarden met getalnotatie samenvoegen met behoud van notatie
« Reactie #24 Gepost op: 14 mei 2021, 13:15:54 »
Alles wat je doet in je Worksheet, kan je ook toepassen in VBA natuurlijk. Dus ook daar kan je 2000 jaar bij je aanwezige datum tellen. Hier hoef je dus niet een eigen teller voor bij te gaan houden.
______________________________

Groet, Leo

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: waarden met getalnotatie samenvoegen met behoud van notatie
« Reactie #25 Gepost op: 15 mei 2021, 06:44:22 »
Heb me gisteren wat verdiept in de datum-functies van VBA zelf en ben wat aan het experimenteren geslagen.
Hierbij merkte ik op dat ik inderdaad zelfs niets hoef te converteren (dus zelfs die +2000 lijkt overbodig te zijn).
Met die nieuwe verworven kennis ben ik dan opnieuw aan de slag gegaan met het aanpassen van mijn code maar elke keer dat ik denk dat het eindelijk de goede kant uitgaat stoot ik weer op een nieuwe hindernis...

Ik moet straks om 8u eventjes voor 2u de baan op maar nadat ik terug thuis ben ga ik er mij nog eens volledig ingooien en compleet van nul herbeginnen door gebruik te maken van alles wat ik de afgelopen week heb geleerd/ondervonden.

Zodra ik opnieuw op een hindernis stuit hoop ik dat ik dan langs deze weg de nodige hulp zal vinden om de hindernis weg te werken.
Ook ingeval het mij eindelijk lukt om de volledige procedure te schrijven zonder hindernissen zal ik mijn oplossing hier kenbaar maken.

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: waarden met getalnotatie samenvoegen met behoud van notatie
« Reactie #26 Gepost op: 15 mei 2021, 08:02:47 »
Hallokes,

Ik zit eventjes in de knoei met mijn If-statements (VBA).

Om de werkelijke einddatum te bepalen van de globale periode gelden volgende statements :

standstopdat = °dat vrouw + 48 jaar (met huidige data = 21-05-1903)
modat = †dat vrouw (met huidige data = 11-04-1913)
vodat = †dat man + 9 maanden (met huidige data = 04-11-1926)

als modat < vodat én modat < standstopdat dan einddat = modat
als vodat < modat én vodat < standstopdat dan einddat = vodat
als modat > standstopdat én vodat > standstopdat dan einddat = standstopdat

Hoe kan ik dit zo kort mogelijk in een If-statement coderen zodat deze correct werkt?
Want als ik het gewoon op deze wijze doe dan krijg ik de vodat (04-11-1926) als resultaat terwijl het eigenlijk de standstopdat (21-05-1903) moet zijn. Wat doe ik fout?

Alvast dank 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 BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: waarden met getalnotatie samenvoegen met behoud van notatie
« Reactie #27 Gepost op: 15 mei 2021, 15:03:49 »
Echt niemand?
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 Montagnard

  • Ambassadeur
  • *****
  • Berichten: 2.383
  • Geslacht: Man
  • To Windows or not to Windows , that's the question
Re: waarden met getalnotatie samenvoegen met behoud van notatie
« Reactie #28 Gepost op: 15 mei 2021, 15:30:04 »
ik probeer wel maar hoe moet ik dit in mijn Excel gaan testen ? kan je geen bestand(je) bijvoegen waar die code van toepassing zou moeten worden ?
Mvg,
Montagnard.
HP ProBook 450 G3 15 inch
OS : Windows 11 Pro NLD 64bit
Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
16 GB  Vengeance 2666 MHz
KINGSTON SA400S37480G - 447,13 GB als bootdisk
WD Blue Solid state 2 TB - intern - M.2 2280 - SATA als datadisk
AV: Windows Defender
FW: Windows Firewal

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: waarden met getalnotatie samenvoegen met behoud van notatie
« Reactie #29 Gepost op: 15 mei 2021, 16:24:19 »
@Montagnard,

Mijn excuses, dacht dat de structuur van de statements voldoende was om te kunnen zien waar deze verkeerd was opgebouwd...

In bijlage mijn recentste bestand.
Ik heb de verschillende voorwaarden getest en 2 van de drie werken maar de derde krijg ik dus niet goed.

Als beide overlijdensdatums nà de stndstpdat vallen dan geeft hij correct als einddatum de stndstpdat.
Als enkel de overlijdensdatum van de vader voor de stndstpdat valt dan geeft hij correct als einddatum de stndstpdat.
Maar als de overlijdensdatum van de moeder voor de stndstpdat én voor de overlijdensdatum van de vader valt geeft hij foutief als einddatum de overlijdensdatum van de vader.

De fout moet ergens in de structuur van de statements liggen maar ik vind het niet, heb al tal van structuren geprobeerd en het geeft altijd hetzelfde resultaat. Of anders ben ik gewoon super verward dat ik een voor de hand liggende fout niet zie.
Misschien ben ik ook al véél te lang met die hele code bezig.
Hopelijk brengt een frisse kijk op de zaak een oplossing.

Alvast bedankt voor de bereidwilligheid.

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

 


www.combell.com