Excel VBA buscar algo del portapapeles

Tengo una base de datos muy grande a la cual recurro muchas veces al dia para hacer consultas.

En ocasiones busco numerous y otras busco texto.

Tengo dos Macros:

1- Pega el valor del portapapeles, texto o numro, a celda CR1

2-Obtengo el valor de CR1, lew quito espacios (Trim) y lo busco.

Esto funciona perfectamente pero quiero ahorrarme el paso del pegado el la celda CR1 y buscarlo directamente.

¿Me pueden ayudar?

1 respuesta

Respuesta
2

Prueba lo siguiente:

La función isnumeric verifica si es número, entonces si es texto le quita los espacios

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)
    If Not IsNumeric(valor) Then
        valor = Trim(valor)
    End If
    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

No funciona copiando numerous.

solo funciona con texto.

Si copio los datos de Excel libro no funciona.

A mi me funciona con números y con letras, incluso si copio un número y lo busco en la hoja y en la hoja tengo el número como texto también lo encuentra.

Prueba con lo 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)
    If Not IsNumeric(valor) Then
        valor = Trim(valor)
    Else
        valor = Val(valor)
    End If
    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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas