Wie o wie weet hoe je een komma kunt omzetten naar een punt in excel. Ik wil
graag een macro maken om dit te regelen echter werkt deze niet. Als je
normaal gesproken control+H en vervolgens komma vervangen door een punt doet
wordt deze handelingen wel door de macro geregistreerd maar als je 'm runt
werkt het niet. Ik heb een code nodig om dit te regelen, wie geeft de gouden
tip. (niet via conf.scherm/landinstellingen/scheidingsteken!!)
Sub Macro1()
Columns("A:A").Select
Selection.Replace What:=",", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
End Sub
Werkt gewoon, alleen blijven bij mij (excel200, engelse versie) de getallen
links uitgelijnd staan, maar dat kan je natuurlijk ook nog wel toeveogen aan
je macro,
wie.niet <wie....@hccnet.nl> schreef in berichtnieuws
ab10h2$f97$1...@news.hccnet.nl...
plak je macro is in het bericht?
en, welke versie excel?
Columns("A:A").Select
Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
End Sub
Excel 2000 versie 9.0.3821 SR-1
Als je het normaal via control+H doet vervolgens vervangen dan doet ie het
wel, echter als je de handelingen opneemt in een macro werkt het niet....
wie.niet <wie....@hccnet.nl> schreef in berichtnieuws
ab16d1$oj5$1...@news.hccnet.nl...
mail me (privé) je ecel bestand, is waarschijnlijk wat eenvoudigs, want als
die macro bij mij werkt, dan moet ie dat bij jou ook doen!
Het probleem zit em in de cellen C3..E3, deze zijn gecombineerd tot een cel.
Hierdoor werkt jouw macro niet:
Columns("D:D").Select
Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Dit werkt wel:
Range("D6").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Dit kan je eenvoudig zelf testen door VisualBasic op te starten en dan met
F8 door je macro te lopen,
Als je jou macro pakt, en net na de "Range("D:D").Select" gaat kijken welke
cellen er geselecteerd zijn, zie je dat dit andere cellen zijn dan jij wilt.
Ik selecteer niet de hele kolom, maar slechts vanaf "D6" tot en met de
laatste waarde in kolom D
> Dit werkt wel:
> Range("D6").Select
> Range(Selection, Selection.End(xlDown)).Select
> Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
> SearchOrder:=xlByRows, MatchCase:=False
>
>
Bij mij werkt het niet en ik loop ook tegen de reeds beschreven
problematiek aan. Komma wordt niet vervangen door punt. Ik zal de vraag
even stellen in een andere ng. Misschien hebben ze daar een oplossing.
--
mvg
BBert
BBert <BB...@home.nl> schreef in berichtnieuws
MPG.173f476d6...@213.51.129.161...
Sub VervangKommaDoorPuntInGetallen()
'Daar waar de komma het decimaalteken is kan _
van getallen de komma niet zondermeer _
worden vervangen door de punt via VBA, _
aangezien VBA in getallen de punt leest _
als decimaalteken en dus de komma niet vindt.
'Je kunt wel de punt vervangen door _
bijvoorbeeld een @; het lijkt er dan op dat _
de komma is vervangen door @
Dim rng As Range
'Je kunt getallen naar tekst omzetten door _
er een enkele aanhalingsteken voor te plaatsen
For Each rng In ActiveSheet.UsedRange.Columns(1).Cells
rng = "'" & rng
Next
'Daarna kun je dan de komma vervangen door een punt
Range("A:A").Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
'Vervolgens kan dan de 'waarde' van de cel geplaatst _
worden waarbij de enkele aanhalingsteken _
wordt verwijderd
For Each rng In ActiveSheet.UsedRange.Columns(1).Cells
rng = rng
Next
End Sub
Jan
Volgens mij heb jij de gouden tip gegeven, ik dank je hartelijk.
Vriendelijk bedankt,
Resul
J.G. Kok <jg...@freeler.nl> schreef in berichtnieuws
u8u2bDE9BHA.2620@tkmsftngp05...
[komma vervangen door punt]
> Is dit een oplossing.
Deze code werkt in ieder geval en doet wat-ie moet doen. Mijn speurtocht
heeft niet veel opgeleverd. Het decimaalteken is in het ene land de
komma in het andere land de punt. Waarom Excel zo spastisch omgaat met
het vervangen van het een door het ander, blijft voor mij ondoorzichtig.
De redenering van Jan klinkt me acceptabel in de oren. Maar het blijft
gek dat de functie Vervangen in het menu Bewerken wél functioneert (2,25
wordt keurig vervangen door 2.25) vanuit het werkblad maar niet vanuit
de vba-code.
--
mvg
BBert
...Excel zo spastisch omgaat met...
Je moet je gewoon voorstellen dat Excel in getallen helemaal GEEN punt
of komma of wat voor TEKEN ook heeft staan. Kan ze dus ook niet
vervangen. Intern is het een bitreeks met de "aantekening" er bij, dat
deze bitreeks als getalswaarde moet worden behandeld.
Daarom komt 'ie op het scherm, voor ons domme mensen, (maar dus niet
intern) vertaald in de vorm van wat cijfers met naar keuze duizendtal-
en/of decimaaltekens. Daarbij worden een aantal Windows- en
Excel-instellingen geraadpleegd voor de "vertaling naar het scherm",
zoals: Komma's of punten gebruiken?, hoeveel decimalen?, nulwaarden
weergeven?, negatieve getallen met een min er vóór of er achter of
rood?
[of, met zojuist geposte programmaatjes, in de vorm van een stukje
tekst, bijv. "eenentwintig komma vijftien". Hierin wordt de komma ook
niet door een punt vervangen met "replace , by ." ;-) ]
Zo kun je ook niet zoeken en vervangen op het min-teken als teken dus.
Het programmaatje van Jan zet heel slim de getallen eerst om naar
tekst. Dan bewaart Excel dus intern WEL een rijtje TEKENS, althans de
code ervoor. En kan dan dus wel op die tekens zoeken en vervangen
(maar er niet meer mee rekenen!! tot je ze terug naar getallen zou
omzetten)
hope(n?)lijk iets verduidelijkt zonder een open deur in te trappen...
Sux6, Kees B.
> Je moet je gewoon voorstellen dat Excel in getallen helemaal GEEN punt
> of komma of wat voor TEKEN ook heeft staan. Kan ze dus ook niet
> vervangen.
[knip]
Hele heldere uitleg Kees. Bedankt daarvoor. Ik blijf echter met de vraag
worstelen (maar nu val ik in herhalingen) waarom de functie Vervangen in
het menu Bewerken vanuit het werkblad wél functioneert (2,25 wordt
keurig vervangen door 2.25) maar, opgenomen met de macro-recorder, niet
functioneert.
--
mvg
BBert