Pon la siguiente macro en el evento Open, esto es para que cuando abras el libro te cambie las celdas vacías por 0.
Instrucciones para poner la macro en ThisWorkbook
1. Abre tu libro de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
4. Del lado derecho copia la macro
Private Sub Workbook_Open()
'Por.DAM
activa = ActiveCell.Address
For Each celda In ActiveSheet.UsedRange
If InStr(1, celda.NumberFormat, "$") > 0 Then
If celda = "" Or celda = 0 Then
celda.Select
Selection.NumberFormat = "$* #,##0.00;-$* #,##0.00"
ActiveCell.FormulaR1C1 = "0"
End If
End If
Next
Range(activa).Select
End Sub
Ahora, sí en el transcurso de estar operando la hoja, borras celdas y quieres que te ponga un cero, sigue las instrucciones:
Sigue las Instrucciones para poner la macro en worksheet
1. Abre tu hoja de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
4. Del lado derecho copia la macro
Private Sub Worksheet_Change(ByVal Target As Range)
'Por.DAM
If Not Intersect(Target, Range("A:A,B:B,C:C")) Is Nothing Then
For Each celda In Target
If InStr(1, celda.NumberFormat, "$") > 0 Then
If celda = "" Or celda = 0 Then
Application.EnableEvents = False
celda.Select
Selection.NumberFormat = "$* #,##0.00;-$* #,##0.00"
ActiveCell.FormulaR1C1 = "0"
Application.EnableEvents = True
End If
End If
Next
End If
End Sub
Cambia en la macro en esta línea las columnas que tengan formato de “Moneda”, para que te actualice la celda cada vez que la dejas vacía.
If Not Intersect(Target, Range("A:A,B:B,C:C")) Is Nothing Then
Saludos. DAM
Si es lo que necesitas.