Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/06/2010, 11:35
oxikit
 
Fecha de Ingreso: junio-2010
Mensajes: 2
Antigüedad: 13 años, 11 meses
Puntos: 0
Información Modificar variables de varios doc

Hola,


Soy nuevo en VBA, y tengo que modificar dos campos en algunos cientos de .doc's, por lo que se me ocurrió hacer una macro desde un doc que modifique a todos los demás.... solo que no doy con la solución.
Los campos son un "label", sería modificarle el "caption" y ponerle la contraseña de formulario a cada archivo; ambas tareas las puedo hacer en un doc para el mismo doc, pero no logro hacerlo desde un doc para otros.
Las rutas las planeo tomar desde un txt, eso también lo he podido hacer por separado para que tome valores para modificar variables (label's) locales, me imagino que puedo poner rutas y pasarlas como string para que hagan las veces de nombre de archivo con todo y ruta.

Este es el código para proteger/desproteger de forma local un doc:

Sub LockUnlockFormToggle()

Dim Doc As Document

Set Doc = ActiveDocument
If Doc.ProtectionType <> wdNoProtection Then
Doc.Unprotect
ElseIf Doc.ProtectionType = wdNoProtection Then
Doc.Protect Type:=wdAllowOnlyFormFields, NoReset:=True, Password:="pass"
End If

End Sub


Este toma valores de un txt y los asigna a etiquetas locales - poco práctico pero funciona :

Sub LeeTxt()

Dim sFileName As String
Dim iFileNum As Integer
Dim sBuf As String
Dim Fields As String
Dim TempStr As String
Dim i As Integer

sFileName = "C:\Documents and Settings\Jery\Escritorio\lineas.txt"
'Verifica si existe el archivo
If Len(Dir$(sFileName)) = 0 Then
MsgBox ("Cannot find lineas.txt")
End If

iFileNum = FreeFile()
Open sFileName For Input As iFileNum

i = 1
Do While Not EOF(iFileNum)
Line Input #iFileNum, Fields
Select Case i
Case 1
Label1.Caption = Fields
Case 2
Label2.Caption = Fields
Case 3
Label3.Caption = Fields
Case 4
Label4.Caption = Fields
Case 5
Label5.Caption = Fields
Case 6
Label6.Caption = Fields
End Select
i = i + 1
Loop

End Sub


También he logrado abrir un doc externo, pero no paso de ahí :

Sub ModificaOtroWord()

'~~~~~~~~~~~~~~~~~~~~~~
' VARIABLES
'~~~~~~~~~~~~~~~~~~~~~~

Dim gNomFile As String

Dim wdApp As Object

'~~~~~~~~~~~~~~~~~~~~~~
' CODE
'~~~~~~~~~~~~~~~~~~~~~~

'Inputs doc file
gNomFile = "[Drive]:\[Ruta]\[archivo].doc"

'set wdApp reference
On Error Resume Next
Set wdApp = GetObject(, "Word.Application")
If Err.Number <> 0 Then
Set wdApp = CreateObject("Word.Application")
End If
On Error GoTo 0

'Set DOC file with option buttons to open
Set wd = wdApp.Documents.Open(gNomFile)
'wdApp.Visible = False
wdApp.Visible = True
MsgBox (wdApp.OLEFormat.Object.Label1.Caption)

MsgBox ("PaUSe")


0:
End Sub






Gracias de antemano por la ayuda,