Excel utilizar la funcion Find (VBA)

Copio un numero o texto de outlook. Lo quiero buscar con el método Find:what con VBA.

Si es texto lo quiero Trim(XXX).

¿Me pueden apoyar?

2 respuestas

Respuesta
2

Puedes poner ejemplos y explicar con más detalle lo que necesitas

Disculpa, pero no estoy entendiendo bien lo que necesitas, ¿quieres qué revise tu macro?

Esta es la Macro:

Copio los datos de cualquier archivo de Outlook, pdf y los pego con una Macro en la celde CR1

La segunda Macro limpia lel valor de la celda y trata de buscar este contanido en la hoja de excel.

Un valor  es 73260 y tengo hasta 8 de este, 73260A, 73260B, ETC.

 Jorge = Trim(Range("CR1"))
    Cells.Find(What:=Jorge, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
        xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate
  

Haber si entendí. Tú pones un valor en la celda CR1, ¿luego quieres que una macro busque ese valor en la misma hoja o en otra hoja?, ¿Quieres qué lo busque y si lo encuentra que se active la celda con el mismo valor?

Supongo que primero lo borras para que no encuentre es valor en la celda CR1, ¿correcto?

Pero no pusiste la macro completa. Por lo tanto te voy a crear una nueva.

Sub BuscarValor()
'Por.Dante Amor
    valor = [CR1]
    [CR1] = ""
    Cells.Find(valor, lookat:=xlPart).Activate
End Sub

Saludos.Dante Amor

Recuerda valorar la respuesta.

Lo que me mandaste lo encuentra una vez y borra el contenido de CR1.

Quiero, si se puere, que encuentre el siguiente ya que debo encontrar el ultimo:

73260, 73260A, 73260B, 73260C ETC.

te paso el código completa.

Sub Pasteeee()
'
' Macro1 Macro

    Range("CR1").Select
    ActiveSheet.Paste
End Sub
Sub Findeeee()
'
' Macro2 Macro
    Jorge = Trim(Range("CR1"))
    Cells.Find(What:=Jorge, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
        xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate
End Sub

No te entiendo, ¿quieres qué encuentre el primero? ¿El siguiente? ¿O el último?

Quiero el primero, luego el siguiente si lo hay y luego el siguiente, si lo hay.

Con tu código (Excelene) le agtregue esto y funciona perfecto

Sub Findeeee()
    valor = Trim([CR1])
  '  [CR1] = ""
    Cells.Find(valor, lookat:=xlPart, After:=ActiveCell, SearchDirection:=xlNext).Activate
End Sub

Muchas gracias!

Se puede hacer esto sin pegar el valor en ninguna celda?

Dante,

¿Se podría hacer sin tener que pegar el valor en la celda CR1 y asignarlo a una variable?

Prueba con la siguiente:

Sub GetClipBoardText()
'Act por.Dante Amor
   Dim DataObj As MSForms.DataObject
   Set DataObj = New MSForms.DataObject
   On Error GoTo Whoa
   DataObj.GetFromClipboard
   valor = DataObj.GetText(1)
   Cells.Find(valor, lookat:=xlPart, After:=ActiveCell, SearchDirection:=xlNext).Activate
   Exit Sub
Whoa:
   If Err <> 0 Then MsgBox "La memoria está vacía"
End Sub

Dante,

Como lo enviaste funciona con numerous y texto.

Tengo un problema: en ocasiones copio texto con un espacio de más y no encuentra el valor. Le agregue a tu codigo "valor = Trim(DataObj.GetText(1))" pero solo funciona con texto y no con numero.

¿Me apoyas?

Excelente información!

Puedes crear una nueva pregunta y pones un ejemplo de lo que tienes para entender.

Respuesta
1

Copio un numero de outlook. 255 lo llevo a Excel control F y lo busco.

Esto funciona con una macro sencilla pero cuando es texto o numero que trae un espacio al principio o al final no lo ejecuta.

Tambien me pide que ponga el codigo With End With.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas