¿Macro para crear alerta en excel?

Tengo esta macro

Private Sub CommandButton21_Click()

Sheets("MMN").Select
Range("F1").Select
Selection. AutoFilter

' Establece el criterio c
Selection.AutoFilter Field:=6, Criteria1:="Desactualizado"
MsgBox Range("H3:H500").Count - Range("H3:H500").SpecialCells(xlCellTypeBlanks).Count
End Sub

La cual me filtra en la Columna H los datos que digan desactualizado, quisiera que me aparezca una alerta de cuantos están desactualizados.

En el momento solo tengo una amcro que me genera una alerta por cuantos valores hay en total más no por lo que he filtrado

El mensaje que quiero que salga es

Desactualizados = "el numero que indique la macro"

2 Respuestas

Respuesta
1

.15.03.17

Buenos días, Estefanía

Una fórmula de SUBTOTALES() incluida en el texto del mensaje te dirá la cantidad de elementos filtrados.

Usa esta variante de tu rutina en reemplazo de aquella:

Private Sub CommandButton21_Click()
RangoTotal = "H3:H5000" 'Columna donde está la fórmula que dá "Desactualizado"
'  
Sheets("MMN").Select
Range("F1").Select
Selection.AutoFilter
' Establece el criterio c'  
Selection.AutoFilter Field:=6, Criteria1:="Desactualizado"
'MsgBox Range("H3:H500").Count - Range("H3:H500").SpecialCells(xlCellTypeBlanks).Count
'Recuento de celdas visibles
'  
Cont = Application.WorksheetFunction.Subtotal(3, Range(RangoTotal))
'Construcción del Mensaje'  
ElMensaje = IIf(Cont = 0, "NO HAY DESACTUALIZADOS", "Hay: " & Cont & " desactualizado" & IIf(Cont > 1, "s", ""))
TipoMens = IIf(Cont = 0, vbCritical, vbInformation)
ElTitulo = IIf(Cont = 0, "SIN", "SE ENCONTRÓ") & "Desactualizados"
MsgBox ElMensaje, TipoMens, ElTitulo
End Sub

Espero que sea lo que buscabas.

Saludos

Fer

.

Respuesta
1

Este conteo que tienes, siempre te va a contar el número de celdas que hay de 3 a 500, entonces siempre te va a regresar 498 celdas

Range("H3:H500"). Count

El siguiente conteo, va a contar todas las celdas que tienes en blanco, filtres o no filtres la información, siempre te va a contar las celdas que tengas en blanco. Si no hay celdas en blanco te envía error: "Se ha producido el error 1004. No se encontraron celdas"

Range("H3:H500"). SpecialCells(xlCellTypeBlanks). Count


Te anexo la macro actualizada

Private Sub CommandButton21_Click()
'Act.Por.Dante Amor
    Sheets("MMN").Select
    If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False
    texto = "Desactualizado"
    u = Range("H" & Rows.Count).End(xlUp).Row
    Set r = Range("H3:H" & u)
    tot_con_datos = WorksheetFunction.CountA(r)
    tot_con_desac = WorksheetFunction.CountIf(r, texto)
    tot_sin_datos = WorksheetFunction.CountBlank(r)
    '
    Range("F1").Select
    Selection.AutoFilter Field:=6, Criteria1:=texto
    MsgBox "Celdas Con Datos : " & vbTab & vbTab & tot_con_datos & vbCr & _
           "Celdas Desactualizadas : " & vbTab & tot_con_desac & vbCr & _
           "Celdas En Blanco : " & vbTab & vbTab & tot_sin_datos, vbInformation, "CONTEO DE DATOS"
End Sub

Te hace la cuenta de 3 datos. Las celdas que contienen algún dato, las celdas que están en blanco y las celdas que tienen el texto "Desactualizado".

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas