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
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...
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.
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
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 U
Leo