Como impedir que la caja de texto de decimales no permita ingresar más de un punto decimales

Tengo tres Frames en la cual lo he separado por Medidas Unitarias, Medidas Master y Medida Palet, dentro de cada uno tengo 05 cajas de texto. Detalla Largo, Ancho, Altura, Volumen, Peso y cantidadUnitaria.

MI problema es que al calcular el volumen de la multiplicación del largo, ancho y altura estos campos no deben permitir ingreso de letras lo cual ya esta configurado, si estuviera vació lo completa con 0.000, el inconveniente que tuve es que por error ingrese un ejemplo 0.0.5 me voto de la macro, le puse un msgbox antes de que calcule pero igual me vota de la macro.

1 respuesta

Respuesta
1

Agregué lo siguiente al evento change, prueba si te parece buena la idea.

Private Sub LargoUnitario_Change()
'Act.Por.Dante Amor
    Dim puntos, i
    If LargoUnitario.Text = "" Then
        MsgBox "Debe ingresar el valor de la medida tomada"
    Else
        For i = 1 To Len(LargoUnitario)
            If Mid(LargoUnitario, i, 1) = "." Then
                puntos = puntos + 1
            End If
        Next
        If puntos > 1 Then
            MsgBox "Ya existe el punto, no se puede ingresar otra vez"
            LargoUnitario = Left(LargoUnitario, Len(LargoUnitario) - 1)
        Else
        End If
    End If
End Sub

Esta muy bueno, solo le agregue después del msg 0.000 y nada más el resto le esta ok

Consulta:

Esta parte no entiendo si por ejemplo el ancho 0.122, el mid toma toda la longitud de i que es igual al anchounitario, y uno es el primer numero que toma en esta caso el cero y lo compara que si es igual al punto entonces completa el total numérico, ¿no?

IFor i = 1 To Len(AnchoUnitario)
If Mid(AnchoUnitario, i, 1) = "." Then
puntos = puntos + 1
End If

Podrías valorar esta pregunta y crear una nueva para cada petición.

Perdona, pensé que era otro tema.

Lo que hago con el for es leer carácter por carácter y preguntar si es igual a "."

Si escribes "." y luego le das formato "0.000", significa que el primer 0 no es un carácter que existe en textbox, ese carácter solamente es del formato, me explico, aunque tú veas un 0, ese 0 solo es de presentación, en realidad el primer carácter es el "."

Si tienes más dudas avísame.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas