Problemita en souce Busqueda/Reemplazo/

Iniciado por Wii900, 23 Septiembre 2009, 19:54 PM

0 Miembros y 1 Visitante están viendo este tema.

Wii900

Bien tengo este souce :

Código (vb) [Seleccionar]
Option Explicit

'***************************************************************************
'*  Name         : Buscar y Reemplazar En Word desde vb
'*  Controles    : Un CommandButton y tres textbox _
                 (txt_Buscar, txt_Buscar y txt_path )
'***************************************************************************

Function Buscar_Reemplazar_En_Word(Cadena_Origen As String, _
                                  Cadena_reemplazo As String, _
                                  Path_Word As String) As Boolean
   
   On Error GoTo Err_Buscar
   
   Dim Obj_Word As Object
   
   'Crea una nueva referencia para poder acceder al documento
   Set Obj_Word = CreateObject("Word.Application")

   ' aplicación de word no visible
   Obj_Word.Visible = False
   
   'Abre el archivo especificado mediante el método Open y algunas opciones
   Obj_Word.Documents.Open FileName:=Path_Word

   
   ' Coloca la selección al comienzo del documento
   Obj_Word.ActiveDocument.GoTo What:=wdGoToPage, _
                                        Which:=wdGoToNext, _
                                        Name:="1"
   
   
 
   Obj_Word.Selection.Find.ClearFormatting
   Obj_Word.Selection.Find.Replacement.ClearFormatting
   
   ' Propiedades de la búsqueda y reemplazo
   With Obj_Word.Selection.Find
       .Text = Cadena_Origen
       .Replacement.Text = Cadena_reemplazo
       .Forward = True
       .Wrap = wdFindAsk
       .Format = False
       .MatchCase = False
       .MatchWholeWord = False
       .MatchWildcards = False
       .MatchSoundsLike = False
       .MatchAllWordForms = False
   End With
   
   ' Ejecuta la búsqueda y reemplazo
   Obj_Word.ActiveWindow.Selection.Find.Execute Replace:=wdReplaceAll
   
  'Cierra el documento abierto ( TRue es para guardar los cambios )
   Obj_Word.ActiveDocument.Close True
   
   'Destruye las variables de objeto y cierra la aplicación de word
   Obj_Word.Quit False
   Set Obj_Word = Nothing
   
   'Ok
   Buscar_Reemplazar_En_Word = True
   
   Exit Function

'Error
Err_Buscar:
   MsgBox Err.Description, vbCritical
   
   On Error Resume Next
   'cierra la aplicación de word
   Obj_Word.Quit False
   'Elimina la referencia de la memoria
   Set Obj_Word = Nothing
End Function

Private Sub Command1_Click()
   
   Dim ret As Boolean
   
   ' Comienza la búsqueda y reemplazo en el documento
   ret = Buscar_Reemplazar_En_Word(txt_Buscar, _
                                   txt_Buscar, _
                                   txt_Path)

   If ret Then
       MsgBox " Listo ", vbInformation
   End If


End Sub

Private Sub Form_Load()
   Command1.Caption = " Buscar y reemplazar "
   txt_Buscar = " Acá colocar la palabra a buscar "
   txt_reemplazar = " Acá colocar la palabra de reemplazo"
   txt_Path = " Colocar el path del documento "
End Sub


Tengo Un Error En:

Código (vb) [Seleccionar]
    Obj_Word.ActiveDocument.GoTo What:=wdGoToPage, _

seba123neo

Hola, declara estas constantes arriba de todo y te va a funcionar, igulamente ese codigo tiene un pequeño error tenes que cambiar donde le pasa los parametros:

Código (vb) [Seleccionar]
Private Const wdGoToPage = 1
Private Const wdGoToNext = 2
Private Const wdFindAsk = 2
Private Const wdReplaceAll = 2


Código (vb) [Seleccionar]
ret = Buscar_Reemplazar_En_Word(txt_Buscar, _
                                    txt_Buscar, _
                                    txt_Path)


debe ser:

Código (vb) [Seleccionar]
ret = Buscar_Reemplazar_En_Word(txt_Buscar, _
                                    txt_reemplazar, _
                                    txt_Path)


esta mal puesto el textbox...

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson