Avatar billede htmlaga Nybegynder
09. maj 2003 - 23:33 Der er 11 kommentarer og
1 løsning

1.50 til 1,50

Kan man ved hjælp af en makro omforme en givent celleområde (a1:b20) fra f.eks. 1.50 til 1,50.
Altså:

1. tegn i cellen skal beholde sin nuværende værdi
2. tegn i cellen skal ændres til et ','
3. tegn i cellen skal beholde sin nuværende værdi
4. tegn i cellen skal beholde sin nuværende værdi

Hvis dette er muligt, kan de omformede værdier så benyttes til videre beregninger?


//aagaard
Avatar billede kabbak Professor
09. maj 2003 - 23:47 #1
kører dit excel med punktum som decimalseperator ?
Avatar billede kabbak Professor
09. maj 2003 - 23:50 #2
Hvis den gør det, så gå i windows/kontrolpanel/internationale indstillinger og lav om på tusindtals og decimaltegn.
Avatar billede htmlaga Nybegynder
09. maj 2003 - 23:52 #3
nej den kører ikke med punktum som decimalseperator, men de eksterne data, som jeg skal lave nogle beregninger på er opstillet med punktum som seperator.
Avatar billede jkrons Professor
09. maj 2003 - 23:52 #4
Man kan sagtens lave en makro der gøre det. Se fx neden for, men er det ikke meget nemmere at bruge søg og erstat?

Anyway: Makroen her løser problemet for celler c1:c5. Ret selv til de rigtige.

Sub Skift()
    For Each c In Worksheets("ark1").Range("c1:c5").Cells
    c.Value = (Left(c.Value, 1) & "," & Right(c.Value, 2)) * 1
    Next
End Sub
Avatar billede kabbak Professor
09. maj 2003 - 23:59 #5
Her er en med erstat

Sub Makro1()

    Columns("C:C").Select
    Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False
    Range("C4").Select
End Sub
Avatar billede htmlaga Nybegynder
10. maj 2003 - 00:04 #6
jkrons --> den virker tilsyneladende, men kommer alligevel med en fejlmeddelse hvor den 'markerer' linien:   

c.Value = (Left(c.Value, 1) & "," & Right(c.Value, 2)) * 1


Det kan godt være søg og erstat er nemmere, havde ikke tænkt i de baner
Avatar billede jkrons Professor
10. maj 2003 - 00:06 #7
Hvad er fejlmeddelelsen?
Avatar billede jkrons Professor
10. maj 2003 - 00:08 #8
Ved Søg og erstat.:

Marker cellerne det drejer sig om. Vælg Eratat. I Ruden søg efter skriver du . og Erstat med , Klik på Erstat alle.
Avatar billede htmlaga Nybegynder
10. maj 2003 - 00:11 #9
Run-time error ´13´

Type mismatch


Er det noget med alle celler skal have en værdi, en det undgås
Avatar billede jkrons Professor
10. maj 2003 - 00:16 #10
Ja, du har ret. Den forventer tekst i alle celler. Er der blanke i, så prøv denne

Sub Skift()
    For Each c In Worksheets("ark1").Range("c7:c10").Cells
        If c.Value <> "" Then
            c.Value = (Left(c.Value, 1) & "," & Right(c.Value, 2)) * 1
        End If
    Next
End Sub
Avatar billede htmlaga Nybegynder
10. maj 2003 - 00:20 #11
den virker perfekt nu.

tak for hjælpen.
Avatar billede jkrons Professor
10. maj 2003 - 00:21 #12
Velbekomme. Tak for point.
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