• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Vervang punt door komma VBA

Status
Niet open voor verdere reacties.

toverkamp

Gebruiker
Lid geworden
11 sep 2006
Berichten
403
Hallo,

Middels een macro voeg ik externe data (.txt) file in, in Excel.
Nu staan er in de kolommen getallen met de decimalen gescheiden door een punt. Excel kan hier uiteraard niet mee rekenen. Daarom wil ik deze graag vervangen door een komma. Ik kan geen juiste oplossing vinden op dit forum of op andere sites.

Wanneer ik handmatig zoek/vervang (. door ,) doe werkt dit keurig. Nu heb ik dit handmatige gedeelte opgenomen met een macro en dan worden de punten ook wel vervangen door een komma, maar ziet excel deze getallen nog steeds niet als getal.

Zie hier mijn code:
Code:
Columns("E:R").Select
    Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

Wie weet hier een goede code voor?
 
voeg dit een toe:

Code:
Range("E2:R10000")=1*Range("E2:R10000")

post anders even een voorbeeldbestandje (uiteraard zonder "gevoelige" gegevens).
 
Toverkamp,

Ik denk dat de cellen zijn opgemaakt als TEKST.
Vermenigvuldig de cellen met 1
 
voeg dit een toe:

Code:
Range("E2:R10000")=1*Range("E2:R10000")

post anders even een voorbeeldbestandje (uiteraard zonder "gevoelige" gegevens).

Wanneer ik dit aan de code toevoeg krijg ik de foutmelding: "Fout 13 tijdens uitvoering: Typen komen niet met elkaar overeen".
De celopmaak staat gewoon als GETAL dus niet als TEKST.
 
dan toch maar even een (deel van) je bestand plaatsen.....
 
Of zo?
Code:
Columns("E:R").Select
    Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    Selection.Replace What:="'", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
 
Ik heb een hele simpele methode:
Code:
Sub vervang()
  Dim cel As Range
  
  Application.ScreenUpdating = False
  Application.Calculation = xlCalculationManual
  
  For Each cel In Range("A1").CurrentRegion
    cel.Value = cel.Value
  Next cel
  
  Application.ScreenUpdating = True
  Application.Calculation = xlCalculationAutomatic
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan