** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Word
  Mensajes nuevos Mensajes nuevos RSS - Busqueda de un texto en un documento Word
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoBusqueda de un texto en un documento Word

 Responder Responder
Autor
Mensaje
alfonsoy Ver desplegable
Habitual
Habitual


Unido: 21/Mayo/2013
Localización: España
Estado: Sin conexión
Puntos: 82
Enlace directo a este mensaje Tema: Busqueda de un texto en un documento Word
    Enviado: 06/Octubre/2021 a las 10:59
Hola buenos días,

Quería ver si me podían ayudar con este problema que tengo. 

Desde Access tengo una rutina que carga un documento de Word y a continuación localiza un determinado texto. Hasta aquí no hay ningún problema.

El problema viene cuando ese texto que busco está dentro de una tabla en el documento , es ahí cuando no localiza el patrón de búsqueda.

Utilizo el método   selection.Find

Selection.Find.Text = "Patrón de busqueda"
Selection.Find.Execute

Por favor me podrían ayudar ?


Muchas gracias.


Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Enlace directo a este mensaje Enviado: 06/Octubre/2021 a las 11:14
Una tabla lo que contiene son celdas, así que,  tendrás que recorrer las tablas que tengas en el documento word y sus celdas asociadas.



Para hacer referencia al texto de una celda en concreto:

ActiveDocument.Tables(1).Cell(1, 1).Range.Text
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3523
Enlace directo a este mensaje Enviado: 06/Octubre/2021 a las 11:58
Hola.
En office 2019, en otras versiones ni idea, el siguiente código sacado con la grabadora de macros y añadiendo el objeto word:

Dim miword As Object
Set miword = CreateObject("word.application")
miword.Visible = True
miword.documents.Add CurrentProject.Path & "\prova1.docm"
    miword.Selection.Find.ClearFormatting
    With miword.Selection.Find
        .Text = "mitextobúsqueda"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = 1 '''''wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    miword.Selection.Find.Execute

encuentra el mitextobúsqueda en una tabla metida dentro de una celda de otra tabla
Espero que ayude a resolver la duda.
Ya comentas.
Un saludo a todos
Arriba
alfonsoy Ver desplegable
Habitual
Habitual


Unido: 21/Mayo/2013
Localización: España
Estado: Sin conexión
Puntos: 82
Enlace directo a este mensaje Enviado: 07/Octubre/2021 a las 08:43
Gracias por vuestra ayuda , al final el campo a localizar no estaba en una tabla sino en un cuadro de texto, pero el problema era exactamente el mismo , no me localizaba el patrón de búsqueda.

@prga  .  Con esa rutina no me funcionaba (utilizo Word 2010) pero me ha servido como base para la solución final recorriendo en bucle las formas tipo textBox y buscando en cada una de ellas.


Sub buscaTextBox()
    Dim shp As Shape
    
    For Each shp In ActiveDocument.Shapes
        If shp.Type = msoTextBox Then
            shp.Select
            Selection.ShapeRange.TextFrame.TextRange.Select
            If existeTexto("GF/21003777") Then
                Exit For
             End If
        End If
    Next
End Sub

Function existeTexto(strTexto As String) As Boolean

    With Selection.Find
      .ClearFormatting
      .Text = strTexto
      .Forward = True
      .Wrap = wdFindStop
      .Format = False
      .MatchCase = False
      .MatchWholeWord = False
      .MatchWildcards = False
      .MatchSoundsLike = False
      .MatchAllWordForms = False
      .Execute
    End With
    If Selection.Find.Found Then
         existeTexto = True
       Else
         existeTexto = False
    End If
End Function

Este hilo ya se puede cerrar y nuevamente gracias a todos.

Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable