Como contar celdas vacías con una macro

Tengo una base de datos la cual genero con una macro lo que necesito es que me cuente las celdas vacías que deje el empleado al momento de hacer su revisión que me made un msgbox diciéndome el total de celdas vacías es de "n" y las marque con un color el código que tengo para que me marque la celda vacías es

Private Sub worksheet_Change(ByVal target As Range)

Dim n As Integer

On Error Resume Next

If union (target, Range(U15:AA196,AC15:AG196,AI15:AI196,AK15:AN196,AP15:BD196,BF15:BJ196")).Add

Ress=Range(U15:AA196, AC15:AG196, AI15:AI196, AK15:AN196, AP15:BD196, BF15:BJ196").Address Then

Range(U15:AA196, AC15:AG196, AI15:AI196, AK15:AN196, AP15:BD196, BF15:BJ196").SpecialCells(xlCellTypeBlanks).Interiorr.ColorIndex=45

If Target <>Empty Then target.interior.ColorIndex=2

If Not IsEmpty(Range(U15:AA196,AC15:AG196,AI15:AI196,AK15:AN196,AP15:BD196,BF15:BJ196")Thentarget.Interior.ColorIndex=0

If Target=Empty Then target.Interior.ColorIndex=45

End If

End Sub

El código funciona bn lo que quiero es un msgbox que me diga cuantas celdas vacías tengo

Y no me deje avanzar hasta haber corregido el error

Es decir

"que si tengo 4 celdas vacías me arroje el msgbox y si le digo que quiero continuar para guardar el archivo no me lo permita hasta que las no haya espacios en blanco

2 Respuestas

Respuesta
2

He modificado el código para hacer lo que, creo, necesitas, revísalo y me cuentas cómo te va. Al respecto:

Esta parte debes pegarla en la hoja de código del libro, ya que se ejecuta antes de que éste se guarde:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Call comprobar
If b = 1 Then Cancel = True
End Sub

y en una hoja de código de módulo, pega este código

Public b As Integer
Sub comprobar()
rango = "U15:AA196,AC15:AG196,AI15:AI196,AK15:AN196,AP15:BD196,BF15:BJ196"
Range(rango).Interior.ColorIndex = xlNone '2
If Application.WorksheetFunction.CountA(Range(rango)) = 6734 Then Exit Sub
 b = 1
 Range(rango).SpecialCells(xlCellTypeBlanks).Interior.ColorIndex = 45
 a = MsgBox("Existen " & Range(rango).SpecialCells(xlCellTypeBlanks).Cells.Count & " celdas vacias; seleccionar las celdas?", vbYesNoCancel, "IMPOSIBLE SEGUIR")
 If a = 6 Then Range(rango).SpecialCells(xlCellTypeBlanks).Select
End Sub

con esto debería funcionar, cuando lances la instrucción de guardar, si hay alguna celda vacía en el rango que mencionabas en tu pregunta, lanza un aviso y colorea las celdas en el color que especificaste, y cancela el guardado del documento.

Revísalo y me cuentas. Quedo pendiente de tu éxito. Saludos

Si has logrado una solución, no olvides finalizar y puntuar la pregunta

Respuesta
1

Excelente uff que elegancia muchas gracias que Dios te bendiga

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas