Saltar al contenido

Validar que celda sea solo numérico


CarlosKurt

Recommended Posts

publicado

Hola a tod@s.

De antemano agradecer por su tiempo en el siguiente inconveniente que expongo.

El inconveniente que tengo es que al aplicar el el código en el evento que dejare líneas abajo funciona correctamente, sin embargo cuando selecciono el rango de celdas B9:B18 y borro el contenido, sucede que de manera automática se colorea todo de color rojo en dicho rango. Como solucionarlo?, tomando en cuenta que es necesario que sea un evento.

Private Sub Worksheet_Change(ByVal Target As Range)
    
    Application.EnableEvents = False
    
    If Not Application.Intersect(Target, Range("B15")) Is Nothing Then
        If Not IsNumeric(Target.Value) Then
            Target.Interior.Color = RGB(255, 0, 0)
            Target.Value = vbNullString
        Else
            Target.Interior.Color = RGB(255, 255, 255)
        End If
    End If
    
    Application.EnableEvents = True
    
End Sub


Saludos.

  • CarlosKurt changed the title to Validar que celda sea solo numérico
publicado

Yo no borraría la celda en caso de error.

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Cells.CountLarge = 1 Then
   If Not Application.Intersect(Target, Range("B15")) Is Nothing Then
       If Not IsNumeric(Target.Value) Then
           Target.Interior.Color = RGB(255, 0, 0)
           'Target.Value = vbNullString
           Target.Select
       Else
           Target.Interior.ColorIndex = xlNone
       End If
   End If
End If
Application.EnableEvents = True
End Sub

 

publicado
Hace 31 minutos , Gerson Pineda dijo:

Hola

¿Después de borrar la selección, que deseas que haga Excel?

Hola @Gerson Pineda

Cuando selecciono el rango B9:B18 para borrar el contenido, pues, realmente nada solo quiero borrar y que no se coloree de color rojo toda la selección que hice previamente ya que volveré a insertar datos manualmente.

 

Saludos

publicado
Hace 31 minutos , Antoni dijo:

Yo no borraría la celda en caso de error.

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Cells.CountLarge = 1 Then
   If Not Application.Intersect(Target, Range("B15")) Is Nothing Then
       If Not IsNumeric(Target.Value) Then
           Target.Interior.Color = RGB(255, 0, 0)
           'Target.Value = vbNullString
           Target.Select
       Else
           Target.Interior.ColorIndex = xlNone
       End If
   End If
End If
Application.EnableEvents = True
End Sub

 

Hola @Antoni, gracias por tu colaboración,  seguiré tu  recomendación.

Doy por terminado el tema.

Saludos.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.