Avatar billede koldtoft Nybegynder
09. december 2003 - 13:51 Der er 11 kommentarer og
1 løsning

Trække måneder for dato.

Jeg er ved at lave et prog. hvor jeg har to tekstbokse, hvor der skal indtastes en dato af brugeren.
Når formularen startes skal der i de to tekstbokse, være en forvalgt dato, en fra dato og en til dato.
Til dato er lig d.d. hvilket jeg har fået lavet.
Det er fra datoen der volder problemer. Den er bestemt ud fra d.d.
Fra datoen skal være d. 1. tre måneder tidligere.
Eks.
Hvis d.d. er den 8/12-03 skal fra dato være 1/09-03.
Hvis d.d. er den 3/02-03 skal fra dato være 1/11-02.
09. december 2003 - 13:58 #1
="01-"&MÅNED(IDAG()-3)&"-"&ÅR(IDAG())
09. december 2003 - 14:01 #2
Eller hvis det er dit datoformat i Excel du viser i spørgsmålet:
="01/"&MÅNED(IDAG()-3)&"-"&ÅR(IDAG())
09. december 2003 - 14:04 #3
Så er der også taget højde for, at der kan være et årsskifte mellem de 2 datoer:
="01-"&MÅNED(IDAG()-3)&"-"&ÅR(IDAG()-90)
Avatar billede janvogt Praktikant
09. december 2003 - 14:05 #4
erikjuul, den regner ikke hen over årsskiftet .....
I sidste eksempel skal der trækkes 1 fra årstallet.
Avatar billede janvogt Praktikant
09. december 2003 - 14:06 #5
Du kom først ...... :-)
Avatar billede koldtoft Nybegynder
09. december 2003 - 14:09 #6
1. Den giver problemer hvis d.d. ligger fra 01/01/XX til 31/03/XX
Hvis man ud i denne periode skal tre måneder tilbage, skal årstal også ændres.
2. Planen er det skal køres via VBA-kode, da resultatet i teksboksen skal bruges i det videre forløb. Den ønskede datoformat er 091203.
Avatar billede janvogt Praktikant
09. december 2003 - 14:09 #7
Denne oversætter til datoformat:
=DATE(YEAR(TODAY()-90);MONTH(TODAY()-90);1)
Avatar billede slo Nybegynder
09. december 2003 - 14:11 #8
I VBA ser koden således ud:

Dim TilDato as Date, FraDato as Date
TilDato = TextBoxTildato.text
FraDato = Dateserial(year(Tildato), Month(Tildato) - 3, 1)
TextBoxFraDato = Format(FraDato, "dd-mm-yyyy")
Avatar billede janvogt Praktikant
09. december 2003 - 14:14 #9
Samme fejl - der skal i perioden 1/1 til 31/3 trækkes én fra året.
Avatar billede bak Forsker
09. december 2003 - 14:14 #10
du kan også bruge funktionen eomonth fra analysis toolpak
=EOMONTH(A1;-4)+1
jeg tror den hedder SLUT.PÅ.MÅNED på dansk
Avatar billede slo Nybegynder
09. december 2003 - 14:18 #11
Det er ikke nødvendigt at holde øje med evt. årsskift - det klarer VBA selv. Den opfatter en evt. måned negativt og tæller derfor tilbage.
Avatar billede janvogt Praktikant
09. december 2003 - 14:19 #12
ok
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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