Ayuda "Si contenido en un rango de celdas es vacío mostrar Cero"

Por favor expertos necesito urgente su ayuda.

En un rango de celdas determinados de la Hoja "INGRESOS" Ejem. De "A1" a "A15", de "H7" a "H25" y "B35" a "D42"; en ellas se tiene formato de Celda "Moneda" con dos decimales apareciendo el signo "$".

La ayuda que necesito es que solución tengo que implementar para que cuando en alguna de esas celdas que no contiene dato alguno no me quede en blanco la celda sino que automáticamente me la llene por el siguiente contenido "$0,oo".

De antemano muchas gracias.

1 respuesta

Respuesta
1

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.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas