Foros del Web » Programación para mayores de 30 ;) » Programación General »

Modificar variables de varios doc

Estas en el tema de Modificar variables de varios doc en el foro de Programación General en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/06/2010, 11:35
 
Fecha de Ingreso: junio-2010
Mensajes: 2
Antigüedad: 13 años, 10 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,
  #2 (permalink)  
Antiguo 22/06/2010, 07:52
 
Fecha de Ingreso: marzo-2009
Ubicación: Santa Marta
Mensajes: 73
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Modificar variables de varios doc

se, que es algo tarde y que posiblemente ya solucionaste tu problema pero podrias especificar que campos del doc y como esta estructurado este...
  #3 (permalink)  
Antiguo 22/06/2010, 08:34
 
Fecha de Ingreso: junio-2010
Mensajes: 2
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Modificar variables de varios doc

gracias decoArguello,


Los doc's que tengo que modificar son formularios con muchos campos, todos ellos checkbox's y optionbutton's, solo tiene un label, que le he dejado el nombre original (label1), es al que le quiero modificar el caption.

Ahora bien, también necesito ponerles a todos contraseña de formulario.

Todo esto lo quisiera hacer desde un solo doc para que modifique todos los formularios.. se que es posible pues he visto que desde un xls se pueden modificar varios xls's (y varios doc's irónicamente).

Gracias por tu ayuda, saludos,

Etiquetas: doc, modificar, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:16.