10. december 2008 - 22:12Der er
18 kommentarer og 1 løsning
Sætte default date og "fremskrive dato"? VBA
Jeg er ved at lave en lille procedure.
Men mangler lidt hjælp.
hvordan sætter man den default dato? Jeg har en inputbox, hvor man kan indtaste en dato. Men jeg vil gerne have at, hvis man ikke tster nogen dato så tager dags dato som "default".
Derud over vil jeg gerne vide hvordan man kan fremskrive datoen? Fx hvis man indtaster en dato også vil vide hvad datoen er 12,5år senere?
Public Sub kobberbryllup() Dim vielsesdato As Date Dim ugedag As String Dim kobberbryllupdag As Date On Error Resume Next vielsesdato = InputBox("indtast vielsesdato", "vielsesdato", Date) If vielsesdato = #12:00:00 AM# Then vielsesdato = Date
ret kobberbryllupdag = vielsesdato + DateSerial(12, 6, 0) til kobberbryllupdag = vielsesdato + DateSerial(12, 7, 0) spørg ikke hvorfor, men så passer det
Public Sub kobberbryllup() Dim vielsesdato As Date Dim kobberbryllupdag As Date On Error Resume Next vielsesdato = InputBox("indtast vielsesdato", "vielsesdato", Date) If vielsesdato = #12:00:00 AM# Then vielsesdato = Date
Public Sub kobberbryllup() Dim vielsesdato As Date Dim ugedag As String Dim kobberbryllupsdag As Date On Error Resume Next vielsesdato = InputBox("indtast vielsesdato", "vielsesdato", Date)
Jeg kan godt se at der lægges 6 måneder til vielsesdato og formatet er "m". Men i nr 2 lægges der 12 måneder til også "kobberbryllupsdag" hvorfor det? Burde det ikke være vielsesdagen?
Først tages vielsesdato + 6 måneder og kaldes nu kobberbryllupsdag Så tages kobberbryllupsdag og tillægges 12 år ("yyyy" = år, "m" = måneder) På den måde bliver kobberbryllupsdag = vielsesdag + 12,5 år.
Så desværre - der må kæmpes for det for at opnå kobberbryllup - 1½ år er desværre ikke nok!
Her lægges 6 måneder til vielsesdatoen og det gemmes så i kobberbryllupsdag kobberbryllupsdag = DateAdd("m", 6, vielsesdato), læg mærke til "m", det betyder måneder
Her lægges 12 år til kobberbryllupsdag og det gemmes så igen i kobberbryllupsdag kobberbryllupsdag = DateAdd("yyyy", 12, kobberbryllupsdag), læg mærke til "yyyy", det betyder år
On Error Resume Next, bruges, når man forventer en fejl i programmet, det får du når du trykker annuller til inputboksen, så går koden bare videre til næste linje
hvis du trykke cancel eller luk på X, det er det samme, koden vil så gå i fejl, hvis du fjerner Error Resume Next,
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.