vervangen met macro

Status
Niet open voor verdere reacties.

fihod

Gebruiker
Lid geworden
3 sep 2004
Berichten
151
Kan iemand mij op weg helpen om het volgende te vervangen in Word via een macro:
alle aanduidingen van afstanden vb 12.24m
moeten gewijzigd worden in 12,24 m

Dus het punt moet vervangen worden door een komma en er moet een spatie komen tussen het cijfer der honderdtallen en de eenheid der lengtemaat.
 
sorry,
honderdtallen moet wel degelijk honderdsten zijn.
 
Hallo Fihod


daar istie

Sub Macro3()
'
' Macro3 Macro
' Macro opgenomen op 23-9-2004 door AMD
'
Selection.WholeStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "12.24m"
.Replacement.Text = "12,24 m"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub


succes
Jos
 
Alvast bedankt voor het antwoord, Docwell, maar het probleem ligt niet enkel bij 12,24m.
Het zit zo: ik krijg vaak teksten onder ogen waar uitslagen van atletiekmeetings in voor komen. Daarin staan steevast de afstanden verkeerd vermeld.
Wat er feitelijk moet gebeuren is dat alle afstanden - van het type zoals in het opgegeven voorbeeld - via een macro vervangen worden door de juiste schrijfwijze.

dus:
10.25m moet zijn 10,25 m
53.42m moet zijn 53,42 m
enz...
 
Hai Fihod, :D

Wat jij wilt is prima mogelijk, ik mis alleen nog wat vitale info!

* Wat is jou Office-versie! (mijn code gaat uit van een recente versie van Office)
* Ik weet niet of er meer gegevens in jou document zitten die aan het criterium voldoen van:
Nummers zowel links als rechts van de PUNT.

Als ik deze twee punten zeker weet dan kan het noodzakelijk zijn een kleine aanpassing te doen aan de code, in principe moet ie zo werken.

De code:
Code:
Sub DotsForComma()
Application.ScreenUpdating = False
Selection.HomeKey Unit:=wdStory
    With Selection.Find
        .ClearFormatting
        Do While .Execute(FindText:="^#.^#", Forward:=True) = True
            If .Found = True Then
                Selection.Text = _
                Replace(Selection.Range, ".", ",", , , vbTextCompare)
                Selection.Move Unit:=wdLine, Count:=1
            End If
        Loop
    End With
End Sub

Succes! :thumb:
 
Bedankt voor de code Joost.

Als je me toestaat eerst een kleine bemerking over wat er nog niet gebeurt, nl. de spatie tussen het laatste decimaal cijfer en de eenheid van afstand.
12.23m wordt 12,23m en zou eigenlijk moeten zijn 12,23 m

Wat betreft de versie van Office: ik beschik over de versie 2002 NL.

Andere gegevens in mijn document hebben betrekking op tijden zoals:
15"20 dit is dus van een andere orde
maar er staat ook wel eens 19.30 u en daar moet de punt wel blijven staan.
 
Hai, :D

Geen punt hoor geef vooral input! :p

De aangepaste code:
Code:
Sub DotsForCommaII()
Application.ScreenUpdating = False
Selection.HomeKey Unit:=wdStory
    With Selection.Find
        .ClearFormatting
        Do While .Execute(FindText:="^#^#.^#^#", Forward:=True) = True
            If .Found = True Then
                With Selection
                        .MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
                    If Right(.Range, 1) = "m" Or Right(.Range, 1) = "M" Then
                        .Text = _
                        Replace(Selection.Range, ".", ",", , , vbTextCompare)
                        .Text = _
                        Replace(Selection.Range, "m", " m", , , vbTextCompare)
                        .Move Unit:=wdLine, Count:=1
                    Else
                        .Move Unit:=wdLine, Count:=1
                    End If
                End With
            End If
        Loop
    End With
End Sub

Het is nu exact volgens de wensen geprogrammeerd.

Succes! :thumb:
 
Joost, je bent super!
:thumb:
Hartelijk dank voor de oplossing, dit bespaart me ellenlang speuren binnen verslagen om alles netjes volgens de binnormen te zetten.
 
Geplaatst door fihod
Joost, je bent super!
:thumb:
Hartelijk dank voor de oplossing, dit bespaart me ellenlang speuren binnen verslagen om alles netjes volgens de binnormen te zetten.
Hai Fihod, :D

Met veel plezier uitgevoerd! Graag gedaan! :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan