Discussion:
Numeração automática
(too old to reply)
Albino
2007-05-26 00:13:34 UTC
Permalink
Olá
Alguem me pode ajudar a colocar numa folha do Word uma "caixa"/"Campo" para
numeração automática??
O intuito será de que cada circular que se escrever a sua numeração vá sendo
sequencial.
Obrigado
AlbinoP
JRod
2007-05-26 01:06:49 UTC
Permalink
Albino,
não sou expert em Word, mas isto é o que eu uso para sequenciar os meus
despachos:
________________________
Sub Sequenciar()
'
' Sequenciar Macro
' Macro recorded 18-04-2005 by Jorge Rodrigues
'
' Purpose : Efectuar um sequenciador numérico e gravar com número e data
'---------------------------------------------------------------------------------------
'

Dim MyDate
Dim oCreateField As Field
Dim oStory As Range

Dim Order
Dim BMRange As Range


MyDate = Date ' MyDate contém a data actual do Sistema

Order = System.PrivateProfileString("F:\Os Meus
Documentos\Despachos\Desp.Txt", _
"MacroSettings", "Info")

If Order = "" Then
Order = 1
Else
Order = Order + 1
End If

System.PrivateProfileString("F:\Os Meus Documentos\Despachos\Desp.txt",
"MacroSettings", _
"Info") = Order
Order = Format(Order, "000#")

Set BMRange = ActiveDocument.Bookmarks("Info").Range
BMRange.Text = Order & "/" & Right(MyDate, 4)
ActiveDocument.Bookmarks.Add "Info", BMRange
ChangeFileOpenDirectory "F:\Os meus documentos\Despachos\"

ActiveDocument.SaveAs FileName:="Despacho" & Format(Order, "000#") & "_"
& MyDate

For Each oStory In ActiveDocument.StoryRanges
For Each oCreateField In oStory.Fields
If oCreateField.Type = wdFieldDate Then oCreateField.Unlink
Next oCreateField
Next oStory

End Sub
________________________

No directório onde vais pôr os documentos, tens que ter um ficheiro txt com
uma única linha com o conteúdo 0 (zero) para que o doc, adicione 1. Assim,
da próxima vez o doc terá o número 1; da vez seguinte, 2 e assim
sucessivamente. No meu exemplo, o ficheiro txt chama-se "Desp.txt"

Depois, tens que criar um bookmark no texto, que, no exemplo, tem o nome
"Info", para inserir o número.
Ah!... este código tem mais qq coisa, como gravar com o número e com a data
do dia...

Se precisares, mando-te por mail o doc, ok?

Diz qq coisa.

JRod
Post by Albino
Olá
Alguem me pode ajudar a colocar numa folha do Word uma "caixa"/"Campo"
para numeração automática??
O intuito será de que cada circular que se escrever a sua numeração vá
sendo sequencial.
Obrigado
AlbinoP
Albino
2007-05-27 18:55:22 UTC
Permalink
Olá JRod
Bem, tentei efectuar a coisa seguindo as tuas instruções mas tenho algumas
duvidas(ignorancias):
1- BookMark será = a Hiperligação? Se for é só liga-lo ao ficheiro em Notpad
criado a directoria onde vão ficar os ficheiros? Isso eu fiz
2- Se não, como faço esse dito BookMark.
3- Como faço executar o código depois de ele inserido?
4- Copiei o codigo para o VBA em [Microsoft Wor Objects>>ThisDocument]
5- Ao executar "Run" noa barra de ferramentas dava este erro : [Run-time
error '5941' ---- O membro da colecção pedido não existe]
A meu ver e como referiste antes talvez seja melhor enviares o dito por mail
***@sapo.pt
Obrigado
Post by JRod
Albino,
não sou expert em Word, mas isto é o que eu uso para sequenciar os meus
________________________
Sub Sequenciar()
'
' Sequenciar Macro
' Macro recorded 18-04-2005 by Jorge Rodrigues
'
' Purpose : Efectuar um sequenciador numérico e gravar com número e data
'---------------------------------------------------------------------------------------
'
Dim MyDate
Dim oCreateField As Field
Dim oStory As Range
Dim Order
Dim BMRange As Range
MyDate = Date ' MyDate contém a data actual do Sistema
Order = System.PrivateProfileString("F:\Os Meus
Documentos\Despachos\Desp.Txt", _
"MacroSettings", "Info")
If Order = "" Then
Order = 1
Else
Order = Order + 1
End If
System.PrivateProfileString("F:\Os Meus Documentos\Despachos\Desp.txt",
"MacroSettings", _
"Info") = Order
Order = Format(Order, "000#")
Set BMRange = ActiveDocument.Bookmarks("Info").Range
BMRange.Text = Order & "/" & Right(MyDate, 4)
ActiveDocument.Bookmarks.Add "Info", BMRange
ChangeFileOpenDirectory "F:\Os meus documentos\Despachos\"
ActiveDocument.SaveAs FileName:="Despacho" & Format(Order, "000#") &
"_" & MyDate
For Each oStory In ActiveDocument.StoryRanges
For Each oCreateField In oStory.Fields
If oCreateField.Type = wdFieldDate Then oCreateField.Unlink
Next oCreateField
Next oStory
End Sub
________________________
No directório onde vais pôr os documentos, tens que ter um ficheiro txt
com uma única linha com o conteúdo 0 (zero) para que o doc, adicione 1.
Assim, da próxima vez o doc terá o número 1; da vez seguinte, 2 e assim
sucessivamente. No meu exemplo, o ficheiro txt chama-se "Desp.txt"
Depois, tens que criar um bookmark no texto, que, no exemplo, tem o nome
"Info", para inserir o número.
Ah!... este código tem mais qq coisa, como gravar com o número e com a
data do dia...
Se precisares, mando-te por mail o doc, ok?
Diz qq coisa.
JRod
Post by Albino
Olá
Alguem me pode ajudar a colocar numa folha do Word uma "caixa"/"Campo"
para numeração automática??
O intuito será de que cada circular que se escrever a sua numeração vá
sendo sequencial.
Obrigado
AlbinoP
Joao Livio [MVP]
2007-06-05 23:03:04 UTC
Permalink
Boas Albino!,

Uma boa ideia aqui
http://www.word.mvps.org/faqs/macrosvba/GetRowColSpan.htm

Cpts
Tito
Post by Albino
Olá JRod
Bem, tentei efectuar a coisa seguindo as tuas instruções mas tenho algumas
1- BookMark será = a Hiperligação? Se for é só liga-lo ao ficheiro em
Notpad criado a directoria onde vão ficar os ficheiros? Isso eu fiz
2- Se não, como faço esse dito BookMark.
3- Como faço executar o código depois de ele inserido?
4- Copiei o codigo para o VBA em [Microsoft Wor Objects>>ThisDocument]
5- Ao executar "Run" noa barra de ferramentas dava este erro : [Run-time
error '5941' ---- O membro da colecção pedido não existe]
A meu ver e como referiste antes talvez seja melhor enviares o dito por
Obrigado
Post by JRod
Albino,
não sou expert em Word, mas isto é o que eu uso para sequenciar os meus
________________________
Sub Sequenciar()
'
' Sequenciar Macro
' Macro recorded 18-04-2005 by Jorge Rodrigues
'
' Purpose : Efectuar um sequenciador numérico e gravar com número e data
'---------------------------------------------------------------------------------------
'
Dim MyDate
Dim oCreateField As Field
Dim oStory As Range
Dim Order
Dim BMRange As Range
MyDate = Date ' MyDate contém a data actual do Sistema
Order = System.PrivateProfileString("F:\Os Meus
Documentos\Despachos\Desp.Txt", _
"MacroSettings", "Info")
If Order = "" Then
Order = 1
Else
Order = Order + 1
End If
System.PrivateProfileString("F:\Os Meus
Documentos\Despachos\Desp.txt", "MacroSettings", _
"Info") = Order
Order = Format(Order, "000#")
Set BMRange = ActiveDocument.Bookmarks("Info").Range
BMRange.Text = Order & "/" & Right(MyDate, 4)
ActiveDocument.Bookmarks.Add "Info", BMRange
ChangeFileOpenDirectory "F:\Os meus documentos\Despachos\"
ActiveDocument.SaveAs FileName:="Despacho" & Format(Order, "000#") &
"_" & MyDate
For Each oStory In ActiveDocument.StoryRanges
For Each oCreateField In oStory.Fields
If oCreateField.Type = wdFieldDate Then oCreateField.Unlink
Next oCreateField
Next oStory
End Sub
________________________
No directório onde vais pôr os documentos, tens que ter um ficheiro txt
com uma única linha com o conteúdo 0 (zero) para que o doc, adicione 1.
Assim, da próxima vez o doc terá o número 1; da vez seguinte, 2 e assim
sucessivamente. No meu exemplo, o ficheiro txt chama-se "Desp.txt"
Depois, tens que criar um bookmark no texto, que, no exemplo, tem o nome
"Info", para inserir o número.
Ah!... este código tem mais qq coisa, como gravar com o número e com a
data do dia...
Se precisares, mando-te por mail o doc, ok?
Diz qq coisa.
JRod
Post by Albino
Olá
Alguem me pode ajudar a colocar numa folha do Word uma "caixa"/"Campo"
para numeração automática??
O intuito será de que cada circular que se escrever a sua numeração vá
sendo sequencial.
Obrigado
AlbinoP
Loading...