Avatar billede mrkr Juniormester
05. april 2009 - 11:12 Der er 21 kommentarer og
1 løsning

Konverter komma til punktum i hel kolonne

Jeg har en kolonne med tal som jeg eksporterer til en anden fil.
Inden jeg gør det skal jeg have ændret seperatorerne i tallene.

Der skal IKKE være tusindtalsseperator og der skal være Punktum som seperator for ørene.

Jeg har prøvet med denne makro, som jeg har optaget, men den virker ikke efter hensigten

Sub Makro3()
    Columns("L:L").Select
    Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub

Er der nogen der kan ved hvordan man knækker den?
Avatar billede stry Nybegynder
05. april 2009 - 12:15 #1
Kan du ikke bruge den indbyggede Find & Replace - det virker fint hos mig.
Avatar billede mrkr Juniormester
05. april 2009 - 13:07 #2
Jo, det mærkelige er at det virker fint når jeg bruger find og erstat, men når jeg så laver/optager en makro der skal gøre det automatisk for mig, så virker det ikke.
Avatar billede stry Nybegynder
05. april 2009 - 14:44 #3
Ja, det er underligt - det er det samme hos mig, winXP + excel 2003.
Avatar billede ulykken-smed Juniormester
05. april 2009 - 14:52 #4
skal det være ved hjælp af en makro. for måske kunne de bruge erstat i funktionen søg og erstat
Avatar billede mrkr Juniormester
05. april 2009 - 14:56 #5
Det skal desværre være via makro.
Jeg kan godt få det til at virke med søg og erstat, men det er desværre ikke det jeg går efter
Avatar billede ulykken-smed Juniormester
05. april 2009 - 14:57 #6
ja så kan jeg ikke hjælpe :-)
Avatar billede ulykken-smed Juniormester
05. april 2009 - 15:05 #7
Kan denne bruges hvis du rediger lidt i den .
Det er ikke mig selv der har lavet den, og det er til 2007

Sub erstat()
Dim DataInput, DataOutput
DataInput = InputBox("Skriv det der skal søges efter i cellerne:                            Husk der skelnes mel store og små bogstaver")
If DataInput = "" Then Exit Sub
DataOutput = InputBox("Skriv den tekst som cellerne skal erstattes med: ")
For Each c In Selection
If InStr(1, c.Value, DataInput) Then c.Value = DataOutput
Next
End Sub
Avatar billede stry Nybegynder
05. april 2009 - 15:17 #8
Det er tilsyneladende fordi at vi bruger punktum som tusindtalsseperator. Hvis du prøver med al mulig anden tekst virker makroen upåklageligt.
Jeg ved ikke om du via kode kan ændre på lokaliseringsinstillingerne, for så var det jo en mulighed.
Avatar billede stry Nybegynder
05. april 2009 - 15:21 #9
Sådan ændres tusindtalsseperatoren:

Sub ChangeSystemSeparators()

   
    ' Define separators and apply.
    Application.DecimalSeparator = "."
    Application.ThousandsSeparator = "."
    Application.UseSystemSeparators = False

End Sub
Avatar billede stry Nybegynder
05. april 2009 - 15:24 #10
Hov, jeg kom til at lave samme decimal- og tusindtalsseperator. det skulle være sådan her:

Sub ChangeSystemSeparators()

 
    ' Define separators and apply.
    Application.DecimalSeparator = "."
    Application.ThousandsSeparator = ","
    Application.UseSystemSeparators = False

End Sub
Avatar billede excelent Ekspert
05. april 2009 - 15:33 #11
Marker dine tal og kør kode

Sub test()
Selection.NumberFormat = "0.00"
Application.UseSystemSeparators = False
End Sub

husk eftarfølgende at sætte til true igen:
Application.UseSystemSeparators = True
Avatar billede mrkr Juniormester
05. april 2009 - 17:12 #12
Jeg kan godt få 'stry' til at virke, men jeg håber på at kunne klare det uden at skulle ændre talformatet i hele arket.

Når jeg kører Excelents kode sker der ikke rigtig noget ved mig.
Avatar billede oyejo Nybegynder
06. april 2009 - 14:57 #13
Makroen virker på tekst?

Da ville jeg prøve å formatere tallene til tekst, før endring av desimalskilletegn.

(Selection.NumberFormat = "@")

Hvis ønskelig kan man i ettertid endre formatet tilbake til tall.

Sub Makro3()
    Columns("L:L").Select
    Selection.NumberFormat = "@"
    Selection.Replace What:=",", Replacement:="."
End Sub
Avatar billede mrkr Juniormester
06. april 2009 - 18:00 #14
Det virker desværre ikke hos mig.
Den ændrer ikke noget..
Hvis jeg har feks har sat et A ind efter tallet virker det, derimod.

Jeg er derfor kommet til at tænke på en løsning, som måske vil virke.
Den er ikke køn, men hvis den virker, så er jeg glad :-)

1: Man indsætter f.eks. et "A" efter alle tallene i kolonne L
2: Erstatter , med . som den gerne vil med tekst
3: Fjerne "A" igen, så det bliver et tal

Jeg har prøvet med noget i denne retning, uden at jeg dog kan få det til at virke.

Måske kunne I klare den?


Sub makro3333()
For Each Cell In Range("L2:L100")
    If Cell <> "" Then
        Cell = Cell & "A"
        Else
    End If
Next

Columns("L:L").Select
    Selection.NumberFormat = "@"
    Selection.Replace What:=",", Replacement:="."
End Sub
Avatar billede oyejo Nybegynder
06. april 2009 - 21:03 #15
Det må være noe annet som er galt.

Benytter du to forskjellige excel-filer?

Isåfall må du sjekke at koden virker på riktig excel-fil.
Det er mulig koden driver å formaterer kolonne L i Feil fil.
Avatar billede mrkr Juniormester
06. april 2009 - 21:07 #16
Jeg bruger én fil og jeg bruger Excel 2007.
Men det virker desværre ikke.
Avatar billede oyejo Nybegynder
06. april 2009 - 21:26 #17
Bruker du flere ark?

Undersøk hvilket format det er på Cellene etter at makroen er kjørt.
Avatar billede mrkr Juniormester
06. april 2009 - 21:33 #18
ja, der er flere faner i mit regneark.
Jeg har også prøvet i en hekt ny fil med nye tal. Der virker den heller ikke.

Cellerne er formateret som TEKST efter makroen er kørt.
Avatar billede mrkr Juniormester
07. april 2009 - 19:47 #19
Jeg fik problemet  løst ved at kombinere oyejo´s lille kodestump:

Columns("L:L").Select
    Selection.NumberFormat = "@"
    Selection.Replace What:=",", Replacement:="."


med svaret fra denne tråd.
http://www.eksperten.dk/spm/871011

Jeg ved ikke hvorfor det er sådan, men nu er det løst :-)
Mange tak for indsatsen til jer alle.
oyejo har du et svar?
Avatar billede oyejo Nybegynder
07. april 2009 - 21:33 #20
mrkr, flott at du fikk løst ditt problem.
Avatar billede oyejo Nybegynder
07. april 2009 - 21:35 #21
obs, et svar ;-)
Avatar billede jlemming Nybegynder
26. august 2010 - 10:43 #22
Da jeg selv lige har haft problemet, med ikke forstod den valgte løsning, smider jeg lige min løsning. til fremtidig brug :-)

ActiveSheet.Range("F:F,J:J").Select                ' ændre ,tal til .
    Selection.NumberFormat = "@"                        ' ændre til tekst
    For Each c In Selection
        If c.Value <> "" Then c.Value = Replace(c.Value, ",", ".")
    Next
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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



Seneste spørgsmål Seneste aktivitet
I dag 06:10 Excel åbner fil i kæmpe format Af Aske i Excel
I går 22:00 Datafordeler Af Lsk i PHP
I går 12:37 Summere beløb pr. dato Af TTA i Excel
31/1022:44 Tilslutte chassic fans Af viking69 i PC
31/1020:28 LED lysstofrør Af ErikHg i Fri debat