***update***
De laatste 2 dagen ben ik pogingen blijven ondernemen om het beste “startpunt” te vinden (dus nu al 4 dagen op rij zonder succes).
Het lukt me echter niet om een beknopte efficiënte en vooral overzichtelijke structuur te creëren.
Een geneste ‘if’-structuur levert mij, welke volgorde ik ook probeer, al snel meer dan 100 lijntjes code op en dat is dan nog maar enkel voor het berekenen van de zoekperiodes mbt ontbrekende datums van een koppel (ouders).
Om het toch een beetje ‘beknopt’ te houden ben ik nu eventjes afgestapt van het ‘geneste’ aspect van de if-structuur waarbij ik maar 1/3de van het aantal lijntjes (tov geneste structuur) meer nodig heb MAAR het is allesbehalve ‘overzichtelijk’ te noemen waardoor ik door de bomen het bos niet meer zie (of omgekeerd).
Daarom wou ik nu vragen of er iemand een tip/idee heeft hoe ik van onderstaande code (= enkel de code mbt de man) een overzichtelijke efficiënte code kan maken ZONDER dat het een ellenlange structuur wordt?
'MAN
If gdatman <> "" Then Cells(21, 4) = "nvt": Cells(21, 6) = "nvt"
If hdat <> "" Then Cells(22, 4) = "nvt": Cells(22, 6) = "nvt"
If odatman <> "" Then Cells(23, 4) = "nvt": Cells(23, 6) = "nvt"
'ZP geboorte man berekenen
If gdatman = "" And hdat <> "" Then Cells(21, 4) = Format(DateAdd("yyyy", -76, hdat), "dd-mm-yyyy"): Cells(21, 6) = Format(DateAdd("yyyy", -18, hdat), "dd-mm-yyyy")
If gdatman = "" And hlftdman <> "" Then Cells(21, 4) = Format(DateAdd("yyyy", -(hlftdman + 1), hdat), "dd-mm-yyyy"): Cells(21, 6) = Format(DateAdd("yyyy", -hlftdman, hdat), "dd-mm-yyyy")
If gdatman = "" And hdat = "" And odatman <> "" Then Cells(21, 4) = Format(DateAdd("yyyy", -101, odatman), "dd-mm-yyyy"): Cells(21, 6) = Format(DateAdd("yyyy", -18, odatman), "dd-mm-yyyy")
If gdatman = "" And hdat = "" And olftdman <> "" Then Cells(21, 4) = Format(DateAdd("yyyy", -(olftdman + 1), odatman), "dd-mm-yyyy"): Cells(21, 6) = Format(DateAdd("yyyy", -olftdman, odatman), "dd-mm-yyyy")
'ZP huwelijk man berekenen
If hdat = "" And gdatman <> "" Then Cells(22, 4) = Format(DateAdd("yyyy", 18, gdatman), "dd-mm-yyyy"): Cells(22, 6) = Format(DateAdd("yyyy", 75, gdatman), "dd-mm-yyyy")
If hdat = "" And gdatman <> "" And odatman <> "" Then Cells(22, 4) = Format(DateAdd("yyyy", 18, gdatman), "dd-mm-yyyy"): Cells(22, 6) = Format(DateAdd("yyyy", 0, odatman), "dd-mm-yyyy")
If hdat = "" And gdatman = "" And odatman <> "" Then Cells(22, 4) = Format(DateAdd("yyyy", -83, odatman), "dd-mm-yyyy"): Cells(22, 6) = Format(DateAdd("yyyy", 0, odatman), "dd-mm-yyyy")
If hdat = "" And gdatman = "" And olftdman <> "" Then Cells(22, 4) = Format(DateAdd("yyyy", -(olftdman + 18), odatman), "dd-mm-yyyy"): Cells(22, 6) = Format(DateAdd("yyyy", 0, odatman), "dd-mm-yyyy")
'ZP overlijden man berekenen
If odatman = "" And gdatman <> "" Then Cells(23, 4) = Format(DateAdd("yyyy", 18, gdatman), "dd-mm-yyyy"): Cells(23, 6) = Format(DateAdd("yyyy", 100, gdatman), "dd-mm-yyyy")
If odatman = "" And hdat <> "" Then Cells(23, 4) = Format(DateAdd("yyyy", 0, hdat), "dd-mm-yyyy"): Cells(23, 6) = Format(DateAdd("yyyy", 82, hdat), "dd-mm-yyyy")
If odatman = "" And hlftdman <> "" Then Cells(23, 4) = Format(DateAdd("yyyy", 0, hdat), "dd-mm-yyyy"): Cells(23, 6) = Format(DateAdd("yyyy", (100 - hlftdman), hdat), "dd-mm-yyyy")
'leeftijd man bij huwelijk en overlijden berekenen
If gdatman <> "" And hdat <> "" Then Cells(9, 4) = Application.WorksheetFunction.RoundDown(DateDiff("m", gdatman, hdat) / 12, 0) & " jaar, " & DateDiff("m", gdatman, hdat) - _
(Application.WorksheetFunction.RoundDown(DateDiff("m", gdatman, hdat) / 12, 0) * 12) & " maand "
If gdatman <> "" And odatman <> "" Then Cells(11, 4) = Application.WorksheetFunction.RoundDown(DateDiff("m", gdatman, odatman) / 12, 0) & " jaar, " & DateDiff("m", gdatman, odatman) - _
(Application.WorksheetFunction.RoundDown(DateDiff("m", gdatman, odatman) / 12, 0) * 12) & " maand "
Alvast dank voor het meedenken.
Groetjes,
Bieke