Para los que saben o algo han escuchado de los formularios en Excel, reconocen que esta herramienta es un elemento fundamental en lo que se refiere a la optimización de procesos y productividad cuando se trabaja con en Excel en sus múltiples usos. Con base en el conocimiento que se tenga de esta herramienta, el alcance al que se puede llegar es mucho mayor, razón por la cual hemos decidido compartir cinco vídeos correspondientes a los formularios en Excel, el de la presente entrega corresponda a la primera de estas cinco, la cual corresponde a Día 36, Formularios en Excel VBA: Ingresar datos sin duplicados para hacer una base de datos en Excel #Reto40Excel 2016.
Con los formularios en Excel se pueden automatizar el ingreso de información permitiendo controlar el ingreso incorrecto de la información, permite ingresar los datos de una forma más fácil y rápido y si la pregunta es ¿cómo crear una base de datos en Excel?, a través de los formularios de Excel esta necesidad se puede realizar de una forma óptima, ya que permite organizar la información y definir controles para que la base de datos en Excel tenga información consistente, disponible y no redundante.
En el material de hoy se explica paso a paso cómo trabajar con Formularios en Excel VBA con el fin de Ingresar datos sin duplicados para hacer una base de datos en Excel. Para realizar esto es importante tener en cuenta qué información se va a almacenar, qué tipo de datos se tendrán en cuenta para cada campo y sobre todo, cuál es el campo o campos llaves que permitirán realizar la evaluación para definir si un registro se repite o no, en el caso de hoy se explica el uso de formularios en Excel para el ingreso de datos de clientes, donde no se permita el ingreso de un cliente cuyo número de identificación se ha ingresado previamente, es decir, solo se permitirá el ingreso o registro a la base de datos de Excel, aquellos registros cuyo número de identificación no exista en la base de datos de Excel.
Los pasos para trabajar con formularios en Excel VBA con el fin de Ingresar datos sin duplicados para hacer una base de datos en Excel son los siguientes
- Crear función VBA para controlar el ingreso de número de identificación repetida
- Crear función que registre la información en la hoja de cálculo de Excel, la cual utiliza o hace el llamado a la función que se menciona en el punto anterior
- Crear formulario en Excel con VBA para ingresar datos sin duplicados
- Validar que se ingresen los datos completos desde el formulario en Excel
- Adicionar botón en formulario en Excel con el fin que haga el llamado a la función que registra la información
- En el caso que no exista registro con el número de identificación que se ingresa, se debe mostrar mensaje informando la novedad, de lo contrario se ingresa
- Cuando se registre la información, se debe mostrar mensaje exitoso de confirmación de la operación y se debe limpiar la información que se encuentran en los campos de los formularios en Excel
Elementos que se explican para crear Formularios en Excel VBA con el fin de Ingresar datos sin duplicados para hacer una base de datos en Excel:
– Formularios en Excel
– Base de datos en Excel
– Formulario VBA Excel
– Ingreso de datos sin duplicados
Para no perderte nada de lo que compartimos en las redes sociales, puedes seguirnos a través de los siguientes medios:
Youtube: https://goo.gl/FrswaC
Facebook: https://goo.gl/W5dIsa
Twitter: https://twitter.com/ee_excel
Instagram: https://goo.gl/xadGB5
Linkedin: https://goo.gl/Os1boH
A continuación la explicación detallada para Ingresar datos sin duplicados para hacer una base de datos en Excel:
Click >> Aquí << para descargar ejercicio del día
1) Recibe estos vídeos GRATIS >> https://goo.gl/FrswaC
2) Suscríbete a este curso gratuito para aumentar tu productividad en Excel un 80% y obtén 4 regalos adicionales al suscribirte a este curso: http://goo.gl/zNqh0o
Artículos anteriores:
- Día 35 – Actualizar y eliminar en Access desde Excel #Reto40Excel 2016
- Día 34 – ¿Cómo Insertar en Access desde Excel? #Reto40Excel 2016
- Día 33 – Consultar en Access desde Excel con varias condiciones SQL y limpiando datos #Reto40Excel 2016
- Día 32 – Consultar en Access desde Excel con condición SQL #Reto40Excel 2016
- Día 31 – Consultar Tabla Access desde Macro Excel VBA #Reto40Excel 2016
- Día 30 – Lista desplegable en Excel 2016 sin Duplicados #Reto40Excel 2016
- Día 29 – Fórmulas Matriciales en Excel – Nivel Avanzado #Reto40Excel 2016
- Día 28 – Fórmulas Matriciales en Excel – Nivel Básico #Reto40Excel 2016
- Día 27 – Cómo mostrar u ocultar hojas con hipervínculos en Excel #Reto40Excel 2016
- Día 26 – Crear hipervínculos en Excel a las hojas automáticamente #Reto40Excel 2016
- Día 25 – Consultar por Fila y Columna en Excel con la función SUMA #Reto40Excel 2016
- Día 24 – Gestión de actividades en Excel, cronograma en Excel – Parte 2 #Reto40Excel 2016
- Día 23 – Gestión de actividades en Excel Parte 1 #Reto40Excel 2016
- Día 22 – Exportar Excel a PDF con macros de Excel #Reto40Excel 2016
- Día 21 – Diferentes listas desplegables en Excel en una misma celda con validación de datos #Reto40Excel 2016
- Día 20 – Cómo importar hojas de Excel a Excel #Reto40Excel 2016
- Día 19 – Control de horas ingresadas con Formato condicional en Excel #Reto40Excel 2016
- Día 18 – Tablas dinámicas en Excel – ¿Cómo agrupar manualmente? #Reto40Excel 2016
- Día 17 – Crear nuevos archivos en Excel a partir de la hojas, copiar hojas de Excel automáticamente #Reto40Excel 2016
- Día 16 – UDF: Función Definida por el usuario Básica #Reto40Excel 2016
- Día 15 – Recordatorio en Excel cuando falten días para una fecha – Parte 2 #Reto40Excel 2016
- Día 14 – Recordatorio en Excel cuando falten días para una fecha – Parte 1 #Reto40Excel 2016
- Día 13 – Macro en Excel para ingresar datos con mensaje de confirmación #Reto40Excel 2016
- Día 12 – Valores más altos en Excel sin repetirlos #Reto40Excel 2016
- Día 11 – Emitir sonido Beep en Excel con macro VBA #Reto40Excel 2016
- Día 10 – Insertar Comentarios en Excel con macros en Excel #Reto40Excel 2016
- Día 9 – Ingresos y Egresos en Excel con Macro en Excel #Reto40Excel 2016
- Día 8 – Comodines en Excel #Reto40Excel 2016
- Día 7 – Macro en Excel para extraer datos con condiciones #Reto40Excel 2016
- Día 6 – Macro en Excel para abrir archivos externos con condición IF – Reto40Excel v.2016
- Día 5 – Sumar últimas celdas en Excel – Reto40Excel v.2016
- Día 4 – Formato condicional para mostrar repeticiones a partir de una variable – Reto40Excel v.2016
- Día 3 – Ordenar con letras y números en Excel – Reto40Excel v.2016
- Día 2 – Definir cálculo con Función SI y lista desplegable en Excel – Reto40Excel v.2016
- Día 1 – Validación de datos en Excel para limitar cantidad y contenido en una celda – Reto40Excel v.2016
- Lanzamiento de Reto40Excel v.2016
HOLA INGENIERO, LO ADMIRO POR LO QUE REALIZA EN EXCEL, ESTOY APRENDIENDO MUCHO DE USTED VOY CADA DIA AL PIE DE LOS QUE ESTA PUBLICANDO SON MUY INTERESANTE LO QUE REALIZA EN EXCEL JUNTO CON MACROS, A MI ME FASINA TRABAJAR EN EXCEL YA QUE PRACTICO EN CASA CON MI TIEMPO LIBRE, Y ME GUSTARIA QUE ME PUDIERA AYUDAR EN UN PROBLEMITA, (EN UNA BASE DE DATOS DE CUENTAS POR PAGAR, ME GUSTARIA SABER COMO PUEDO HACER PARA IDENTIFICAR QUE NUMERO DE COMPROBANTE Y EL VALOR ME FALTA DE PAGAR.Y IDENTIFICAR DESDE OTRA HOJA SI ESTA CANCELADO O PENDIENTE,,,) SI NO TANTO LA MOLESTIA LE PEDIRIA ESE FAVOR, MUCHAS GRACIAS BUEN DIA, CUIDESE, ESPERO ME PUEDA COLABORAR……..
Hola Miltón, gracias por comentar, vamos a evaluar tu solicitud para un futuro contenido, saludes
Pingback: Formularios en Excel VBA: Actualizar datos de una base de datos en Excel
Pingback: Formularios en Excel: Mostrar imágenes de base de datos en Excel
Pingback: Búsqueda Implacable en Excel, Parte 2 de 4
Pingback: Búsqueda Implacable en Excel, Buscar en Access desde Excel
Pingback: Los 10 tipos de errores más comunes en macros en Excel con VBA y que muy pocos saben cómo tratarlos, Runtime errors
Pingback: Los 10 tipos de errores más comunes en macros en Excel con VBA y que muy pocos saben cómo tratarlos, Runtime errors - Parte 2 de 2 - Especialistas En Excel
Pingback: 30 Trucos y Tips de Excel que toda persona debe saber - Parte 1 - Especialistas En Excel
Pingback: 30 Trucos y Tips de Excel que toda persona debe saber – Parte 2 - Especialistas En Excel
Estimado.
Queria molestarlo tenfo un FORM en el cual le pido que me extraiga los 3 dígitos iniciales del nombre y los 3 finales.
Pero necesito que cuando esten repetidos se se aguegue un 02 o 03 si concuerdan los nombres
]Ej: Usuario Jorge Quiroz me extrae JOR y ROZ agregándoles 01 pero si JORROZ esta repetido me agregue 02 si hay duplicación.
Bueno espero me pueda ayudar y agradecido desde ya.
Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Texto As Variant
Dim Caracter As Variant
Dim largo As String
On Error Resume Next
Texto = Me.TextBox4.Value
largo = Len(Me.TextBox4.Value)
For i = 1 To largo
Caracter = CInt(Mid(Texto, i, 1))
If Caracter “” Then
If Not Application.WorksheetFunction.IsText(Caracter) Then
Me.TextBox4.Value = Replace(Texto, Caracter, “”)
Else
End If
End If
Next i
On Error GoTo 0
Me.TextBox11.Text = Me.TextBox2.Text & “.” & Me.TextBox3.Text & “@tmf-group.com”
‘ If TextBox11 = “” Then Exit Sub
On Error GoTo 0
TextBox6.Text = UCase(Left(TextBox2.Text, 3)) & UCase(Right(TextBox3.Text, 3)) & “01”
TextBox6.SetFocus
End Sub
Saludos cordiales.
Hola Jorge, gracias por comentar, recomendamos éste contenido para que veas como se hace una búsqueda sin duplicar datos.
Entonces teniedo JORROZ utiliza la función del contenido para saber si hay duplicado. Si ya existe agregarle 01, vuelves a buscar JORROZ01 con la función si existe le agregas 02 y así sucesivamente; sería algo como,
Hay una función en el contenido sugerido que evalúa duplicados (digamos función buscarDuplicado())
esa función devuelve un valor que confirma si hay duplicado entonces, en un ciclo coloca por ejemplo
variable = JORROZ
For i = 0 To 30
IF buscarDuplicado(variable) = 1 THEN ‘Suponiendo que al devolver 1 no encontró duplicados
Exit For
End IF
variable = JORROZ & i ‘ EN cada repetición concatena el número que lleve i
Next i
Saludos!!
Que tal Alfonso, fuera posible de que me mandaras por email el ejercicio terminado? Seria de gran ayuda para mi proyecto escuela que sigan desarrollando mis compan-eros y yo.
gracias
Hola José, todos los archivos de los vídeos son descargables, abajo del vídeo haces clic y descargas el archivo correspondiente. Saludos
Gracias por el tutorial, estoy trabajando para mejorar la gestión de la bodega de materiales en la empresa donde actualmente trabajo, pero tengo un problema, cuando quiero escribir datos a otra hoja del mismo libro la primera fila lo hace perfecto, pero luego las siguientes solo me sobrescribe la misma fila, y no encuentro como solucionar este inconveniente, podrías ayudarme. Saludos cordiales.
Hola Nelson, en la macro que se trabaja en éste contenido hay una función llamada insertarRegistro, observa la variable ultFila, esta guardará la última fila con algo ingresado en el documento, esto es para saber cuál es el último registro y si no es el primero, en la variable filaExisteRegistro = ultFila + 1 es decir, será la fila siguiente a la última, cuando se haga el registro de los datos se harán en cada columna correspondiente y en la fila filaExisteRegistro de esta manera se garantiza el registro de todos los datos. Esperamos que puedas resolver tu inquietud, mira el contenido las veces que sea necesario y revisa tu código. Saludos
Pingback: 15 Trucos y Tips de Tablas dinámicas en Excel
Pingback: 15 Trucos y Tips de Tablas dinámicas en Excel que muy pocos conocen
Pingback: Búsqueda Implacable en Excel – Sql Server desde Excel
Pingback: Búsqueda Implacable en Excel
Pingback: Formularios en Excel VBA: Eliminar en una base de datos en Excel
DISCULPE LAS MOLESTIAS
Pero al ingresar los datos me aparecen en la misma fila y no se van desplazando hacia abajo e intente descargar el archivo pero me sale en blanco y diciendo que empiece a realiarlo
p. d. ya estoy registrado en su pagina
Hola Ángel, revisa las veces que sea necesario el código que se muestra en el vídeo. Respecto al archivo, la dinámica del Reto40Excel es que hagas un ejercicio con lo aprendido en el contenido. Saludos
Buenos días,
En primer lugar, permítanme agradecer la labor que desarrollan. En varios momentos me han sacado de apuros con sus explicaciones.
Llevo unos días intentando modificar el Reto40, para que busque duplicados en dos columnas, pero no soy capaz de conseguirlo. Es fácil con la validación de datos, pero quiero ingresar los datos a través de un formulario, como el de este Reto y no lo consigo.
¿pueden darme alguna indicación?
Muchas Gracias
Cervigón
Hola Cervigón, gracias por tu comentario, te mostramos dos formas:
1) Utiliza la función filaExisteRegistro dos veces, por ejemplo:
existe = filaExisteRegistro(noIdentidad, “B8:B” & ultFila), luego utiliza otra variable que reciba la coincidencia de la otra columna
existe1 = filaExisteRegistro(noIdentidad, “E8:E” & ultFila). Teniendo las dos coincidencias haces una condición para saber si el dato está repetido o no.
2) Si las columnas están juntas, puedes simplemente mandar como parametro el rango de las dos columnas por ejemplo;
existe = filaExisteRegistro(noIdentidad, “B8:C” & ultFila), de esa manera la función traerá la coincidencia de las columnas B y C de una sola
Pueden haber más formas de hacerlo, en Excel siempre hay varias formas de resolver una problemática. Saludos
Muchas gracias por la respuesta.
Seguí vuestro consejo y en el ejemplo utilicé dos variables, “registro” y “registro1” y para buscar las coincidencias utilicé la función countifs, o sea, algo así Application.WorksheetFunction.CountIfs(rango1,registro,rango2,registro1) y funcionó bien.
Grtacias por abrirme los ojos y guiarme hasta la solución.
Saludos
Hola, nos da gusto que hayas solucionado tu requerimiento. Gracias, saludos
Estimado Alfonso, muy prácticos y explicativos tus videos, realmente me ayudan bastante.
Tengo un problema con el reto 40 pues cuando ingreso cualquier documento aún con la base de datos vacía me sale que el nro de documento ya ha sido registrado, por favor tu seguro apoyo.
Function insertarRegistro(noDocumento As String, TipodeDocumento As String, Cliente As String, Fechadeemisión As String, Vencimento As String, Importe As String, Detalledelservicio As String) As String
Dim ultFila, filaRegistro, existe As Long
Dim confirmacionRegistro As String
confirmacionRegistro = “NO”
ultFila = Range(“A” & Rows.Count).End(xlUp).Row
If ultFila < 6 Then
filaRegistro = 6
Else
filaRegistro = utlfila + 1
End If
If ultFila 0 Then
MsgBox “El número de documento ya existe en la base de datos!”
insertarRegistro = confirmacionRegistro
Exit Function
End If
Registrodeventas.Cells(filaRegistro, 2) = noDocumento
Registrodeventas.Cells(filaRegistro, 3) = TipodeDocumento
Registrodeventas.Cells(filaRegistro, 4) = Cliente
Registrodeventas.Cells(filaRegistro, 5) = Fechadeemisión
Registrodeventas.Cells(filaRegistro, 6) = Vencimento
Registrodeventas.Cells(filaRegistro, 7) = Importe
Registrodeventas.Cells(filaRegistro, 8) = Detalledelservicio
MsgBox “Registro almacenado exitosamente!”
confirmacionRegistro = “Ingresado”
insertarRegistro = confirmacionRegistro
End Function
Private Function filaExisteRegistro(noDocumento As String, rangoConsulta As String) As Long
Dim numeroFila As Long
numeroFila = 0
With Registrodeventas.Range(rangoConsulta)
Set c = .Find(noIdentificacion, LookIn:=xlValues)
If Not c Is Nothing Then
numeroFila = c.Row
End If
End With
filaExisteRegistro = numeroFila
End Function
Sub verFormularioIngresoDatos()
frmIngresodatos.Show
End Sub
Hola Lizzet, entre
confirmacionRegistro = “NO”
y
If ultFila 0 Then
MsgBox “El número de documento ya existe en la base de datos!”
insertarRegistro = confirmacionRegistro
Exit Function
End If
Debe haber una parte de código que evalúe o el llamado a una función que valide si existe el registro o no.
No entendemos qué es If ultFila 0 Then.
Si esa parte siempre tendrás confirmacionRegistro igual a “NO”, en el vídeo se utiliza
existe = filaExisteRegistro(noIdentidad, “B8:B” & ultFila)
Por favor, mira el vídeo las veces que sea necesario. Gracias por comentar, saludos
Estimado
Excelente trabajo, tengo una pregunta habra la posibilidad de que antes que se guarde los datos del formulario se pueda realizar la impresión, ya que en mi caso son ordenes de trabajo que las tenemos pre impresos.
Por la favorable y apoyo de ante mano muchas gracias..
Hola Sánchez, vamos a evaluar tu solicitud. Revisa éstos contenidos, podrán ayudarte con tu solicitud. gracias por comentar, saludos