Saltar al contenido

ayuda con un error "1004" "No se puede obtener la propiedad VLookup de la clase Worksheetfunction"


Recommended Posts

publicado

Hola estimados foreros, es posible que me puedan apoyar por favor...no sé y la verdad no entiendo el porqué del error que arroja al querer registrar un nuevo item (sondaje), me explico... en la hoja "BD" hay un botón de "agregar", éste al pincharlo se dispara el formulario con algunos datos de la tabla, luego si es que quiero registrar un sondaje nuevo (botón registrar) , al momento de digitar cualquier tecla... se dispara inmediatamente un mensaje con el error mencionado en el título de este tema. Por lo que estoy estancado en este punto y no puedo seguir avanzando para dejar funcionando el resto de los botones. Adjunto el archivo por si alguien me puede ayudar a sacar este error por favor.

image.png.c63ae6e6343f4f502f0c51edc9702f02.png 

Formulario_ayudaexcel.xlsm

publicado

Hola

Creo que hay varios cambios que debes hacer, pero lo primero es que, si vas a usar vlookup tal como lo tienes, es mejor usar el evento Exit del textbox y no el Change y no olvides que si tienes varios códigos iguales en tu tabla, siempre te devolverá solo el primero de ellos. 

publicado

gracias por tu respuesta @Abraham Valencia, puse "Private Sub txt_sondaje_Exitsub()" por Change, me permite ingresar un nuevo registro, pero me derivan más problemas al continuar... y lo que mencionas de tener varios códigos iguales no lo entiendo, ya que todos los códigos son diferentes, quizás similares en algunas líneas, pero se supone que con distintas funciones. La verdad que soy novato en macros, y este formulario lo estoy siguiendo desde youtube, pero ahí no se le presenta este problema.

publicado

No es la mejor opción, pero para no tener que reorganizar todo el formulario, esto te puede servir:

Private Sub txt_sondaje_Change()
Dim Sondaje As Range
If txt_sondaje = Empty Then Exit Sub
Set Sondaje = Sheets("BD").Columns("B").Find(txt_sondaje, , , xlWhole)
If Not Sondaje Is Nothing Then
   txt_proyecto = Sondaje.Offset(, 1)
   txt_desde = Sondaje.Offset(, 2)
   txt_diametro = Sondaje.Offset(, 3)
   txt_hasta = Sondaje.Offset(, 4)
   txt_tipo = Sondaje.Offset(, 5)
End If
End Sub

 

publicado

muchas gracias maestro @Antoni, como siempre dando certeras soluciones para novatos como yo, implementé este código y puedo proseguir con este mini proyecto, estoy muy agradecido y doy este tema como solucionado!! hasta pronto gran maestro.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.