Al escribir en un rango de celdas, que me detecte si hay duplicado

Al escribir en este rango de celdas:
Range("D136:D450").Select
Me detecte si hay un duplicado al escribir en alguna celda de ese rango

2 respuestas

Respuesta
2

Pon la siguiente macro en los eventos de tu hoja

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    Set r = Range("D136:D450")
    If Not Intersect(Target, r) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Target.Value = "" Then Exit Sub
        '
        cuenta = WorksheetFunction.CountIf(r, Target.Value)
        If cuenta > 1 Then
            MsgBox "Valor duplicado", vbCritical
            Application.EnableEvents = False
            Target.Value = ""
            Application.EnableEvents = True
            Target.Select
        End If
    End If
End Sub

Si ya tienes una macro en los eventos de la hoja, debes poner la macro para hacer los cambios.


'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Fabuloso

Gracias Dante

Tengo una macro en los eventos de la hoja, con ella no me funciona, voy a intentar acoplarlo, haber si puedo,

Un saludo

Respuesta

Esto se puede resolver también con una validación de datos, te sitúas en D136 y pulsas en el menú menú "Datos\Validación de datos" y en el cuadro de diálogo de este modo:

Copias y pegas en el rango que quieres y listo.

No me hace nada

Si lo has configurado como te indico arriba debería aparecerte un mensaje como este:

Fíjate que en tu configuración el separador de argumentos sea el punto y coma y no la coma, que las funciones sean en castellano y no inglés.. por lo demás te debe funcionar correctamente.

Esto es lo que puse:

=CONTAR.SI($D$146:$D$450;D136)=1

Y no me hace nada

¿Quizá está interfiriendo el código que ya tienes? ¿Lo has probado en un documento nuevo? No me lo he inventado, esta validación funciona..

Le he quitado todo y nada

El ejemplo lo saqué de esta web:

https://exceltotal.com/evitar-duplicados-en-excel/

Quizá si lo lees allí directamente encuentres qué paso de los que te he indicado estabas omitiendo.

Le he cambiado ; por la coma, ni asi

=CONTAR.SI(A:A,A1)=1

Fíjate lo último que dice en la web:

"Es importante mencionar que este método de validación funciona solamente cuando realizamos la captura manual de los datos, pero si copiamos un valor proveniente de otra celda y lo pegamos Excel no aplicará la validación."

¿Quizá es por esto?

no

Ya bueno, a mí esto me funciona perfectamente tal y como te lo he explicado. Si no eres capaz de adaptarlo a tu caso particular, sin poder ver lo que estás haciendo o el archivo no te puedo ayudar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas