Error 13 no coinciden los tipos Vba Excel

Estaba programando una macro que, a través de un formulario, ingresara los datos de otro libro (un registro) en la hoja inicial.

La búsqueda de estos datos se realizaría a través de una macro que simula el funcionamiento de la función buscar vertical.

Un código (ej: P2123) sería buscado en el registro, una vez encontrado el código mediante la macro de buscar vertical se meterían los datos correspondientes a ese código en el formulario del libro inicial y a partir de éste se introducirían en unas celdas de la misma.

El error aparece al utilizar el código de BV ( VLookup), y salta un cuadro diciendo "no coinciden los tipos" y la macro se detiene en el Msgbox del código que aparece a continución:

Private Sub BuscarCod_Click()
Dim LookupValue As Variant
Dim LookupRange As Range
Dim Codi As Variant
Dim Texto As String

Codi = InputBox("Ingrese código de muestra")
Range("A1").Value = Codi

Texto = " Cargando datos"
Application.StatusBar = Texto 

Workbooks.Open ("C:\Users\USUARIO\Desktop\\RG-19v08_2014-03.xlsx")

Set LookupRange = Sheets("NOVIEMBRE").Range("A8:L1000")
LookupValue = Application.VLookup(Codi, LookupRange, 5, False)
MsgBox (LookupValue) 'la macro se detiene aqui

ActiveWorkbook.Close
Cod.Value = LookupValue
Application.StatusBar = False
End Sub

Les agracedecía mucho que me pudieran ayudar.

1 respuesta

Respuesta
1

La función VLookup, regresa error si no encuentra el dato. Te anexo la macro con la actualización, para verificar si es error.

Private Sub BuscarCod_Click()
    Codi = InputBox("Ingrese código de muestra")
    Range("A1").Value = Codi
    Texto = " Cargando datos"
    Application.StatusBar = Texto
    Workbooks.Open ("C:\Users\USUARIO\Desktop\\RG-19v08_2014-03.xlsx")
    '
    Set LookupRange = Sheets("NOVIEMBRE").Range("A8:L1000")
    LookupValue = Application.VLookup(Codi, LookupRange, 5, False)
    If IsError(LookupValue) Then
        MsgBox "no se encontró el dato"
    Else
        MsgBox (LookupValue) 'la macro se detiene aqui
    End If
    '
    ActiveWorkbook.Close
    Cod.Value = LookupValue
    Application.StatusBar = False
End Sub

Esta parte de la macro Cod.Value = Lookupvalue, no sé que tienes en Cod, pero a mí no me funciona.

Sí, cod es un textbox del formulario. Mi intención es introducir el valor que devuelve la función vlookup en uno de los textbox del formulario, para comprobar los datos y luego darle un boton de aceptar para introducirlos en las celdas de la hoja excel..

El código que tecleo esta en el otro libro de excel, por lo que no se porque no lo encuentra. Un ejemplo del código es P3143

He realizado la modificación y el cuadro de texto siempre me dice que no se ha encontrado el valor buscado.

Ahora la macro se detiende en la linea  Cod.Value = Lookupvalue.

Gracias por su ayuda.

Prueba con esto

Set LookupRange = ActiveWorkbook.Sheets("NOVIEMBRE").Range("A8:L1000")

Se me olvido comentar que además el mensaje de error muestra lo siguiente:

Se ha producido el error '-2147352571 (80020005)' en tiempo de ejecución:

No se puede configurar la propiedad value, los tipos no coindicen.

Presiona depurar y dime en qué línea de la macro se detiene

He intentado utilizar la función buscarV manualmente en el registro, y da error, puede ser por el código que busco (P2143). Creo que tendría que ser solamente numérico

No importa si es numérico o alfanumérico, si el dato existe no regresa error

Ya no me dijiste en dónde se detiene la macro

Ahora la macro se detiende en la linea  Cod.Value = Lookupvalue.

Aunque el error creo que viene dado por el código que indtroduje, por eso la función VLookup da error.(N/A, utilizando BV manualmente).

Intentare hacerlo con un bucle o utilizando otra función.

Gracias por su ayuda.

Si se detiene en cod. Value, es porque tienes que tener un control que se llame cod

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas