[VBA] Word vervangen alleen binnen selectie

Pagina: 1
Acties:
  • 583 views sinds 30-01-2008
  • Reageer

  • Phoolie
  • Registratie: Juni 2002
  • Laatst online: 09:09
Weet iemand hoe ik in VBA kan aangeven dat ik alleen binnen een gemaakte selectie wil zoeken en vervangen. Ik heb dit geprobeerd, maar ik krijg het alleen voor mekaar om in het hele document te zoeken en vervangen.

Wanneer ik dit handmatig probeer krijg ik, nadat de selectie is doorzocht en waar nodig vervangen, de vraag of ik ook in de rest van het document wil zoeken en vervangen. Dit krijg ik echter in VBA niet voor mekaar.

Ik hoop dat iemand me hier mee kan helpen.

Alvast bedankt.

  • Bud_s
  • Registratie: Maart 2002
  • Laatst online: 15-07 10:42
Je kan het gewoon ook als macro opnemen, maar kijk hieronder eens :-)

code:
1
2
3
4
5
6
7
8
9
10
11
12
Sub zoek()
'
' zoek Macro
' De macro is opgenomen op 3-10-2007 door Bud_s.
'

'
    Range("E6:F21").Select
    Selection.Replace What:="A", Replacement:="B", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub


Hier word dus "A" Vervangen door "B" in E6:F21

  • Phoolie
  • Registratie: Juni 2002
  • Laatst online: 09:09
Bud_s schreef op woensdag 03 oktober 2007 @ 15:06:
Je kan het gewoon ook als macro opnemen, maar kijk hieronder eens :-)

code:
1
2
3
4
5
6
7
8
9
10
11
12
Sub zoek()
'
' zoek Macro
' De macro is opgenomen op 3-10-2007 door Bud_s.
'

'
    Range("E6:F21").Select
    Selection.Replace What:="A", Replacement:="B", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub


Hier word dus "A" Vervangen door "B" in E6:F21
Ja, maar dat werkt dus niet in Word. Tenminste, het is mij niet gelukt.

  • Sleepie
  • Registratie: Maart 2001
  • Laatst online: 16-07 21:36
Opnemen van een macro in Word 2007 levert dit op.
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub Macro1()
'
' Macro1 Macro
'
'
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "een"
        .Replacement.Text = "de"
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
End Sub


Geen idee of het in oudere versies van Word ook werkt.

  • Bud_s
  • Registratie: Maart 2002
  • Laatst online: 15-07 10:42
Wederom met de Macro Recorder :

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub zoek2()
'
' zoek2 Macro
' Macro opgenomen op 3-10-2007 door Bud_s'
    Selection.WholeStory
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "A"
        .Replacement.Text = "B"
        .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


offtopic:
SPUIT11

  • Phoolie
  • Registratie: Juni 2002
  • Laatst online: 09:09
Bud_s schreef op woensdag 03 oktober 2007 @ 15:14:
Wederom met de Macro Recorder :

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub zoek2()
'
' zoek2 Macro
' Macro opgenomen op 3-10-2007 door Bud_s'
    Selection.WholeStory
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "A"
        .Replacement.Text = "B"
        .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


offtopic:
SPUIT11
Ik had ook al een Macro opgenomen, maar daar stond Selection niet voor .Find.Execute Replace

Het werkt nu.

Bedankt.

  • Phoolie
  • Registratie: Juni 2002
  • Laatst online: 09:09
Helaas werkt het toch nog steeds niet, nog steeds wordt er vervangen door het hele document.

Iemand anders nog een idee?

Verwijderd

kijk eens naar het verschil tussen de 2 oplossingen : selection.wholestory geeft zelfs zonder de minste vba notie te hebben een hint dat het niet doet wat je wenst. dus is het de andere aangeboden oplossing die dit niet bevat.
Pagina: 1