Avatar billede KFjorbak Nybegynder
27. september 2011 - 21:25 Der er 7 kommentarer og
1 løsning

Beregning af datoer i VBA

Hej,

Hvis man har disse tre input i en textbox fra en brugerformular:
txtFødselsdato
txtDatoStart
txtAlderStop

kan man så lave en løkke, der starter i DatoStart, lægger en måned til hver gang, og som stopper den dato AlderStop er nået?

Har nu siddet og rodet med det i hundrede år, og kunne virkelig godt bruge lidt hjælp :)

Venligst KFjorbak
Avatar billede Ialocin Novice
27. september 2011 - 22:18 #1
Hej KFjordbak

Sikkert ... jeg forstår bare ikke helt, hvad det er du vil ?

Hvordan skal løkken starte ?
Hvornår er "hver gang" der skal lægges en måned til ?
Hvor skal der lægges en måned til ?
Tastes AlderStop ind manuelt ?

Med venlig hilsen, Nicolai
Avatar billede KFjorbak Nybegynder
27. september 2011 - 23:59 #2
Hej igen,

Det kan være, jeg skal prøve at være lidt mere konkret så :)

Jeg har lavet en bruger formular, hvor man bl.a. indtaster sin fødselsdato(dd-mm-åååå), DatoStart(den dato man starter sin pensionsopsparing) og AlderStop(den dag man ønsker at gå på pension).

Jeg vil så gerne lave en løkke, der kører fra DatoStart til den dato man går på pension (den dato ville jeg finde ved at lægge AlderStop til Fødselsdato, men ved ikke hvordan?)

Hver gang løkken kører lægges en procentdel af personens løn til og nogle udgifter trækkes fra og pensionsopsparingen opdateres.. Dette skal ske hver måned, så i slutningen af løkken skal der lægges en måned til, før løkken kører igen, sådan at løkken kører hver måned fra man starter opsparing til man går på pension, hvis du forstår?
Avatar billede Mads Larsen Nybegynder
28. september 2011 - 08:54 #3
Måske du kan bruge dette til noget?

Sub TestDato()
    Dim txtFødselsdato As Date
    Dim txtDatoStart As Date
    Dim txtAlderStop As Date
   
    txtDatoStart = "28.09.2011"
    txtAlderStop = "28.09.2012"

Måneder = DateDiff("m", txtDatoStart, txtAlderStop)

MsgBox (Måneder)

End Sub
Avatar billede KFjorbak Nybegynder
28. september 2011 - 12:20 #4
Hej IT_GuFFe

Tak for din hjælp. problemet er også, at txtAlderStop ikke er en dato, men en alder angivet i år. jeg ville derfor gerne kunne lægge alderen til fødselsdatoen for at finde den dato personen er AlderStop år. Så jeg ville gerne kunne lægge et antal år til en dato, og så få en dato ud af det?
Avatar billede KFjorbak Nybegynder
28. september 2011 - 12:29 #5
Det jeg gerne kort sagt vil kunne gøre er, at lægge år og mdr til en dato i VBA.
Det som i Excel gøres:
i tilfældet med at lægge år til
DATO(ÅR(A1)+Alderstop;MÅNED(A1);DAG(A1)), hvor A1 indeholder Fødselsdato.
og tilfældet med at lægge en måned til
DATO(ÅR(A2);MÅNED(A2)+1;DAG(A2)), hvor A2 indeholder DatoStart.

men jeg ved ikke hvordan det gøres i VBA, når man ikke refererer til en celle, men nogle txt input.
Avatar billede Mads Larsen Nybegynder
28. september 2011 - 12:37 #6
Det lyder lidt som om det er DateAdd funktionen du leder efter så :-)


http://www.techonthenet.com/excel/formulas/dateadd.php

DateAdd("yyyy", TxTAlderStop, TxTFødselsdag)
Avatar billede KFjorbak Nybegynder
02. oktober 2011 - 12:49 #7
Lige præcis IT-GuFFe :) det var den jeg skulle bruge!
Avatar billede Mads Larsen Nybegynder
03. oktober 2011 - 08:05 #8
Sådan skal det være :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester