Como evitar introducir datos duplicados desde formulario VBA Excel
Вставка
- Опубліковано 27 сер 2024
- En este video les enseñaré a evitar introducir datos duplicados desde formulario VBA Excel . #DatosDuplicados #EvitarDatosDuplicados #Excel
Suscríbete en mi otro canal:
/ @miguelvelaa
🤗 Visita nuestras redes sociales:
Sitio web: www.tiotech.net
www.eltiotech.com
Facebook: / eltiotechoficial
Instagram: / luismiguelvelavela
🟩 Grupo de ayuda Excel:
/ excelayudas
🟦 Grupo de ayuda Word:
/ 2954410744838915
🚀🚀Curso 100% Gratis de Programación de Macros VBA Excel Aquí 🔽 70 Horas
eltiotech.com/curso-completo-vba-macros-excel/
Gracias por tu ayuda y compartir tus conocimientos.
Brother me han sido de gran ayuda tus videos, bendiciones
Saludos Tio, prueba nuevamente este código, al cruzar los nombres 16:41 Lucho Reátegui la tabla solo tiene apellidos Vela, si ya existiera un Juan Reategui, el código capta 1 del nombre Lucho y 1 del apellido de Juan Reategui y por lo tanto sumaria 2 y lo tomaría como repetido; saludos
Eso mismo, sabes como se puede solucionar??
Gracias tio por aporte de tus conocimientos me sirvio de mucho para un formulario que estoy haciendo
Hola como hago para bloquear las celdas una vez introducido los datos pero sin alterar la macros, y por cierto excelente tutorial muy bien explicado siempre veo tus video
TioTech es genial, he aprendido mucho
Eres un crack! Gracias siempre tus videos son de mucha ayuda
Este es el código que deben de poner al principio del botón agregar para validar la no duplicación de datos
teniendo en cuenta los rangos C:C es el rango donde están los nombres, D:D es el rango donde están los apellidos, modificar en cada caso al igual que el nombre de los textos
Dim Cantidad As Integer
Cantidad = WorksheetFunction.CountIfs(Range("C:C"), Trim(TNom.Text), Range("D:D"), Trim(TApe.Text))
If Cantidad > 0 Then
MsgBox TNom.Text & " " & TApe.Text & " Ya se encuentra registrado"
TNom.Text = ""
TApe.Text = ""
TNom.SetFocus
Exit Sub
End If
gracias, sos un genio
Cómo llamo a la hoja? Si estoy en vba, como agrego en qué hoja busque y guarde?
Que guarde lo sé, pero para que busque si hay uno existente en la hoja1 por ejemplo
@@adrianapaduan3079 sheets("hoja 1").Range("a1")
Por ej
@@adrianapaduan3079 sheets("hoja 1").Range("C:C")
El codigo se ve muy bueno, gracias por compartir
Muchas gracias
gracias bro. de verdad siempre me ayudas. aunque no sea exactamente lo que necesite logro entender lo que explicas para aplicarlo a mi idea, que por cierto me funciono.. éxitos
El tío Tech es lo Máximo
Una vez mas gracias miguel sigo aprendiendo con tigo gracias .y vuelvo a pedirte que prepares un curso para aprender a programar con visual Studio
Perfecto, mil gracias
excelente video bro! gracias me ha servido mucho.
No funciona el sistema de la suma.
Si en la tabla existe un dato igual en cada columna (aunque sean filas diferentes) cuenta que está repetido.
Por ejemplo, en la siguiente tabla daría como repetido el registro Manuel Cruz Hombre"
Manuel Sala Hombre
Juan Ponce Hombre
Sonia Cruz Mujer
Porque las sumas 1, 2 y 3 tienen el resultado de 1 y la suma total es 3.
De todas formas muchas gracias por todos los tutoriales.
tu video es muy importante muchas gracias me sirvio
Excelente ayuda
Excelente tutorial, te sigo con todo tus videos, gracias por compartir tu conocimiento con nosotros no das vastante ayuda bendiciones, mi cosulta es lo siguiente: cuando hay varias hojas, si ejecuto desde el codigo me lleva a la hoja activa no en base de datos como evitar eso. gracias
Tio tech seria genial si haces un formulario que permita filtrar.... Excelente tutorial
Felicitaciones maestro sugerecia realizar con contsr si conjunto, el mismo ejemplo y dos subir el ejemplo que realuza y poder revisar los que nos gusta vba otros maestros siempre suben el archivo que estan ejecutando mil gracias si puede subir asi como el archivo del video anterior de formulario de busqueda eliminar agregar subalo por favor
Estimado Miguel. No se resuelve el problema de tener coincidencia de nombre y apellido de clientes diferentes. Por ejemplo si tienes Miguel Vela y a Luis Alonso, al ingresar un Luis Vela la suma será de 2 y te dirá que el dato es repetido. Por favor, dime si estoy equivocado. Gracias
Ese es mi mismo problema
para el Boton Editar seria lo mismo para Nombres y Apellidos para que no se repita. Tambien me agradaria que haya boton Imprimir y alli imprima solo los cajas de texto y de Combo. La Impresion sea solo los contenidos y no el formulario completo. Gracias por su respuesta .
Muy buen tutorial !!! Gracias. Lo hice ,funciona , solo que igual guarda el dato a pesar de la advertencia.¿ Cómo evitar que se guarde? Saludos
Lograste resolverlo? A mi me pasa lo mismo
Tengo una duda en la situación que tengamos dos personas con el mismo apellido, puedo ingresar repetido alguno de los dos. como mejoramos el código.
Maestro buenas tardes estas celdas se agregan de arriba pero si quiero que se agreguen debajo del ultimo ingreso...como cambio el código …?? de antemano gracias por su apoyo y me ayudado mucho para el control de mis inventarios.
Hola me gustaría proponer algo, cuando puedas me respondes para mas detalles
hola gracias por los vídeos son de gran ayuda, tengo una consulta como podría hacer este condicional cuando necesito copiar los datos de una tabla a otra y solo pasar los datos que no existan el la otra hoja, es decir tengo una macro que copia los datos de una tabla a otra de acuerdo a un condicional, pero cada vez que le doy agregar me los copia todos todas las veces que le de agregar, como podría agregar únicamente los datos que sean nuevos para no replicar todo, gracias nuevamente por tu ayuda
Hola... felicidades amigo..y de pana gracias...estoy haciendo
Un pequeñito Sistema para organizar pc y redes..ahora bien..como hago para que cuando ejecute la.macro que tengo para acceder al sistema ( formularios) ..no me presenté un previo de la hoja de cálculo ( la pantalla de Excel)..no se si me logro explixar
PUES BRO GRACIAS
Una gran forma de ingreso de datos y evitar su reingreso, pero tengo una pregunta, ¿existe una forma en que la macro evalúe si la reincidencia existe en más hojas de cálculo del mismo libro?(considerando que las otras hojas contienen tablas con el mismo formato)
Hola.
Me corriges si estoy equivocado, pero diría que este código no sirve.
Si en la tabla tenemos a "Emilio Vela" y a "Lucho Gatica", cuando en el formulario introduzcamos el nombre "Emilio Gatica" o "Lucho Vela", el resultado de la suma va a ser 2 porque encuentra el nombre y también el apellido aunque sea en filas distintas.
Habría que buscar el nombre y mirar en la columna siguiente con el mismo valor de la fila. Es decir, si el nombre lo encuentra en la celda 'B4', habrá que comparar el apellido del formulario con el que haya en la celda 'C4', no con toda la columna 'C'.
Un saludo.
Sale con el countifs, no con el countif
@@marcoantonio6 Correcto, yo me refería al código del vídeo.
lo puedes explicar mejor. porfavor. gracias de antemano
@@ssandy9 Fíjate que el countif, sólo cuenta nombres que sean iguales, lo mismo hace con los apellidos, ej
juan perez
jose rodriguez
si ingresas otro juan perez te va a mandar que ya existe porque va a sumar 1 juan mas 1 perez=2, pero que pasa si quieres ingresar un
jose perez,
va a contar 1 jose(jose rodriguez) + 1 perez(juan perez) y de igual te va a sumar 2 y te va a mandar que ya existe, pero eso no es cierto, sólo cuenta nombres y apellidos por separado, no los relaciona, para eso es la función countifs, porque ésta función te va a filtrar(en el caso que quieras ingresar un jose perez) todos los jose que existan, luego va a hacer un conteo de éstos registros el que apellide perez, y si no existe te manda cero
Buenas tardes, quiero crear una macro para el el registro de clientes, de tal forma que a cada registro le asigne un numero correlativo como código único para ese cliente siempre y cuando este sea un cliente activo y si es un cliente ordinario solo coloque una letra, es decir, asiganara un numero solo a los clientes activo y que este no se repite
Oye amigo un ejemplo, puedo usar tu idea al añadir un nuevo producto y que al colocar el ID del producto si coloco un número repetido me salga la opción de que ya esta
Buenas tardes desde Sevilla ( España) tengo unas cuantas de dudas. Estoy intentando hacer una base de datos para la Agrupación de Protección Civil que pertenezco, pero mis conocimiento no dan para mucho y algo ayuda tus vídeos, pero hay cosas que no termino de conseguir hacer.
Que no me deje introducir datos duplicados desde el formulario de inscripción.
Que me cree un formulario con los datos del Voluntario con el botón Buscar y imprimir ese formulario.
No se si pido demasiado Gracias por los vídeos
Si tienes el nombre en una celda y el apellido en otra como el ejemplo del video y no quieres que te registre dos personas con el mismo nombre y apellido y el formulario tiene dos textbox, uno para el nombre y otro para el apellido como en el ejemplo, debes de poner al principio del código del botón agregar el siguiente código para que te valide la no duplicación de datos
Dim Cantidad As Integer
Cantidad = WorksheetFunction.CountIfs(Range("C:C"), Trim(TNom.Text), Range("D:D"), Trim(TApe.Text))
If Cantidad > 0 Then
MsgBox TNom.Text & " " & TApe.Text & " Ya se encuentra registrado"
TNom.Text = ""
TApe.Text = ""
TNom.SetFocus
Exit Sub
End If
EN DONDE
Dim Cantidad As Integer
' cantidad va a cargarse con 1 si se encuentra un nombre con el mismo apellido
Cantidad = WorksheetFunction.CountIfs(Range("C:C"), Trim(TNom.Text), Range("D:D"), Trim(TApe.Text))
' ésta función cuenta la cantidad de registros en el rango C:C(Nombres en mi archivo, corrige en el tuyo) que sean iguales al texto ingresado en TNom.text, y de esos registros contados, va a hacer un subconteo en el rango D:D(Apellidos en mi caso, corrige en el tuyo) de los registros que sean iguales al texto ingresado en el TApe.text, si encuentra alguno, se carga con el valor 1 y si no, sigue con su valor por defecto cero la variable cantidad
If Cantidad > 0 Then
'Aquí, preguntamos si encontró alguna registro con el nombre y apellido acabados de ingresar
MsgBox TNom.Text & " " & TApe.Text & " Ya se encuentra registrado"
'te muestra mensaje indicándote que ya existe
TNom.Text = ""
TApe.Text = ""
TNom.SetFocus
'borra los textos y sitúa el cursor en TNom.text para ingresar otro nombre
Exit Sub
'se va al final del procedimiento directamente para no ejecutar lo que se encuentra debajo de la condición if
End If
'abajo de éste end if debes de ingresar el código en caso que el registro sea nuevo
@@marcoantonio6 yo hice eso pero no me sale. hay alguna otra solucion
@@ssandy9 tendría que ver tu archivo o un video de lo que hace y lo que deseas que haga
Muy bueno el tutorial, una pregunta como se puede hacer que en caso de registro duplicado muestre todos los campos rellenados, para poder modificarlos. Gracias.
Jesús Andreu con lo explicado aquí no se puede xq por lo general un registro o fila, se identifica con un código numérico único, q x lo general es la cédula o ruc para empresas (Ecuador). Si lo haces como te menciono, necesitas aprender a usar la función find del objeto Range o el operador like, ambos en VBA. Con esto la idea sería buscar si el identificador único de registro (id) existe, si es así te devolverán datos para q puedas obtener lo q quieres, modificar un registro existente.
Muchas gracias, te agradeceria si algun dia puedes hacer un ejemplo aun que se de dos campos por ejemplo gracias.
Podrias ayudar q no se repita solo una columna.. Por ejemplo si se repote el nombre que no lo agregue... Pero si el nombre es diferente y el apellido y sexo es igual a un datos existente.. Que normal lp agregue... Podrías porfavor
Hola Estimado, queria molestarte con una duda. Como puedo hacer que a los nombres duplicados les agregue al final un 01 si es el primero en la columna y si los nombres son repetidos agregue un número 02 al siguiente y así sucesivamente si los nombres se repiten, ejemplo Juan01, Juan02, Juan03 , gracias.
Buenas noches, podrianos compartirnos la programación del boton CANCELAR?
Puedes hacer un video que me sirva de guia por favor
PUEDE FUNCIONAR ESTE CODIGO SI MI BASE DE DATOS TIENE VARIAS HOJAS Y EN EL FORMULARIO PARA AGREGAR LOS DATOS ES A TRAVES DE UN COMBO BOX?
Hola amigo espero me respondas ah estado practicando con tus vídeos y a medida eh ido introduciendo todos los códigos a la macro pero ahora con este tengo un problema cuando escribo la prueba uno se me resalta en amarillo y noe deja seguir pero eh seguido todo paso a paso
Hola, el código es erróneo… deberías revisarlo. Esto funcionaría si fuese una sola columna, pero con dos hay q posicionarte en la primera fila de la tabla y recorrer la tabla al completo buscando que coincida el nombre y una vez localizado este preguntar si coincide el apellido también… if not … pasa al siguiente registro. De la manera q tu lo presentas aquí parece q funciona, pero llegará el momento q la combinación de nombres y apellidos te dirá q el registro q quieres introducir esta duplicado aunque no lo esté. He visto más abajo q alguien proponía otro código, lo miraré a ver q tal. Saludos.
Excelente tutorial Profesor Miguel!!
Solo me quedó una duda ,si bien es cierto asigna valor a las variables pero porque no se definen en el procedimiento?
Dim prueba_uno as integer ( por ejemplo)
Muchas gracias!!
Luis Cruces Zelaya lee sobre variables en VB o VBA. Por ahora no te hagas problema, igual va a funcionar.
saludos y si quiero arrojar los datos en otra hoja?
Hola buen día, excelente. Pero las celdas para insertar los registros no corresponden..😎. Gracias.
Asi es
Funciona la función en Excel 360?
Hola, y como podemos hacerlo en google sheets
Cómo pudieras hacer que haga una validación alfafonetica, osea que al momento de buscar las palabras las busque y las tomé en cuenta por su sonido con otra consonante y no letra por letra como por ejemplo los sonidos de las 'v' y'b' (vavevivovu con babebibobu) o los sonidos de las 'c' y 'k' y 's' y 'z' y 'q' (ca, ka, co, ko, cu, ku); (ce, se, ze, ci, si, zi, ) etc
Buen día tío tech, me podrías ayudar por favor, como le hago para que una llave de transacción que tengo en una hoja no se me repita en una segunta hoja?
A VECES HAY PERSONAS QUE TIENEN NOMBRES Y APELLIDOS IGUALES, SOLO SE DISTINGUEN POR UN RUT (CHILE) O SIMILAR ¿COMO HACERLO?
Hola
Quisiera que colabores como puedo hacer para crear tablas con un codigo unico
Necesito ayuda, tengo un problema estuve haciendo un expediente dónde guardo datos de personas en VB excel ya lo tengo todo terminado pero quiero que por medio de la verificación de ID el programa me diga si ya está o no registrado en la base de datos he investigado pero solo he podido hacerlo por nombre y apellido, a lo que entiendo es que se ocupa otra fórmula para los números, si alguno/a tuviera el conocimiento y me dijera por favor?
Hola! Qué pasa si lo único que no quiero que se duplique sea un número de cédula por ejemplo!
Si tengo 2 nombres por ejemplo Arturo lopez otro grabriel Hernández y quiero ingresar un tercero que se llame Arturo Hernández ? Siempre caerá en 2 y no se podrá ingresar
Hola Miguel..!!Como le pongo un trazo grueso a un marco en vba
Como seria el código para poner un botón de "buscar" en mi registro de clientes? Agradecería el apoyo :(
Hola buen día, ¿alguien me podría ayudar para realizar esta misma función pero con dos hojas? Es decir, comparar dos columnas de dos hojas distintas del mismo archivo de excel y que me diga si hay un dato repetido
Si ya tengo 1000 datos y me aparece uno repetido pero no quiero borrar el primero, qué hago para que vaya a ese primer dato y le ponga un comentario en una celda adjunta, en la celda E digamos?
estoy tratando de que me permita ingresar el mismo nombre con diferentes apellidos ejemplo:
Carlos - Alcantara
Carlos - Carlin
Carlos - Risueño
Pero este código no me lo permite, si alguien tiene la solución que me indique por favor.
Muy complicado, muy rapido🤔😪
Broo enserio no me ayudaras?
Xfaa bro te lo pido
David GF a lo mejor te puedo ayudar, q error tienes? pon la linea de código también