PDA

View Full Version : [SOLVED:] bold everything in paragraph until find: ( or -



dagerr
03-06-2018, 12:49 AM
Hi,
I need a macro wich is bold everything in every paragraph until find: "(" or "-".
E.g.:Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do (eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut - aliquip ex ea commodo consequat.
Many Thanks

macropod
03-06-2018, 03:23 AM
Try:

Sub Demo()
Application.ScreenUpdating = False
With ActiveDocument.Range
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "[!\(\-]{1,}"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchWildcards = True
.Execute
End With
Do While .Find.Found
Do While InStr(.Text, vbCr) > 0
.MoveStartUntil vbCr, wdForward
.Start = .Start + 1
Loop
If .Text = "" Then Exit Do
If .End = ActiveDocument.Range.End Then Exit Sub
.Font.Bold = True
.Collapse wdCollapseEnd
.Find.Execute
Loop
End With
Application.ScreenUpdating = True
End Sub

dagerr
03-06-2018, 03:32 AM
It stops on:

.Execute
with error 5560

mana
03-06-2018, 03:43 AM
Sub test()

ActiveDocument.Range(0, 0).Text = vbCr

With ActiveDocument.Range.Find
.MatchWildcards = True

.Text = "^13[!^13]@[\(\-]"
.Replacement.Font.Bold = True
.Execute Replace:=wdReplaceAll

.Text = "[\(\-]"
.Font.Bold = True
.Replacement.Font.Bold = False
.Execute Replace:=wdReplaceAll


End With

ActiveDocument.Range(0, 0).Delete

End Sub


マナ

dagerr
03-06-2018, 04:03 AM
Thanks mana, it works but only when "(" and "-" is occur.
I want to bold whole paragraph if mentioned sign not occur in paragraph, so again e.g.:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do (eiusmod tempor incididunt ut labore et dolore magna aliqua
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut - aliquip ex ea commodo consequat
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat

gmayor
03-06-2018, 04:35 AM
How about


Sub Macro1()
Dim oRng As Range
Set oRng = ActiveDocument.Range
oRng.Font.Bold = True
With oRng.Find
Do While .Execute(FindText:=" (")
oRng.End = oRng.Paragraphs(1).Range.End - 1
oRng.Start = oRng.Start + 1
oRng.Font.Bold = False
oRng.Collapse 0
Loop
End With
Set oRng = ActiveDocument.Range
With oRng.Find
Do While .Execute(FindText:=" - ")
oRng.End = oRng.Paragraphs(1).Range.End - 1
oRng.Start = oRng.Start + 1
oRng.Font.Bold = False
oRng.Collapse 0
Loop
End With
lbl_Exit:
Set oRng = Nothing
Exit Sub
End Sub

mana
03-06-2018, 04:39 AM
Sub test2()
Dim r As Range

Set r = ActiveDocument.Range

r.Font.Bold = True

With r.Find
.MatchWildcards = True

.Text = "[\(\-]*^13"
.Replacement.Font.Bold = False
.Execute Replace:=wdReplaceAll
End With

End Sub



マナ

dagerr
03-06-2018, 04:53 AM
Both solution works! Thanks again.

macropod
03-06-2018, 05:05 AM
It stops on:

.Execute
with error 5560
In that case, change:
.Text = "[!\(\-]{1,}"
to:
.Text = "[!\(\-]{1;}"