Reemplazar datos de Word desde Excel

Estoy buscando un Macros en word que me ayude a reemplazar datos de word desde excel, se que se puede reemplazar palabras en word con la opción de reemplazar pero es algo tedioso ya que tengo que estar introduciendo palabra por palabra y eso quita bastante tiempo, Como ejemplo tengo un reporte en word que dice "MARÍA VA JUGANDO Y SALTANDO EN EL PARQUE DE SAN JERÓNIMO Y SE ENCUENTRA CON CARLOS A LAS 9:00 AM FRENTE DE UNA HELADERÍA", en el excel deseo tener una base de datos de las palabras que deseo reemplazar ya que en mi reporte son varias palabras, y de preferencia que el excel que servirá como base este en la misma carpeta de mi reporte de word, les agradeceria bastante

1 Respuesta

Respuesta
2

[Hola

Debes trabajar con un objeto "Word". Algo así:

Dim MiappWord As Object 
Set MiappWord = CreateObject("Word.Application") 
MiappWord. Documents. Open "C:\MiCarpeta\MiArchivo.docx" 

Para que todo se reemplace, usa un blucle:

Dim UltimaFila as Long
Dim Celda as Range
Let UltimaFila = Cells(Rows.Count, "A").End(xlUp).Row
For Each Celda in Range("A2:A" & UltimaFila)
.....
Next

Dentro del bucle debe ir algo así ya que con eso reemplazas usando un poco de VBA aplicado a objetos de Word desde tu Excel:

MiappWord.Selection.Find.ClearFormatting
MiappWord.Selection.Find.Replacement.ClearFormatting
    With MiappWord.Selection.Find
        .Text = Celda.Value
        .Replacement.Text = Celda.OffSet(1,0).Value
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = True
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
MiappWord.Selection.Find.Execute Replace:=wdReplaceAll

Lo he hecho de memoria, sin probar, pero acomodándolo debería de funcionar.

Comentas

Abraham Valencia

PD: Obvio reemplaza la ruta y nombre del archivo (y cualquier otra cosa que sea necesario para adaptar a tus necesidades

Abraham Valencia crees que me podrías enviar un ejemplo en archivos word y excel para entenderte mejor la aplicación del bucle y como reemplazar datos de word desde excel

Suponiendo que, tal cual has mostrado, en la fila 1 tienes los encabezados, en la columna "A" el texto a buscar y en la columna "B" el texto por el que se reemplazará, entonces esto debería ayudarte:

Sub ReemplazarDatos()
Dim MiappWord As Object
Dim UltimaFila As Long
Dim Celda As Range
Set MiappWord = CreateObject("Word.Application")
MiappWord.Documents.Open "C:\MiCarpeta\MiArchivo.docx"
Let UltimaFila = Cells(Rows.Count, "A").End(xlUp).Row
For Each Celda In Range("A2:A" & UltimaFila)
    MiappWord.Selection.Find.ClearFormatting
    MiappWord.Selection.Find.Replacement.ClearFormatting
    With MiappWord.Selection.Find
        .Text = Celda.Value 'Texto orginal
        .Replacement.Text = Celda.Offset(0, 1).Value ' texto por el que se reemplaza
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = True
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
MiappWord.Selection.Find.Execute Replace:=wdReplaceAll
Next Celda
End Sub

Obviamente reemplaza la ruta y nombre del archivo Word.

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas