getal --> punt ipv komma

Status
Niet open voor verdere reacties.

allard1

Gebruiker
Lid geworden
5 dec 2006
Berichten
314
Beste mensen,

Ik ben op dit moment bezig met een code waarmee ik tekst in getal omzet (in excel). Deze werkt meer dan fantastisch (uche, uche). Alleen nu moeten de komma's worden vervangen door punten. Dus 260,58 moet 260.58 worden. Nu heb ik verschillende methodes gebruikt waaronder:

-de format functie
Code:
Dim value As Double
waarde = ActiveCell.value
Range("AQ2").value = Format(waarde, "##.##")

-En de replace functie
Code:
Dim value As Double
waarde = ActiveCell.value
ActiveCell = Replace(ActiveCell, ".", ",")

Beide functies geven niet het gewenste resultaat. Vooral de laatste is vervelend aangezien hij er tekst van maakt. Heeft iemand een ander idee?

Groet,
Allard
 
Zo lukt het bij mij wel....

Je moet beide doen, beter is(afhankelijk van het aantal waardes) dit middels een array te doen. De onderstaande code net geprobeerd en het werkt:

Code:
With Sheets("Blad1").Range("a1")
    .NumberFormat = "@"
    .Value = Replace(Sheets("Blad1").Range("a1"), ",", ".")
End With
 
Je moet beide doen, beter is(afhankelijk van het aantal waardes) dit middels een array te doen. De onderstaande code net geprobeerd en het werkt:

Code:
With Sheets("Blad1").Range("a1")
    .NumberFormat = "@"
    .Value = Replace(Sheets("Blad1").Range("a1"), ",", ".")
End With

Dit werkt goed, alleen het wordt dus wel tekst....maar dat is dan jammer het is wel in te lezen in ieder geval. Dank dus hiervoor. Alleen ik probeer nu dit voor een hele kolom te doen (tot de laatst gevulde rij :) ) middels onderstaand verhaal, alleen krijg ik nu een foutmelding, waarschijnlijk heeft het te maken met wat jij zei over array. In ieder geval de code
Code:
Sub test()
Dim laatsterij As Integer
laatsterij = activesheet.Cells.SpecialCells(xlCellTypeLastCell).Row + 1
With Worksheet.Range("AP:AP" & laatsterij)
    .NumberFormat = "@"
    .value = Replace(Worksheet.Range("AP:AP" & laatsterij), ",", ".")
End With

End Sub
 
Waarom wil je het Europese decimaalteken vervangen door een punt ?

Code:
Sub test()
  With sheets(1).usedrange.columns(41)
    .NumberFormat = "@"
    .Replace ",", "."
  End With
End Sub
 
Laatst bewerkt:
ik zou het anders doen

Probeer het zo eens:

Code:
Sub Probeer()

Dim arrValues As Variant
Dim arrValuesNEW() As String
Dim intCounter As Integer

With Sheets("Blad1")
    arrValues = .Range("ap1:ap" & .Range("ap:ap").SpecialCells(xlCellTypeLastCell).Row)
End With
    
ReDim arrValuesNEW(UBound(arrValues))
    
For intCounter = 1 To UBound(arrValues)
    arrValuesNEW(intCounter - 1) = Replace(arrValues(intCounter, 1), ",", ".")
Next intCounter

With Sheets("Blad1").Range("ap1:ap" & UBound(arrValuesNEW))
    .NumberFormat = "@"
    .Value = WorksheetFunction.Transpose(arrValuesNEW)
End With

End Sub
 
Laatst bewerkt:
...

Maar ik had natuurlijk weer niet de oplossing van SNB gezien....

Pffff wat doe ik hier eigenlijk nog.... :D
 
@SNB
Waarom het decimaalteken vervangen door een punt. Dat ga ik je zo globaal mogelijk uitleggen :) Ik heb een database in Access gemaakt welke de administratie voor een aantal financiele zaken. Uit deze database komt output welke in excel wordt aangeleverd in een extern systeem. Nu kan dit externe systeem niet omgaan met komma's in de bedragen....(ik heb het niet bedacht). Dus dat is de reden dat er weer een hele conversieslag plaats moet vinden. Erg vervelend, maar ik ben gebonden :)

@Interface
Er zijn altijd meer wegen die leiden naar Rome. Uit beide antwoorden haal ik altijd iets. Dus je moeite is nooit voor niets geweest :) En inderdaad, soms vraag ik mij ook af wat ik hier doe.....maar ja, je bent van de straat :)
 
Kun je de Excelfase dan niet overslaan ?
Je exporteert het bestand vanuit Access naar een platte tekst.
Daarna met open for input en open for outlput de komma's door punten vervangen.
Voorbeeld vanuit Excel
Code:
Activeworkbook.SaveAs "E:\voorbeeld.csv",xlcsvWindows

Open "E:\voorbeeld.csv" for Input as #1
  c2=Input(LOF(1),#1)
Close #1

Open "E:\voorbeeld2.csv" for Output as #1
   Print #1,replace(c2,",",".")
Close #1
 
Allard,

Waarom geef je dit niet mee in de Export vanuit Acces lijkt mij een handigere, snellere en betere oplossing.

Geef even aan hoe je export genereert, via VBA of handmatig
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan