Resaltar celda duplicados a mensaje de datos duplicados

Soy aficionado en la creación de macros, trato de identificar que cambios realiza cada proyecto y busco la forma de adaptar a mi trabajo diario.

Tengo un macro que resalta cuando los datos son duplicados de una base de datos muy larga.

Sub DuplicadosUnaColumna()
Dim fila As Long
Dim final As Long

final = Range("L8").End(xlDown).Row

For fila = 8 To final
If Application.WorksheetFunction.CountIf(Range("L8:L" & final), Range("L" & fila)) > 1 Then
Range("L" & fila).Interior.Color = RGB(200, 200, 200)
Else
Range("L" & fila).Interior.Color = xlNone
End If
Next fila
End Sub

De esta macro no desearía que me resalte sino que me de un mensaje de datos duplicados y si es posibles que me indique cuales son las celdas donde se encuentran lo datos duplicados.

Espero me puedan ayudar, cabe indicar que tengo datos desde la columna A hasta la DZ.

2 respuestas

Respuesta
2

Directamente puedes modificar el IF para que en lugar de pintar la celda te de el msj (se me ocurre lo siguiente):

Sub DuplicadosUnaColumna()
Dim fila As Long, final As Long
dim fDuplicadas as Text
final = Range("L8").End(xlDown).Row
fDuplicadas = ""
For fila = 8 To final
 If Application.WorksheetFunction.CountIf(Range("L8:L" & final), Range("L" & fila)) > 1 Then
  Range("L" & fila).Interior.Color = RGB(200, 200, 200)
  fDuplicadas = fDuplicadas & ", " & fila
 Else
  Range("L" & fila).Interior.Color = xlNone
 End If
Next fila
if fDuplicadas <> "" then
 msgbox "Existen filas duplicadas en " & fduplicadas
end if
End Sub

No lo ejecuté en xls así que puede llegar a tener algún error lo que te agregué, pero te dejo la idea...

Salu2

Hola Gustavo:

Agradeciendo de antemano tu apoyo, al ejecutar la macro me sale que no se ha definido el tipo definido por el usuario, pediría tu apoyo en la solución.

Gracias

Cambia donde puse

Dim fDuplicados as Text

por

Dim fDuplicados as String

Y tomando el punto de Elsa, valora todas las respuestas que tienes pendientes o será la última respuesta mía.

Salu2

¡Gracias! Gustavo

Hola Gustavo una consulta adicional a la pregunta:

Esta fórmula tiene tres macros que se ejecuta:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim fila As Long

Application.ScreenUpdating = False

fila = ActiveCell.Row

If Target.Address(False, False) = "K" & fila Then
If Target = "" Then Exit Sub

Concatenar
ConvertirFormulas
DuplicadosUnaColumnaALERTA
ultimacelda_columna

Application.ScreenUpdating = True

End If
End Sub

Como puedo hacer para enviarte la información y puedas ayudarme en dar una solución en tener solo una macro y que me ejecute todo el proceso.

Agradeciendo de antemano tu apoyo.

Saludos

Haz una nueva pregunta...

Respuesta
1

La consulta ya te fue resuelta por lo que no diré nada de eso. Solo voy a comentar que acabo de ver que dejas todas las respuestas recibidas sin valorar.

Comento esto para que los otros expertos también tomen nota de tu actitud y decidan si seguir respondiéndote o no. De mi parte seguramente ya no más.

Habrás visto al pie que tienes 2 botones para valorar.

Sdos!

Buenas tardes Elsa:

Creo que en algunos casos la respuesta que me dieron no era lo que se requería o que estaba en un 80% casi correcta pero tenia algunos errores, por lo cual había decidido no responder, porque a mi criterio si le das un valor a cual seria de si solo hay dos botones, no podría tampoco decir que su apoyo era negativo sino intermedio, espero me puedan entender y pedir las disculpas del caso, sobre las respuestas que me distes solo una esta pendiente de respuesta que a la fecha no pude concretar.

Espero me puedan entender cada apoyo que nos dan es valioso que no se puede tomar una decisión con dos botones.

Gracias

En ese caso debes comentarlo... dejar más detallas, o un ejemplo concreto de como esperas tus resultados o mejor aún una imagen para poder seguir ayudándote.

Pero no abandonar la consulta... quisiera verte de este lado del mostrador a ver cómo te sientes cuando te abandonan una respuesta... ni un gracias siquiera por el tiempo dedicado?

Rara vez una respuesta es incorrecta... lo más probable es que se pudo haber entendido diferente a cómo lo ves tu desde tu pantalla que tienes todo el libro a la vista. Y para eso tienen el botón para seguir aclarando o solicitando más explicaciones.

Sdos!

Y si no deseas continuar con la consulta porque te parece que no soluciona tu problema (ya sea porque lo resolviste de otro modo o ya no lo necesitas o lo que fuese)... no cuesta nada dejar un breve comentario como: No es exactamente lo que buscaba pero gracias por el tiempo en intentarlo... y valorarla como buena.

Porque más te afecta a tí y tu historial que no cierres las consultas .

Sdos!

¡Gracias! Elsa.

Agradezco el consejo, a veces creo como principiante estoy en el corre corre de mejorar un proceso con la macro que se nos pasa dar una votación, pero tomare en cuenta tus sugerencias.

Solo decir a todos los que nos dar su aporte en la solución de nuesta preguntas, que el tiempo que nos da es muy valiosa y pido las disculpas de caso.

Saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas