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

Cpr.nr. - ensretning med foranstillet 0

475 views
Skip to first unread message

Flemming Udbjørg

unread,
May 17, 2006, 1:38:47 AM5/17/06
to
Jeg har mange hundrede cpr.nr. i et regneark, som jeg med en funktion kan
regne alder og køn på.

Men nogle af disse cpr.nr. har ikke det første 0 med - og viser så f.eks.
fødselsdatoen 05.04.78 som et cpr.nr. der hedder 504782021 - og så går der
kuk i aldersberegningerne.

Hvordan kan jeg på en enkelt måde få sat et foranstillet 0 foran alle de
cpr.nr., som ikke har det? Antag, at jeg har alle cpr.nr. i kolonne A.

/Flemming U


Unknown

unread,
May 17, 2006, 2:28:26 AM5/17/06
to
Et stykke kage:


1) Marker kolonne A
2) Vælg <Formatér celler> (Tryk <CTRL> + <1>)

Du har nu to muligheder:

1) Under "Speciel" er der allerede lavet et CPR-nr. format, du kan bruge.
2) Lav dit eget CPR-nu. format under "Brugerdefineret".

Personligt vælger jeg altid den sidste løsning og bruger formatet:

"00 00 00 - 00 00"


mvh.,

Pistolprinsen


"Flemming Udbjørg" <flem...@udbjorg.dk> skrev i en meddelelse
news:446ab6e9$0$15788$1472...@news.sunsite.dk...

Leo Heuser

unread,
May 17, 2006, 4:01:39 AM5/17/06
to
"Flemming Udbjørg" <flem...@udbjorg.dk> skrev i en meddelelse
news:446ab6e9$0$15788$1472...@news.sunsite.dk...

Hej Flemming

Du kan få nullet med på 2 måder.

1. Formatér området som tekst og indtast cpr.nummer (I den rækkefølge!)
2. Start indtastningen med en enkelt apostrof ' (til højre for tast Ø)
så vil Excel betragte det som tekst.

Som du ser, er det ret besværligt at rette, når cpr. nummeret *er* tastet
ind som tal. Nedenstående makro laver det om for hele kolonnen.
Gå til VBA-editoren med <Alt><F11>, vælg Insert > Module, kopiér
makroen og indsæt den på højre side.
Ret til de aktuelle navne i

Set CheckRange = Worksheets("Ark1").Columns("A")

Gå tilbage til arket med <Alt><F11> og gem projektmappen.

Kør makroen med <Alt><F8>


Sub ZeroAsPrefix()
'Leo Heuser, 17-5-2006
Dim CheckRange As Range
Dim CheckRangeValue As Variant
Dim Counter As Long

Set CheckRange = Worksheets("Ark1").Columns("A")

Set CheckRange = Range(CheckRange.Cells(1, 1), _
CheckRange.Cells(65536, 1).End(xlUp))

CheckRangeValue = CheckRange.Value

CheckRange.NumberFormat = "@"

For Counter = 1 To UBound(CheckRangeValue, 1)
If Len(CheckRangeValue(Counter, 1)) = 9 Then
CheckRangeValue(Counter, 1) = _
"0" & CheckRangeValue(Counter, 1)
End If
Next Counter

CheckRange.Value = CheckRangeValue

End Sub


--
Med venlig hilsen
Leo Heuser

Followup to newsgroup only please.


Leo Heuser

unread,
May 17, 2006, 4:07:52 AM5/17/06
to
"Pistolprinsen" <@> skrev i en meddelelse
news:446ac2a4$0$99988$edfa...@dread16.news.tele.dk...

> Et stykke kage:
>
>
> 1) Marker kolonne A
> 2) Vælg <Formatér celler> (Tryk <CTRL> + <1>)
>
> Du har nu to muligheder:
>
> 1) Under "Speciel" er der allerede lavet et CPR-nr. format, du kan bruge.
> 2) Lav dit eget CPR-nu. format under "Brugerdefineret".
>
> Personligt vælger jeg altid den sidste løsning og bruger formatet:
>
> "00 00 00 - 00 00"
>
>
> mvh.,
>
> Pistolprinsen

Hej

Dine forslag laver kun om på formatet (det vi ser i cellen) og ikke på
de underliggende data. Selv om cellen viser fx 0504782021, vil det
tal, der bruges til beregninger stadig være 504782021.
Se mit forslag til løsning.

Med venlig hilsen
Leo

Unknown

unread,
May 17, 2006, 5:01:58 AM5/17/06
to
Det er korrekt, Leo.

Jeg gik ud fra, at det var nok, da det jo ikke er noget problem, at beregne
på CPR-nummeret (alder, gyldighed, køn, stjernetegn, fødselsår,
erstatningsnummer m.m.) uanset om det nul er der eller ej - det kan man jo
blot teste for med en simpel =LÆNGDE(), ved at behandle det som en tekst i
første omgang.

Men, jeg kan da godt se nu, hvor jeg nærlæser indlægget, at han netop
klagede om aldersberegningen, hvor jeg troede, at det blot var en kosmetisk
udseende detalje, han ville have på plads...

Men, som altid, kommer du til vores redning :-)


mvh.,

Pistolprinsen

Flemming Udbjørg

unread,
May 17, 2006, 2:20:59 PM5/17/06
to
Tak for hjælpen til jer begge.

/Flemming U


Leo Heuser

unread,
May 17, 2006, 2:54:42 PM5/17/06
to
"Flemming Udbjørg" <flem...@udbjorg.dk> skrev i en meddelelse
news:446b698e$0$15785$1472...@news.sunsite.dk...

> Tak for hjælpen til jer begge.
>
> /Flemming U
Velbekomme :-)

Leo


0 new messages