Evitar duplicados al introducir en un formulario
balou11
-
michel_m Mensajes publicados 18903 Fecha de registro Estado Colaborador Última intervención -
michel_m Mensajes publicados 18903 Fecha de registro Estado Colaborador Última intervención -
Hola a todos,
Les presento mi problema (he intentado encontrar la solución en la red, pero en vano)
Aquí va: tengo una base de datos en Excel, en la columna B está el apellido, en la columna C está el nombre, y en la columna A tengo una fórmula que concatena los dos.
Ejemplo: escribo en B: DUPONT
en C: ALAIN
En A: DUPONT ALAIN (eso se completa solo)
Pero, voy llenando esta base mediante un formulario (que funciona muy bien), por otro lado me gustaría, mediante VBA, prohibir la entrada de duplicados; sería imposible volver a introducir un DUPONT ALAIN.
Habría que hacer que ese código de prohibición se ejecute después de ingresar ALAIN, ya que el usuario debe introducir primero el apellido.
De antemano, gracias.
Les presento mi problema (he intentado encontrar la solución en la red, pero en vano)
Aquí va: tengo una base de datos en Excel, en la columna B está el apellido, en la columna C está el nombre, y en la columna A tengo una fórmula que concatena los dos.
Ejemplo: escribo en B: DUPONT
en C: ALAIN
En A: DUPONT ALAIN (eso se completa solo)
Pero, voy llenando esta base mediante un formulario (que funciona muy bien), por otro lado me gustaría, mediante VBA, prohibir la entrada de duplicados; sería imposible volver a introducir un DUPONT ALAIN.
Habría que hacer que ese código de prohibición se ejecute después de ingresar ALAIN, ya que el usuario debe introducir primero el apellido.
De antemano, gracias.
3 respuestas
-
Hola,
a poner en el módulo de la hoja:
Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) If Application.WorksheetFunction.CountIf(Range("B:B"), Target.Value) > 1 Then MsgBox "Nom déja employé" Target.Value = "" Target.Select End If End Sub
--
@+ Le Pivert -
Primero, gracias por la respuesta, Señor "el pájaro carpintero"!
Pero eso no funciona, puedo crear perfectamente DUPONT PASCALE, lo que haría falta es que el código pueda mirar en la columna (A) que concatena el nombre y el apellido (DUPONT ALAIN).
Haría falta que el usuario, en el campo "nom", indique "DUPONT".
Luego, que pueda indicar el nombre (el prénom), pero que si en la columna A, que concatena ambos (nombre y apellido), aparece un mensaje. ¡Merci encore à tous de prendre de votre temps!-
Rectificación para la columna A que contiene nombre y apellido A colocar en el userForm: Option Explicit Private Sub CommandButton1_Click() Dim DerniereLigneUtilisee As Long DerniereLigneUtilisee = Range("A" & Rows.Count).End(xlUp).Row + 1 Range("C" & DerniereLigneUtilisee).Value = TextBox1 ' prénom Range("B" & DerniereLigneUtilisee).Value = TextBox2 ' nom Range("A" & DerniereLigneUtilisee).Value = Range("C" & DerniereLigneUtilisee).Value & " " & Range("B" & DerniereLigneUtilisee).Value End Sub a colocar en la hoja correspondiente: Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) If Application.WorksheetFunction.CountIf(Range("A:A"), Target.Value) > 1 Then MsgBox "Nom déjà utilisé" Target.Value = "" Range("B" & Target.Row) = "" Range("C" & Target.Row) = "" Target.Select End If End Sub Voilà
- Publica tu cuaderno anonimizado en este sitio. Luego pega el enlace en este mensaje:
https://www.cjoint.com/
@+ El Pivert
-
-
-
Si no tienes la costumbre de manipular formularios (UserForm), tienes este tutorial muy detallado de SilKyroad, antiguo MVP de Microsoft
https://excel.developpez.com/cours/?page=prog#userform
-
