Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Excel "Fra dato til dato"

36 views
Skip to first unread message

Jannie Green

unread,
Nov 4, 1999, 3:00:00 AM11/4/99
to
Jeg har et problem i excel 97. Jeg vil gerne oprette et brugerdefineret
format, som gør at jeg ved indtastning af fx.

29-06-1998 - 31-12-1998
eller
01-08-1997 - 31-05-2000

- kun behøver at taste de 16 tal, altså ikke nogle bindestreger eller
evt. punktummer. Jeg skal ikke kunne regne på disse tal, men vil gerne
spares for at skulle taste mellemrum og bindestreger.

Jeg kan dog ikke få lavet et brugerdefineret format der helt virker
efter hensigten dvs tager foranstående nuller med og skriver årstallet i
"til datoen" rigtigt. Den laver fx 1998 om til 1990 og år 2002 om til år
2000

Jeg er ikke helt skrap til excel, så jeg vil blive meget glad hvis der
er nogen der kunne give mig en detaljeret løsning.

Med venlig hilsen

Jannie Green


Jan Kronsell

unread,
Nov 4, 1999, 3:00:00 AM11/4/99
to
Hej Jannie

Jannie Green <j...@uka.stam.dk> skrev i en
nyhedsmeddelelse:382161FB...@uka.stam.dk...


> Jeg har et problem i excel 97. Jeg vil gerne oprette et brugerdefineret
> format, som gør at jeg ved indtastning af fx.
>
> 29-06-1998 - 31-12-1998
> eller
> 01-08-1997 - 31-05-2000
>
> - kun behøver at taste de 16 tal, altså ikke nogle bindestreger eller
> evt. punktummer. Jeg skal ikke kunne regne på disse tal, men vil gerne
> spares for at skulle taste mellemrum og bindestreger.
>
> Jeg kan dog ikke få lavet et brugerdefineret format der helt virker
> efter hensigten dvs tager foranstående nuller med og skriver årstallet i
> "til datoen" rigtigt. Den laver fx 1998 om til 1990 og år 2002 om til år
> 2000

Prøv med følgende brugerdefinerede format, men husk at indtaste alle 16
cifre, også der hvor første ciffer i dato og/eller måned er 0.

0#-##-#### - 0#-##-#### Det burde virke uden problemer både med
foranstillede 0'er og uden at ændre årstallet.

Hilsen
Jan

Jannie Green

unread,
Nov 4, 1999, 3:00:00 AM11/4/99
to Jan Kronsell
Tak for hjælpen Jan,
men koden duer desværre ikke jeg har selv før prøvet med denne. Hvis man med
denne kode indtaster visse datoer som den nævnte:

29-06-1998 - 31-12-1998

vil den lave det sidste ottetal om til et 0, det vil sige der kommer til at
stå 1990 til slut..
Hvorfor den gør det er en gåde for mig og flere af mine kollegaer.

venlig hilsen

Jannie

Jan Kronsell skrev:

Preben Kaas

unread,
Nov 4, 1999, 3:00:00 AM11/4/99
to
On Thu, 04 Nov 1999 14:59:02 +0100, Jannie Green <j...@uka.stam.dk>
wrote:

>Tak for hjælpen Jan,
>men koden duer desværre ikke jeg har selv før prøvet med denne. Hvis man med
>denne kode indtaster visse datoer som den nævnte:
>
>29-06-1998 - 31-12-1998
>
>vil den lave det sidste ottetal om til et 0, det vil sige der kommer til at
>stå 1990 til slut..
>Hvorfor den gør det er en gåde for mig og flere af mine kollegaer.

Jeg ved det heller ikke og der sker det samme hos mig i Excel97 og
også i den "gamle" Excel 5.0.

Men sålænge du holder dig indenfor -------->1999 kan du lave en
nødløsning:

0#-##-19## - 0#-##-19##

og datoerne skal så indtastes uden "19" : 290698311298
så virker det.
Håber du får problemet løst inden årsskiftet, for da går det helt
bananas.

Preben
ved e-mail fjern xxxx

PS. Måske har Leo også en løsning på dette problem?

Jan Kronsell

unread,
Nov 5, 1999, 3:00:00 AM11/5/99
to
Hej Jannie

> men koden duer desværre ikke jeg har selv før prøvet med denne. Hvis man
med
> denne kode indtaster visse datoer som den nævnte:
>
> 29-06-1998 - 31-12-1998
>
> vil den lave det sidste ottetal om til et 0, det vil sige der kommer til
at
> stå 1990 til slut..
> Hvorfor den gør det er en gåde for mig og flere af mine kollegaer.

Jeg kan desværre godt se, at du har ret. Den kode jeg brugte virker
upåklageligt, men kun hvis det allerførste ciffer der tastes er et 0.

Jeg håber, at du får held med din fortsatte søgning.

Hilsen
Jan

Jannie Green

unread,
Nov 5, 1999, 3:00:00 AM11/5/99
to Preben Kaas
Også tak for hjælpen fra dig Preben, problemet er dog, at jeg skal bruge datoer
fra 1994 til 2002.

Hvad menes der med at det går bananas ved årsskiftet?

Jeg har desværre ikke fået løst problemet endnu, så hvis der er nogle der kan
hjælpe mig er de yderst velkomne

venlig hilsen
Jannie Green

Preben Kaas skrev:

> On Thu, 04 Nov 1999 14:59:02 +0100, Jannie Green <j...@uka.stam.dk>
> wrote:
>
> >Tak for hjælpen Jan,

> >men koden duer desværre ikke jeg har selv før prøvet med denne. Hvis man med
> >denne kode indtaster visse datoer som den nævnte:
> >
> >29-06-1998 - 31-12-1998
> >
> >vil den lave det sidste ottetal om til et 0, det vil sige der kommer til at
> >stå 1990 til slut..
> >Hvorfor den gør det er en gåde for mig og flere af mine kollegaer.
>

Leo Heuser

unread,
Nov 5, 1999, 3:00:00 AM11/5/99
to
Jannie,

Du er desværre løbet ind i en af begrænsningerne i Excel.
Excel kan kun arbejde med 15 betydende cifre, hvilket betyder, at tallet

2906199831121998 (for 29-06-1998 - 31-12-1998)

bliver lagret som 2906199831121990 (kun de første 15 cifre kommer med. Er der yderligere
cifre vil de blive erstattet af nuller.) og derfor vises som 29-06-1998 - 31-12-1990
hvorimod tallet

0306199831121998 (for 03-06-1998 - 31-12-1998)

vil kunne bruges, da Excel fjerner foranstillede nuller og altså lagrer tallet som

306199831121998

med formatet 0#-0#-#### - 0#-0#-#### vil resultatet blive 03-06-1998 - 31-12-1998

men der opstår som sagt fejl, når første ciffer er forskellig fra nul.

Der kan laves en løsning i VBA.
Hvis det er et "fast" område fx en hel kolonne (række),der bruges til indtastningen,
kan man lave en automatisk konvertering med hændelsen "Change".
Hvis det er celler, der er spredt rundt i regnearket, vil det sandsynligvis være det
letteste at lave en konverteringsrutine og så køre den fra en brugeroprettet knap,
når man står i den pågældende celle.

Hvis du får brug for hjælp til en VBA løsning, er du velkommen til at maile til gruppen.

Med venlig hilsen
LeoH

Jannie Green skrev i meddelelsen <382161FB...@uka.stam.dk>...


>Jeg har et problem i excel 97. Jeg vil gerne oprette et brugerdefineret
>format, som gør at jeg ved indtastning af fx.
>
>29-06-1998 - 31-12-1998
>eller
>01-08-1997 - 31-05-2000
>
>- kun behøver at taste de 16 tal, altså ikke nogle bindestreger eller
>evt. punktummer. Jeg skal ikke kunne regne på disse tal, men vil gerne
>spares for at skulle taste mellemrum og bindestreger.
>
>Jeg kan dog ikke få lavet et brugerdefineret format der helt virker
>efter hensigten dvs tager foranstående nuller med og skriver årstallet i
>"til datoen" rigtigt. Den laver fx 1998 om til 1990 og år 2002 om til år
>2000
>

Jannie Green

unread,
Nov 5, 1999, 3:00:00 AM11/5/99
to Leo Heuser
Mange tak for hjælpen, men som skrevet i min mail, er jeg meget ny bruger af excel, og har derfor brug for hjælp til at lave en såkaldt VBA løsning.  Det er et fast område, en kollone, der bruges til indtastningen.

Jeg bliver meget glad for en detaljeret "brugsanvisning" i hvad jeg skal gøre.

Venlig hilsen Jannie

Leo Heuser skrev:

Preben Kaas

unread,
Nov 5, 1999, 3:00:00 AM11/5/99
to
On Fri, 05 Nov 1999 08:21:13 +0100, Jannie Green <j...@uka.stam.dk>
wrote:

>Også tak for hjælpen fra dig Preben, problemet er dog, at jeg skal bruge datoer


>fra 1994 til 2002.
>
>Hvad menes der med at det går bananas ved årsskiftet?

Kun det, at hvis du bruger formaterne

0#-##-#### - 0#-##-#### eller 0#-##-19## - 20##

og så taster .......2000 eller ......00

så får du de mest mærkværdige datoløsninger.

Leo Heuser

unread,
Nov 5, 1999, 3:00:00 AM11/5/99
to
Så går det løs :-)

For at løsningen skal fungere, er det nødvendigt, at du indtaster "datotallet" som tekst.
Dette gøres ved at bruge en enkelt apostrof som *første* tegn (apostrof findes på
tasten til højre for Ø). Skulle du glemme apostroffen, kommer der en "husker".
2906199831121998 skal altså indtastes som '2906199831121998


1. Stå i det ark, det drejer sig om.
2. Højreklik på arkfanen (der hvor arknavnet står (fx Ark1)) og vælg "Vis programkode"
3. Kopiér nedenstående kode og sæt den ind i det vindue, der er fremkommet.
4. Koden virker på kolonne B, så er det en anden kolonne hos dig, skriver du
kolonnenavnet i denne linie i stedet for "B":

Set DatoRange = ActiveSheet.Columns("B")

5. Gå tilbage til regnearket med fx <Alt><F11> og gem det.
6. Prøv efter ved at indtaste et datotal i den aktuelle kolonne.

Hvis der opstår problemer, er du velkommen til at maile mig direkte.

Med venlig hilsen
LeoH


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim GemDato As Variant
Dim DatoRange As Range
Dim Dummy As Variant

Set DatoRange = ActiveSheet.Columns("B")

On Error GoTo Finito
If Not Intersect(Target, DatoRange) Is Nothing Then
GemDato = Target.Value
If TypeName(GemDato) <> "String" And GemDato <> "" Then
MsgBox "Husk enkelt apostrof som første tegn."
Target.ClearContents
Else
Application.EnableEvents = False
Target.Value = Format(GemDato, "@@-@@-@@@@ - @@-@@-@@@@")
End If
End If
Finito:
Application.EnableEvents = True
Set DatoRange = Nothing
End Sub

----------------------------------------------------------

Jannie Green skrev i meddelelsen <3822C227...@uka.stam.dk>...

0 new messages