Celda excel con cero o espacio

Sres. T.E

Como saber por medio de una Macro si una celda Excel 2003 contiene solo espacios ò ceros.

He ejecutado la rutina siguiente:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("Nro")) Is Nothing And Target <> Empty And Target <> 0 Then

        MsgBox Target & " Diferente de Cero"

    End if

    End Sub

2 Respuestas

Respuesta

No entiendo muy bien lo que quieres, pero te modifiqué un poco la rutina para que cuando ingresas un número diferente a cero te muestre un mensaje. Pero si te sitúas en una celda y das un espacio o dos te muestra otro mensaje.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("Nro")) Is Nothing And Target = "  " Then
MsgBox Target & " Espacio en celda"
ElseIf Not Intersect(Target, Range("Nro")) Is Nothing And Target <> 0 Then
MsgBox Target & " Diferente de Cero"
End If
End Sub

¡Gracias!  

He logrado la macro que les he consultado de la forma siguiente:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("Nro")) Is Nothing And IsNumeric(Target) And Target <> 0 Then

        MsgBox "Es Numero"

    Else

        Target = Empty

    End If

End Sub

De nuevo Gracias por prestar ayuda a las consultas.

Respuesta
2

Leyendo tu consulta (...Como saber por medio de una Macro ...) me parece que el evento no sería Change (cambios en celda) sino SelectionChange (selección de celda)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Not Intersect(Target, Range("Nro")) Is Nothing And Target <> Empty And Target <> 0 Then
 MsgBox Target & " Diferente de Cero"
 End If
End Sub

Entonces ya sea que la celda quede en 0 o se vea como vacía (por estar configurada de que no se muestre como 0) no enviará mensaje sino el que has colocado.

He logrado la macro que les he consultado de la forma siguiente:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("Nro")) Is Nothing And IsNumeric(Target) And Target <> 0 Then
MsgBox "Es Numero"
ElseIf Not Intersect(Target, Range("NroControl")) Is Nothing And Target = 0 Then
Target = Empty
End If
End Sub

GRACIAS POR SU AYUDA.

En consulta anterior terminamos nuestro intercambio como se observa en la siguiente imagen:

Y ahora nuevamente hay que recordarte que las consultas no valoradas nos siguen apareciendo como 'Preguntas pendientes' y ni hablar de cómo aparece tu historial ;(

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas