/ Forside / Teknologi / Administrative / MS-Office / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
MS-Office
#NavnPoint
sion 18709
refi 14474
Klaudi 9389
Rosco40 5695
berpox 5456
dk 5398
webnoob 4919
Benjamin... 4870
o.v.n. 4637
10  EXTERMINA.. 4373
excel bereg. af alder
Fra : Ivan


Dato : 05-02-04 17:00

Dav i gruppen

Jeg har forsøgt at få en database lavet i Excel ind i Access, det kan jeg
ikke får til at virke:( jeg har forsøgt med det råd jeg fik i en anden tråd,
jeg kan ikke få det til at virke.

Hvordan for jeg Excel til at lave en aldersberegning? Jeg har cpr.nr. og det
ville jo være nemt og smart hvis jeg kunne få Excel til at vis mig alderen.
Det ville være endnu mere "blær" hvis det kunne blive sådan at det kun var
dem der bliver 50 og 60 år der vises. Kan noget sådan gøre, jeg har prøvet
men kan ikke få det til at virke som jeg mener det skulle kunne.

Hi
Ivan



 
 
Jan Kronsell (05-02-2004)
Kommentar
Fra : Jan Kronsell


Dato : 05-02-04 23:50


"Ivan" <email@adressedurikke.dk> skrev i en meddelelse
news:sMtUb.2931$3t1.2714@news.get2net.dk...
> Dav i gruppen
>
> Jeg har forsøgt at få en database lavet i Excel ind i Access, det kan jeg
> ikke får til at virke:( jeg har forsøgt med det råd jeg fik i en anden
tråd,
> jeg kan ikke få det til at virke.
>
> Hvordan for jeg Excel til at lave en aldersberegning? Jeg har cpr.nr. og
det
> ville jo være nemt og smart hvis jeg kunne få Excel til at vis mig
alderen.
> Det ville være endnu mere "blær" hvis det kunne blive sådan at det kun var
> dem der bliver 50 og 60 år der vises. Kan noget sådan gøre, jeg har prøvet
> men kan ikke få det til at virke som jeg mener det skulle kunne.
>
> Hi
> Ivan
>
Denne funktion beregner alderen ud fra et cpr-nummer. Hvis du fx har
cprnummer i A1, skriver cpralder(a1), der hvor alderen skal beregnes. Du kan
faktisk også bruge den direkte i Access. Kopier koden til et modul. Så kal
du kalde den i en forespørgsel på cpr-nummeret. Dog skal du så angive
feltet, der indeholder cpr-nummeret i stedet for cellen. Skriv fx i en tom
forespørgselskolonne Alder: cpralder([cprnummer]) eller hvad dit felt nu
hedder. Sætter du så et kriterie på fgeltet med aldersberegningen, har du
dem du ønsker (%50 OR 60).

OBS! Koden tager højde for problematikken omkring personer, der er født i
forskellige århundreder.

Jan

Function CprAlder(cpr As String) As Byte
'JKrons, 2002
'Finder alder pga fødsels-århundredet ud af
'et cpr-nummer på formen xxxxxx-xxxx
'Den virker kun indtil 2036, hvor cpr-nummersystemet i
'dets nuværende form ophører med at fungere
'se nærmere på www.cpr.dk
If Not IsNull(cpr) Then

Dim bytCent As Byte
Dim bytSevdig As Byte
Dim bytCpryear As Byte
Dim bytCprmonth As Byte
Dim bytCprday As Byte
Dim strErrtxt As String
Dim datTemp As Date


strErrtxt = "Der eksisterer ikke lovlige cpr-numre, hvor årstallet er "
bytSevdig = Mid(cpr, 8, 1)
bytCpryear = Mid(cpr, 5, 2)
bytCprmonth = Mid(cpr, 3, 2)
bytCprday = Mid(cpr, 1, 2)

Select Case bytSevdig
Case 0 To 3
bytCent = 19
Case 4, 9
If bytCpryear <= 36 Then
bytCent = 20
Else
bytCent = 19
End If
Case 5 To 8
If bytCpryear <= 36 Then
bytCent = 20
ElseIf bytCpryear >= 58 Then
bytCent = 18
Else
strErrtxt = strErrtxt & bytCpryear & " og 7. ciffer er " &
bytSevdig
MsgBox strErrtxt, vbOKOnly + vbCritical, "CPR-nummer fejl"
Exit Function
End If

End Select

datTemp = DateSerial(bytCent & bytCpryear, bytCprmonth, bytCprday)

If datTemp > Date Then
MsgBox "Den pågældende person er ikke født endnu", vbOKOnly +
vbExclamation, "CPR-nummer fejl"
Exit Function
End If

If Mid(datTemp, 7, 2) = 18 Then
CprAlder = Right(DatePart("yyyy", Date - datTemp), 2) + 100
Else
CprAlder = Right(DatePart("yyyy", Date - datTemp), 2)
End If
End If

End Function



Ivan (11-02-2004)
Kommentar
Fra : Ivan


Dato : 11-02-04 16:55

> Denne funktion beregner alderen ud fra et cpr-nummer. Hvis du fx har
> cprnummer i A1, skriver cpralder(a1), der hvor alderen skal beregnes.

Har arbejdet meget, derfor kommer jeg først med en respons nu.
Kan ikke få det til at virke. Har Cprnr i kolonne A og ønsker beregningen i
Kolonne I.
Jeg bruger Office 2000 Premium

HI
Ivan



Jan Kronsell (11-02-2004)
Kommentar
Fra : Jan Kronsell


Dato : 11-02-04 17:36


"Ivan" <email@adressedurikke.dk> skrev i en meddelelse
news:xesWb.3774$0L2.602@news.get2net.dk...
> > Denne funktion beregner alderen ud fra et cpr-nummer. Hvis du fx har
> > cprnummer i A1, skriver cpralder(a1), der hvor alderen skal beregnes.
>
> Har arbejdet meget, derfor kommer jeg først med en respons nu.
> Kan ikke få det til at virke. Har Cprnr i kolonne A og ønsker beregningen
i
> Kolonne I.
> Jeg bruger Office 2000 Premium
>

Hvis du har cpr-nummer i fz A1 på denne form 111111-2233 skal du i I1 skrive
cpralder(a1), så burde det gerne virke. Hvis det ikke virker, må du lige
fortælle mig, hvad der sker.

Jan



Ivan (11-02-2004)
Kommentar
Fra : Ivan


Dato : 11-02-04 17:53

Dav Jan

Det virker ikke.
I a1 skriver jeg: 111111-2222 og formater cellen til CPRNR, i skriver jeg
=cpralder(a1) formateret til standard. Så skulle svaret i kolonne I gerne
være et tal, men der står #NAVN?

Hi
Ivan
"Jan Kronsell" <kronsell(removebeforesend)@adslhome.dk> skrev i en
meddelelse news:402a59dc$0$29348$edfadb0f@dread15.news.tele.dk...
>
> "Ivan" <email@adressedurikke.dk> skrev i en meddelelse
> news:xesWb.3774$0L2.602@news.get2net.dk...
> > > Denne funktion beregner alderen ud fra et cpr-nummer. Hvis du fx har
> > > cprnummer i A1, skriver cpralder(a1), der hvor alderen skal beregnes.
> >
> > Har arbejdet meget, derfor kommer jeg først med en respons nu.
> > Kan ikke få det til at virke. Har Cprnr i kolonne A og ønsker
beregningen
> i
> > Kolonne I.
> > Jeg bruger Office 2000 Premium
> >
>
> Hvis du har cpr-nummer i fz A1 på denne form 111111-2233 skal du i I1
skrive
> cpralder(a1), så burde det gerne virke. Hvis det ikke virker, må du lige
> fortælle mig, hvad der sker.
>
> Jan
>
>



Jan Kronsell (11-02-2004)
Kommentar
Fra : Jan Kronsell


Dato : 11-02-04 18:01


"Ivan" <email@adressedurikke.dk> skrev i en meddelelse
news:c5tWb.3892$ZF3.321@news.get2net.dk...
> Dav Jan
>
> Det virker ikke.
> I a1 skriver jeg: 111111-2222 og formater cellen til CPRNR, i skriver jeg
> =cpralder(a1) formateret til standard. Så skulle svaret i kolonne I gerne
> være et tal, men der står #NAVN?
>

Har du huske at lægge koden til cpralder i et modul i projektmappen?

Jan



Ivan (11-02-2004)
Kommentar
Fra : Ivan


Dato : 11-02-04 18:40

>
> Har du huske at lægge koden til cpralder i et modul i projektmappen?
>
> Jan
>
Hvabeva, jeg ved ikke rigtigt hvad jeg skal gøre med den "Function
CprAlder(cpr As String) As Byte osv"
Modul er det det samme som en makro, jeg har lige læst at der er noget der
hedder makro.

Hi
Ivan




Jan Kronsell (11-02-2004)
Kommentar
Fra : Jan Kronsell


Dato : 11-02-04 18:50


"Ivan" <email@adressedurikke.dk> skrev i en meddelelse
news:hNtWb.3936$dC4.446@news.get2net.dk...
> >
> > Har du huske at lægge koden til cpralder i et modul i projektmappen?
> >
> > Jan
> >
> Hvabeva, jeg ved ikke rigtigt hvad jeg skal gøre med den "Function
> CprAlder(cpr As String) As Byte osv"
> Modul er det det samme som en makro, jeg har lige læst at der er noget der
> hedder makro.
>
> Hi
> Ivan
>

Her er en lille brugsanvisning:

Åbn din projektmappe.
Tryk Alt+F11.
I menuen Insert vlkger du Module.

Kopier hele koden fra den oprindelige mail - altså fra og med Function
CprAlder(.... til og med End Function til dette modul.

Luk VBA editoren. (File - close and return to Microsoft Excel.

Nu kan du bruge funktionen cpralder() i I kolonnen, og den skulle gerne
virke uden at du får fejl.

Ellers må du lige vende tilbage.

Jan



Ivan (11-02-2004)
Kommentar
Fra : Ivan


Dato : 11-02-04 19:01

Dav igen igen

Der kommer en fejl der siger "Coppile errer: Invalid outside procedure" og
så er der i linien "If Not IsNull(cpr) Then" der er cpr markeret.

Håber at det siger din en hel masse, jeg fatter ikke en s...

Hi
Ivan



Jan Kronsell (11-02-2004)
Kommentar
Fra : Jan Kronsell


Dato : 11-02-04 20:21


"Ivan" <email@adressedurikke.dk> skrev i en meddelelse
news:o5uWb.4059$Up4.730@news.get2net.dk...
> Dav igen igen
>
> Der kommer en fejl der siger "Coppile errer: Invalid outside procedure"
og
> så er der i linien "If Not IsNull(cpr) Then" der er cpr markeret.
>
> Håber at det siger din en hel masse, jeg fatter ikke en s...
>

Har du mulighed for at sende mig regnearket - så kan jeg se på det.

Jan



jv (12-02-2004)
Kommentar
Fra : jv


Dato : 12-02-04 07:27

Hej Jan,

Jeg har ligeledes leget lidt med ovennævnte.
I den kode du tidligere har givet os er der et par linieskift for meget.
Efter at have fjernet disse virker formlen, men resultaterne er forkerte.
Skal cellen med resultatet formateres på en spec. måde?

jens


"Jan Kronsell" <kronsell(removebeforesend)@adslhome.dk> skrev i en
meddelelse news:402a8099$0$29385$edfadb0f@dread15.news.tele.dk...
>
> "Ivan" <email@adressedurikke.dk> skrev i en meddelelse
> news:o5uWb.4059$Up4.730@news.get2net.dk...
> > Dav igen igen
> >
> > Der kommer en fejl der siger "Coppile errer: Invalid outside procedure"
> og
> > så er der i linien "If Not IsNull(cpr) Then" der er cpr markeret.
> >
> > Håber at det siger din en hel masse, jeg fatter ikke en s...
> >
>
> Har du mulighed for at sende mig regnearket - så kan jeg se på det.
>
> Jan
>
>



Jan Kronsell (12-02-2004)
Kommentar
Fra : Jan Kronsell


Dato : 12-02-04 09:16


"jv" <nospam@nospam.ig> skrev i en meddelelse
news:402b1dc4$0$169$edfadb0f@dread11.news.tele.dk...
> Hej Jan,
>
> Jeg har ligeledes leget lidt med ovennævnte.
> I den kode du tidligere har givet os er der et par linieskift for meget.
> Efter at have fjernet disse virker formlen, men resultaterne er forkerte.
> Skal cellen med resultatet formateres på en spec. måde?
>

Nej, men cellen med indtastningen af cpr-nummeret skal formateres som tekst,
eller cpr-nummeret skal indtastes som tekst, alså fc121212-3456 hvor
bindestregen rent faktisk indtastes, ellers vil der opstå problemer - dels
med at forstillede 0'er forsvinder, og dels med at koden ikek virker
korrekt.

Jan



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste