Error de Compilación en VBA Excel.

¿Me podrían ayudar con este problemita?

La verdad es que no comprendo el origen del error.

Lo que deseo realizar es una búsqueda de los números de teléfonos a partir de las primeras 3 letras de los nombres de los clientes en un listado. Pero al escribir algún dato en la casilla, aparece el error de compilación.

1 respuesta

Respuesta
2

[Hola

Es una mala práctica usar On Error Resume Next a menos que sea estrictamente necesario. Quita esa línea y comenta que mensaje de error exacto te manda y en qué línea.

Gracias por tu respuesta! Ya quite la línea que mencionaste, pero sigue ocurriendo el mismo error.

Abre las referencias y activa "Microsoft ActiveX Data Object Library 6.0", en donde 6.0 podría ser un número menor o mayor dependiendo de tu versión de Office.

Perfecto! Ya me permite escribir datos. Ahora ocurre otro error. Te dejo 4 imágenes, la primera muestra el error, la segunda imagen la linea que contiene el error, la tercera imagen la código userform1.textbox9 que se relaciona con el "sub" que tiene el problema. Y la cuarta imagen te muestro como se disponen las columnas donde están los datos a buscar.

Te pido disculpas por mi ignorancia, soy novato en excel y VBA. Tu ayuda lo valoro mucho!

[Hola

Si eres novato, estás intentando correr antes de caminar, por si acaso je je je. Yendo al dilema, para saber con certeza cuál es el dilema pues tendrías que colocar el archivo en algún Drive y colocar por aquí el enlace para poder ver el archivo, y además tendrías que mencionar en específico qué es lo que haces cuando ocurre el error.

Muchas gracias Abraham, la verdad es que si, pretendo correr antes de caminar, pero bueno me tope con esta problemática y excede de mis conocimientos.

https://drive.google.com/file/d/1Ok0jrjMOnPI_pvJDLfOjhpFHSvwWtqrm/view?usp=sharing 

En ese enlace te dejo el archivo excel, y el error ocurre cuando le doy click al botón de whatsapp y tipeo 3 caracteres en el cuadro "Escriba mínimo tres primeras letras..."

[Hola

Qué quieres o supones que hace esta línea:

Sql = "SELECT * FROM [" & "Clientes$" & "] WHERE Ucase(" & A.Range("B4") & ") LIKE Ucase('%" & UserForm1.TextBox9 & "%') ORDER BY Nombre ASC"

Comentas para poder entenderte.

Quiero que luego de escribir 3 caracteres en el textbox9 aparezcan en la lista desplegable los nombres de la columna C de la hoja Clientes que coincidan con los 3 caracteres escritos, y que cada nombre que aparezca se concatene el numero de teléfono de la columna DE y el correo electrónico de la columna E.

Si funciona bien esto, automáticamente aparece el numero de teléfono en el textbox8.

El codigo deberia decir WHERE Ucasa(" & A.Range("C4")..... pero igualmente me tira el mismo error.

[Hola

Estimado, si vas a usar ADO, no solo debes leer sobre VBA, sino también sobre SQL, además, dale una leída a "normalización" de bases de datos. En tu hoja Clientes borra las filas 1 y 3, las vacías, luego cambia esta línea del siguiente modo:

Sql = "SELECT * FROM [Clientes$] WHERE NOMBRE LIKE '%" & LCase(TextBox9) & "%' ORDER BY NOMBRE ASC"

Borra esta línea (lee sobre las propiedades de los ListBox):

UserForm1.ListBox3.Column = 3

Y cambia también estas líneas:

 UserForm1. ListBox3. List(UserForm1. ListBox3.ListCount - 1, 1) = IIf(IsNull(rs. Fields(1). Value), "", Trim(rs. Fields(1). Value))
    UserForm1. ListBox3. List(UserForm1. ListBox3.ListCount - 1, 2) = IIf(IsNull(rs. Fields(2). Value), "", Trim(rs. Fields(2). Value))

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas