Esta macro nos facilita
el ingreso de datos hacia el Excel de una forma práctica y sencilla, como
llevar datos a Excel desde un formulario.
A los cuadros de texto les ponemos los siguientes nombres
(Name) en sus respectivas propiedades.
(Name)=txtcliente
(Name)=txtruc
Lo mismo para los botones cambiamos la propiedad (Name).
(Name)=cmdgrabar
(Name)=cmdsalir
El nombre del formulario también es muy importante.
(Name)=frmcliente
No se olviden que desde la propiedad caption podemos poner el
nombre que se va a mostrar al usuario en dicho elemento.
¡Listo!, una vez hecho eso le damos doble clic al botón LLEVAR A EXCEL para ir a visual basic y comenzar la programación
de dicho botón, que es la siguiente.
Sheets("cliente").Select
nr = Application.WorksheetFunction.CountA(Range("a:a"))
If txtcliente = "" Then
MsgBox "INGRESE CLIENTE"
txtcliente.SetFocus
Exit Sub
End If
x = Len(txtruc)
MsgBox x
If x <> 3 Then
If Not (IsNumeric(txtruc)) Then
MsgBox "INGRESE RUC"
txtruc = ""
txtruc.SetFocus
Exit Sub
Else
MsgBox "ingrese numero de 3 digitos"
txtruc = ""
txtruc.SetFocus
Exit Sub
End If
End If
For x = 2 To nr
If Not (IsNumeric(txtruc)) Then
MsgBox "RUC INCORRECTO"
txtruc = ""
txtruc.SetFocus
Exit Sub
Else
If Val(Cells(x, 1)) = Val(txtruc) Then
MsgBox "RUC ya existe"
txtruc = ""
txtruc.SetFocus
Exit Sub
End If
End If
Next
Cells(nr + 1, 1) = txtruc
Cells(nr + 1, 2) = txtcliente
txtruc = ""
txtcliente = ""
txtcliente.SetFocus
End Sub
Ahora vamos al Excel y desde la ficha programador vamos a
insertar un botón de comando, también añadimos texto como se muestra en la
siguiente imagen.
El nombre de la hoja le ponemos cliente, como se muestra en la imagen.
Ahora damos
doble clic a nuestro botón Ingresar
Datos para ir a visual basic donde programamos lo siguiente.
Private Sub
cmdcliente_Click()
frmcliente.Show
End Sub
Como se
muestra en la siguiente imagen.
Del código tenemos lo siguiente:
Sheets("cliente").Select, es
nuestra hoja donde se ejecutara la macro y donde se ingresaran los datos del
formulario.
nr =
Application.WorksheetFunction.CountA(Range("A:A")), con este
código lo que hacemos es decirle al visual basic que llame una función del
excel que en este caso es la función contara,
esta función cuenta los datos ingresados en la columna (A:A) y nos dará el número
de celdas que están con datos, siempre que llamemos a una función de Excel
debemos colocarla en inglés.
y = Len(txtruc), Len cuenta la cantidad
de dígitos que se han ingresado en nuestro cuadro de texto y estos son
almacenados en la variable “y”.
For x = 2 To nr, aquí tenemos un bucle
que inicia en 2 y termina en al valor
que no da nr.
If Val(Cells(x, 1)) = Val(txtruc) Then,
esta condicinal lo que hace es comparar los datos de las celdas con el dato de
nuestro cuadro de texto para saber si dichos datos ya existen y que no se vuelvan
a repetir.
Hola, tengo una inquietud, como puedo poner en un cuadro de texto de un formulario un texto que tengo en una hoja de excel, cual es el código para llamar que ponga lo de la pagina de excel... gracias
ResponderEliminarquieres llamar a la hoja de excel o a una celda en especifico
Eliminarhola amigo muy buenas tardes, de antemano lo felicito y doy gracias por su buena explicacion de verdad me has ayudado mucho, ya que he creado por medio de tu curso un control de inventario de entradas y salidas y ya lo tengo avanzado un 98% execto un pequeño problema. me gustaria me enviaras tu correo por favor. muchas gracias.
ResponderEliminarmi correo es eliwad.wd@gmail.com
ResponderEliminarHola Walter Bedregal necesito de su colaboración. Deseo ingresar unos dígitos a una lista de excel ya existente. ¿Cómo lo puedo hacer? mi base de datos tiene más de 2500 clientes. saludos. Irving Castillo
ResponderEliminarHola Walter Bedregal necesito de su colaboración. Deseo ingresar unos dígitos a una lista de excel ya existente. ¿Cómo lo puedo hacer? mi base de datos tiene más de 2500 clientes. saludos. Irving Castillo
ResponderEliminar