Saltar al contenido principal

¿Cómo permitir solo números negativos en Excel?

En Excel, ¿cómo permitir que solo se ingresen números negativos? Este artículo presentará algunos trucos útiles y rápidos para que pueda resolver esta tarea.

Solo permitir números negativos en Excel con validación de datos

Solo permita números negativos en Excel con código VBA


flecha azul burbuja derecha Solo permitir números negativos en Excel con validación de datos

Normalmente, el Validación de datos La función puede ayudarlo, haga lo siguiente:

1. Seleccione las celdas o columna en las que desea permitir solo los números negativos ingresados ​​y luego haga clic en Datos > Validación de datos > Validación de datos, ver captura de pantalla:

doc solo permite negativo 1

2. En la Validación de datos cuadro de diálogo, debajo del Ajustes pestaña, elija las siguientes opciones:

(1.) En el Permitir sección, elija Decimal de la lista desplegable;

(2.) En el Datos sección, elija Menos que o igual a opción;

(3.) Por fin, ingrese el número 0 en el Máximo caja de texto.

doc solo permite negativo 2

3. Luego haga clic OK, y ahora, solo se permite ingresar números negativos y 0, si ingresa un número positivo, mostrará un mensaje de advertencia, vea la captura de pantalla:

doc solo permite negativo 3


flecha azul burbuja derecha Solo permita números negativos en Excel con código VBA

Aquí hay un código VBA que también puede ayudarlo, con el siguiente código, cuando ingrese un número positivo, se convertirá a negativo automáticamente, haga lo siguiente:

1. Haga clic con el botón derecho en la pestaña de la hoja en la que desea permitir solo números negativos y elija Ver código en el menú contextual, en el emergente Microsoft Visual Basic para aplicaciones ventana, copie y pegue el siguiente código en el espacio en blanco Módulo:

Código de VBA: solo permite números negativos en la hoja de trabajo:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    Const sRg As String = "A1:A1000"
    Dim xRg As Range
    On Error GoTo err_exit:
    Application.EnableEvents = False
    If Not Intersect(Target, Range(sRg)) Is Nothing Then
        For Each xRg In Target
            If Left(xRg.Value, 1) <> "-" Then
                xRg.Value = xRg.Value * -1
            End If
        Next xRg
    End If
err_exit:
    Application.EnableEvents = True
End Sub

doc solo permite negativo 4

Note: En el código anterior, A1: A1000 son las celdas en las que solo desea ingresar números negativos.

2. Luego guarde y cierre este código, vuelva a la hoja de trabajo y ahora, cuando ingrese algunos números positivos en las celdas que especificó en el código, los números positivos se convertirán en negativos automáticamente.

Las mejores herramientas de productividad de oficina

Características populares: Buscar, resaltar o identificar duplicados   |  Eliminar filas en blanco   |  Combine columnas o celdas sin perder datos   |   Ronda sin fórmula ...
Super búsqueda: Búsqueda virtual de criterios múltiples    Búsqueda V de valores múltiples  |   VLookup en varias hojas   |   Búsqueda difusa ....
Lista desplegable avanzada: Crear rápidamente una lista desplegable   |  Lista desplegable dependiente   |  Lista desplegable de selección múltiple ....
Administrador de columnas: Agregar un número específico de columnas  |  Mover columnas  |  Toggle Estado de visibilidad de columnas ocultas  |  Comparar rangos y columnas ...
Características destacadas: Enfoque de cuadrícula   |  Vista de diseño   |   Gran barra de fórmulas    Administrador de hojas y libros de trabajo   |  Biblioteca de Recursos (Texto automático)   |  Selector de fechas   |  Combinar hojas de trabajo   |  Cifrar/descifrar celdas    Enviar correos electrónicos por lista   |  Súper filtro   |   Filtro especial (filtro negrita/cursiva/tachado...) ...
Los 15 mejores conjuntos de herramientas12 Texto Herramientas (Añadir texto, Quitar caracteres, ...)   |   +50 Tabla Tipos (Diagrama de Gantt, ...)   |   40+ Práctico Fórmulas (Calcular la edad según el cumpleaños, ...)   |   19 Inserción Herramientas (Insertar código QR, Insertar imagen desde la ruta, ...)   |   12 Conversión Herramientas (Números a palabras, Conversión de Moneda, ...)   |   7 Fusionar y dividir Herramientas (Filas combinadas avanzadas, Células partidas, ...)   |   ... y más

Mejore sus habilidades de Excel con Kutools for Excel y experimente la eficiencia como nunca antes. Kutools for Excel ofrece más de 300 funciones avanzadas para aumentar la productividad y ahorrar tiempo.  Haga clic aquí para obtener la función que más necesita...

pestaña kte 201905


Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil

  • Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
  • ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!
Comments (4)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
How do I change the automatic formatting with this code from Currency to Accounting ?
This comment was minimized by the moderator on the site
Hi! Great article. One question: if, instead of a coherent group of cells, I want to apply this in different parts of the sheet (e.g. A1:A2 AND A6:A8), is there a way to do that with the VBA solution? I.e.: how do I replace the "A1:A1000" with several sets of cells?
This comment was minimized by the moderator on the site
Hello, GB,
To apply this code for multiple ranges, please use the following code:

Note: when using this code, first, you should right click the sheet tab, and then click View code from the context menu, and then copy the following code into the module.

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
Const sRg As String = "A1:A10,B1:B10,C1:C20" 'Separate the ranges by commas
Dim xRg As Range
Dim xSRg As Range
On Error GoTo err_exit:
Application.EnableEvents = False
Set xSRg = Range(sRg)
If Not Intersect(Target, xSRg) Is Nothing Then
For Each xRg In Target
If Left(xRg.Value, 1) <> "-" Then
xRg.Value = xRg.Value * -1
End If
Next xRg
End If
err_exit:
Application.EnableEvents = True
End Sub

Please try, hope it can help you!
This comment was minimized by the moderator on the site
Super, thanks! Very helpful.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations