tengo otra preguntica que estoy bien dudoso y no me entra en la cabeza como hacerlo :huh:
tengo un text1 en el cual meto un numero x que esta comprendido entre el 1 y el 100 entonces yo quiero que cuando metan supongamos el numero 37 en el text2 me quede lo que faltaria para llegar a 100 que seria 63
Te recomiendo leer algún tutorial básico de vb, así se te hará más fácil seguir con esto :rolleyes:
Private Sub TextBox1_Change()
TextBox2.Text = 100 - Val(TextBox1.Text)
End Sub
Saludos
Function SacaR(num1 As String, num2 As String)
Dim total As String
If num1 >= num2 Then
SacaR = num1 / num2
total = 100 - SacaR
MsgBox total
ElseIf num2 >= num1 Then
SacaR = num2 / num1
total = 100 - SacaR
MsgBox total
End If
End Function
Te sirve?
Me ABURRÍA y me comí la cabeza x'dd
ninguno de los dos me sirvio no se por que
gracias brother ya lo realize con este
Private Sub TextBox1_Change()
TextBox2.Text = 100 - Val(TextBox1.Text)
End Sub
jejejeje no es leer el manual si no que tenia 1 año y algo sin programar pero no quiero seguir leyendo ahorita jejeje
Yo en lo personal te recomiendo que te lees el libro o manual ¬¬"
los post innecesario o para decir lo mismo creo que no tienen nada que ver aqui no postees para decir lo que esta diciendo otro user por favor :rolleyes:
TextBox2.Text = 100 - Val(TextBox1.Text)
if textbox1.text= 0 then
textbox2.text= 0
end if
con este pedaso de codigo yo estaria diciendo que si en el textbox1 no hay resultado o esta en 0 me quedaria 0 en el textbox 2 verdad?
ya esta listo lo hice asi
Private Sub Text4_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Text4.Text = 100 - Val(Text3.Text)
SendKeys "{tab}"
End If
If Text3.Text = 0 Then
Text4.Text = 0
End If
End Sub
con el else no me queria dar el resultado cerre el ciclo y abri uno y si me lo dio
o.k ya resolvi ese problema y si cuando los campos llegasen a quedar en blanco y no coloquen 0 por que no tiene como quedaria
if text3.text = 0 then
text4.text = 0
end if
if text3.text = "" then
text4.text=0
end if
seria algo asi o mas o menos como
Es bueno que te leas un libro, además creo que no esta permitido escribir 3 mismos posts seguidos, ves editando.
seguimos con el peo del libro jejeje estoy preguntando por que e leido y no consigo como hacer ese calculo por eso pregunto aqui por que me han sacado de duda varias veces y ya han dicho leete un libro 20 veces yo creo que no es necesario que repitan post innecesarios y disculpa si te ofendes.
Haber, escribe tu duda aqui ahora.
Bueno, creo que no es necesario entrar en una discusión de si debes de buscar o no en un libro, pero creo que lo que ocurre es que a nadie le entra en la cabeza (me incluyo) que sabiendo programar como dices hagas ese tipo de preguntas, están en las primeras páginas de un libro de VB básico :-X
Saludos
bueno brother si no tienes nada que opinar no opinas o si no vas a ayudar si sabes que esta en los promeros libros por que no lo pones entonces vas a colocar post innecesarios
Te escribí que postees tu duda ahora... segun dices hace 1 post aun no la has resuelto.
bueno ve mi problema esta aqui
Private Sub Text44_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Text44.Text = 100 - Val(Text43.Text)
SendKeys "{tab}"
End If
If Text43.Text = 0 Then
Text44.Text = 0
End If
End Sub
aqui en este pedaso dice que el valor de text44 va a ser igual a 100 cuando se introduzcan datos mayor a 0 verdad
pero si no se introducen datos es decir el textbox quedaria en blanco que tendria que agregar e tratado con esto y no me da
if text43.text = "" then
text44.text = ""
end if
mi problema no esta el metodo empleado si no en como yo haria para que cuando este en blanco el textbox no marque 100 en el otro textbox cuando no ingrese datos
lo hice asi y tampoco me furula
Private Sub Text4_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Text4.Text = 100 - Val(Text3.Text)
SendKeys "{tab}"
End If
If Text3.Text = 0 Then ------------> aqui me da el error
Text4.Text = 0
Else
If Text3.Text = "" Then
Text4.Text = ""
End If
End If
End Sub
type mysmath es el error
una písta que te resolvera la vida xD
dim texto as string es lo mismo que un campo de texto es decir un textbox
dim numero as integer (long, double, byte, u otro qu sea reprentativo de un numero) seráidentico a val(texto) o en un campo de texto es decir un textbox [val(textbox.text)]
es codigo para fixear ese error seria:
Private Sub Text4_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Text4.Text = 100 - Val(Text3.Text)
SendKeys "{tab}"
End If
' Ve ese convierte con la function val cualquier texto a numero)
' De la misma manera se puede convertir un numero a texto con la Funcion STR() qu seria la inversa a VAL() o a INT() (cabe decir que int() solo da numeros completos no decimales y es integer xp)
If val(Text3.Text) = 0 Then ------------> aqui me da el error
Text4.Text = 0
Else
If Text3.Text = "" Then
Text4.Text = ""
End If
End If
End Sub
Este es el codigo un tanto optimisado de la pagina anterior que posteo
Cita de: & eDu & en 15 Diciembre 2008, 19:56 PM
Function SacaR(num1 As String, num2 As String)
Dim total As String
If num1 >= num2 Then
SacaR = num1 / num2
total = 100 - SacaR
MsgBox total
ElseIf num2 >= num1 Then
SacaR = num2 / num1
total = 100 - SacaR
MsgBox total
End If
End Function
Te sirve?
Me ABURRÍA y me comí la cabeza x'dd
El arreglado, y ojala te sirva ¬¬!
dim variable as long ' Si cambias el tipo de la funcion sacar de long a otro es recomendable cambiar igualmente el tipo de esta vable a la misma para evitarte errores futuros si ocurriesen.
Private Sub Form_Load()
variable = SacaR(10, 10)
MsgBox variable
variable = SacaR(val(text1.text), val(text2.text))
MsgBox variable
End Sub
' Fin
Function SacaR(ByVal num1 As Long, ByVal num2 As Long) As Long ' si el numero es muy grande cambia el long por double aun que no creoq ue tengas problemas con long
Dim tmp As Long'Si hay desvordamiento o error con el tipo cambia a Double xP
If num1 = 0 And num2 = 0 Then GoTo Error:
If num1 >= num2 Then
If num2 = 0 Then GoTo Error ' Esto se activa cuando hay una divición por cero
tmp = num1 / num2
ElseIf num2 >= num1 Then
If num2 = 0 Then GoTo Error ' Esto se activa cuando hay una divición por cero
tmp = num2 / num1
Else ' no creo que esta parte se ejecute pero prevengo xP
Error:
SacaR = -1 ' usa -1 para identificar este error, ya que una divicion siempre dara numero positivos ademas que no cumple lo que pides.
Exit Function ' sale e ignoa el resto del codigo por debajo de esta linea pudo ser ext sub solo si fuese un proceso simple que no devuelve anda como los eventos de un boton al ser llamados y tratados de almacenar en una variable, marcara error.
End If
SacaR = 100 - tmp
End Function
vamos por parte me distes el codigo y una pregunta cuando los cambos quedan vacios no me va a dar resultado
If num1 = 0 And num2 = 0 Then GoTo Error:
If num1 >= num2 Then
If num2 = 0 Then GoTo Error ' Esto se activa cuando hay una divición por cero
tmp = num1 / num2
ElseIf num2 >= num1 Then
If num2 = 0 Then GoTo Error ' Esto se activa cuando hay una divición por cero
tmp = num2 / num1
por que aqui me estas diciendo que cuando num 1 y num 2 sean iguales a 0
y cuando num 1 y num2 sean mayores
y cuando el campo quede vacio por eso lo explique arriba
mi unico jodido problema esta en que cuando quiero dejar los campos en blanco igual me sigue saliendo el resultado 100 y no quiero que salga quiero que se quede en blanco tambien me entiendes o si no me avisas y te lo explico mejor
ya lo arregle jejeje
Private Sub Text4_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Text4.Text = 100 - Val(Text3.Text)
SendKeys "{tab}"
End If
If Text3.Text = "0" Then
Text4.Text = "0"
End If
If Text3.Text = "" Then
Text4.Text = ""
End If
End Sub
con solo colocar los 0 en comillas se me arreglo el problema
juega con el codigo esta perfecto si uso val(text1.text) y que text1.text no tenga nada y como val devuelve el numero actual etonces devolvera 0 entiendes el concepto? ahora el uso de
text1.text="0" es tonto si se usa para comparar numeros si mas en cambio
val(text1.text)=0 es correcto ya que se comparan los mismos tipos numero a numero y NO numero Texto ¬¬" mmm bueno ahora sigamos que text1.text tiene lo siguiente
12asda
esa convinacion de numeros y letras si deseas hacer alguna operación con esto si se puedo pero lo tendras que convertir a numero mmm mejor dicho extraer el valor usando val
lo cual devolveria 12 e ignorara asda
usar val es algo indispensable para hacer operacion entre valores numericos y evitar errores por lo cual mi codigo de arriba estan correctos ojala los probaras y jugaras con tu propia logica contra la mia y la de muchos que han de pensar lo mismo je.
Nota: nunca jusgues, nunca te sueltes, nunca camines con la luz apagada podrias tropesar al andar.
Usa el -1 para o que pides Xao aca te lo dejo...
dim variable as string ' Si cambias el tipo de la funcion sacar de string a otro es recomendable cambiar igualmente el tipo de esta vable a la misma para evitarte errores futuros si ocurriesen.
Private Sub Form_Load()
variable = SacaR(10, 10)
variable=iif (variable=-1,"",variable)
MsgBox variable
variable = SacaR(val(text1.text), val(text2.text))
variable=iif (variable=-1,"",variable)
MsgBox variable
End Sub
' Fin
Function SacaR(ByVal num1 As Long, ByVal num2 As Long) As Long ' si el numero es muy grande cambia el long por double aun que no creoq ue tengas problemas con long
Dim tmp As Long'Si hay desvordamiento o error con el tipo cambia a Double xP
If num1 = 0 And num2 = 0 Then GoTo Error:
If num1 >= num2 Then
If num2 = 0 Then GoTo Error ' Esto se activa cuando hay una divición por cero
tmp = num1 / num2
ElseIf num2 >= num1 Then
If num2 = 0 Then GoTo Error ' Esto se activa cuando hay una divición por cero
tmp = num2 / num1
Else ' no creo que esta parte se ejecute pero prevengo xP
Error:
SacaR = -1 ' usa -1 para identificar este error, ya que una divicion siempre dara numero positivos ademas que no cumple lo que pides.
Exit Function ' sale e ignoa el resto del codigo por debajo de esta linea pudo ser ext sub solo si fuese un proceso simple que no devuelve anda como los eventos de un boton al ser llamados y tratados de almacenar en una variable, marcara error.
End If
SacaR = 100 - tmp
End Function
Saludos.
no estubo bueno y gracias por ayudarme en ningun momento e criticado nada solo que lo queria hacer por mi parte pido ayuda para que me den ideas por que se que la logica de uno no es igual a la de otros pido la ayuda y la programacion de otros para yo hacer la mia y me sirvio de mucho la ayuda que ustedes me dieron muchas gracias a todos