View Full Version : Page Break Dinâmico


kaos
24-07-2007, 10:41
Viva pessoal
Precisava da vossa ajuda para fazer uma macro de Word.
Preciso de inserir um page break sempre que o caracter "#" está presente no texto.
Isto é um documento que é importado de um ficheiro de texto e é para imprimir, mas para inserir um page break sempre que aparece o referido caracter e tem vários.
Obrigado

b1t dA3m0n
24-07-2007, 12:04
Experimenta com um macro assim:


Sub CreateLineBreaks()
'
' CreateLineBreaks Sub
'
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "#"
.Replacement.Text = "^l"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

kaos
24-07-2007, 13:55
bem, isso fez nada mais que um replace do caracter # por spaces
a intenção era fazer um page break em vez do replace...

b1t dA3m0n
24-07-2007, 14:24
bem, isso fez nada mais que um replace do caracter # por spaces
a intenção era fazer um page break em vez do replace...


Podias ter adaptado, assim o efeito de aprendizagem era maior :-D
Mas aqui vai:


Sub InsertPageBreak()
'
' InsertPageBreak
'
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "#"
.Replacement.Text = "#^m"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

kaos
24-07-2007, 17:15
obrigado já funciona, já fiz uma macro onde abre o ficheiro e faz pagebreaks e imprime.
o meu negócio é mais cobol e rpg...

obrigado pela ajuda

K0mA
24-07-2007, 17:34
Onde é que aprenderam o VBA do Microsoft Word ?
Algum livro ou sítio em especial ?