Fracciones en textbox

Hola estimado experto sr. Luis Mondelo, la pregunta es como codifico las fracciones para que trabaje correctamente en el textbox del resultado con el botón comando, gracias.

1 Respuesta

Respuesta
1

Juan los textbox, como su nombre indica, solo admiten texto. Si queremos escribir otras cosas debemos "explicarle" a excel de qué dato se trata. En nuestro caso tenemos que vigilar la introducción de la barra /. Te adjunto la macro que deberás incluir en en botón del userform:

Con esta macro ya puedes introducir fracciones para hacer la multimplicación

Private Sub CommandButton1_Click()
If InStr(TextBox1, "/") Then
parte1txt1 = Left(TextBox1, Application.WorksheetFunction.Search("/", TextBox1) - 1)
parte2txt1 = Right(TextBox1, Len(TextBox1) - Application.WorksheetFunction.Search("/", TextBox1))
valor1 = parte1txt1 / parte2txt1
TextBox3.Value = CDbl(valor1) * CDbl(TextBox2)
Exit Sub
End If
If InStr(TextBox2, "/") Then
parte1txt2 = Left(TextBox2, Application.WorksheetFunction.Search("/", TextBox2) - 1)
parte2txt2 = Right(TextBox2, Len(TextBox2) - Application.WorksheetFunction.Search("/", TextBox2))
valor2 = parte1txt2 / parte2txt2
TextBox3.Value = CDbl(TextBox1) * CDbl(valor2)
Exit Sub
End If
If InStr(TextBox2, "/") And InStr(TextBox2, "/") Then
parte1txt2 = Left(TextBox2, Application.WorksheetFunction.Search("/", TextBox2) - 1)
parte2txt2 = Right(TextBox2, Len(TextBox2) - Application.WorksheetFunction.Search("/", TextBox2))
valor2 = parte1txt2 / parte2txt2
TextBox3.Value = CDbl(valor1) * CDbl(valor2)
Exit Sub
End If
TextBox3.Value = CDbl(TextBox1) * CDbl(TextBox2)
End Sub

recuerda finalizar y puntuar

Parece que hay error,repites textbox2 uno debe ser textbox1 supongo.

If InStr(TextBox2, "/") And InStr(TextBox2, "/") Then

de todas modifique y agregué lo que corresponde al textbox1. funciona bien en los 2 primeros casos pero en el tercero ( tercer If ) no, Creo que la sintaxis del tercer caso está mal, favor revísalo, yo por aquí verifico la sintaxis de esta tercera instrucción con AND, gracias.

Ya está revisado, la macro correcta es esta:

Ahora funciona correctamente: (el condicional del and tiene que ser el primero)

Private Sub CommandButton1_Click()
If InStr(TextBox1, "/") And InStr(TextBox2, "/") Then
parte1txt1 = Left(TextBox1, Application.WorksheetFunction.Search("/", TextBox1) - 1)
parte2txt1 = Right(TextBox1, Len(TextBox1) - Application.WorksheetFunction.Search("/", TextBox1))
valor1 = parte1txt1 / parte2txt1
parte1txt2 = Left(TextBox2, Application.WorksheetFunction.Search("/", TextBox2) - 1)
parte2txt2 = Right(TextBox2, Len(TextBox2) - Application.WorksheetFunction.Search("/", TextBox2))
valor2 = parte1txt2 / parte2txt2
TextBox3.Value = CDbl(valor1) * CDbl(valor2)
Exit Sub
End If
If InStr(TextBox1, "/") Then
parte1txt1 = Left(TextBox1, Application.WorksheetFunction.Search("/", TextBox1) - 1)
parte2txt1 = Right(TextBox1, Len(TextBox1) - Application.WorksheetFunction.Search("/", TextBox1))
valor1 = parte1txt1 / parte2txt1
TextBox3.Value = CDbl(valor1) * CDbl(TextBox2)
Exit Sub
End If
If InStr(TextBox2, "/") Then
parte1txt2 = Left(TextBox2, Application.WorksheetFunction.Search("/", TextBox2) - 1)
parte2txt2 = Right(TextBox2, Len(TextBox2) - Application.WorksheetFunction.Search("/", TextBox2))
valor2 = parte1txt2 / parte2txt2
TextBox3.Value = CDbl(TextBox1) * CDbl(valor2)
Exit Sub
End If
TextBox3.Value = CDbl(TextBox1) * CDbl(TextBox2)
End Sub

te mando un saludo, y recuerda finalizar la consulta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas