Actualización automática texbox

12/09/2007 - 16:55 por JForero | Informe spam
Buenos días grupo

antes de esta nueva consulta agradezco la colaboración que me han brindaddo,
ha sido de gran ayuda

y bueno sigo con mis preguntas

tengo un texbox que me realiza un cálculo y me muestra el resultado, pero
para que el valor se acutalice me toca darle doble click en el tex..

el valor que calcula está en la hoja2 columna h, i, j fila2

hay alguna forma para que el valor del texbox se me actualice
automáticamente si cambia algún valor en la fila y columnas mencionadas sin
que me toque dar dobleclick sobre el tex para actualizar el resultado

mil gracias...

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
12/09/2007 - 19:51 | Informe spam
hola, Jorge !

tengo un texbox que me realiza un calculo y me muestra el resultado
pero para que el valor se acutalice me toca darle doble click en el tex.
el valor que calcula esta en la hoja2 columna h, i, j fila2
hay alguna forma para que el valor del texbox se me actualice automaticamente
si cambia algun valor en la fila y columnas mencionadas
sin que me toque dar dobleclick sobre el tex para actualizar el resultado



[aparentemente] tienes codigo asociado al evento doble-clic de tu textbox
y este codigo es el que [realmente] realiza *el calculo* -???-
y no comentas si el mismo esta en un formulario de usuario o incrustado en algun hoja -?-

podrias *llamar* al evento del control en el evento '_change' de las celdas en el modulo de codigo de *la hoja*

o... podrias exponer el codigo para poder ver como vincularlo a los cambios en los valores de las celdas ?
y que es lo que contienen las celdas ?
y/o cualquier detalle que se te hubiera quedado *en el tintero* :))

saludos,
hector.
Respuesta Responder a este mensaje
#2 JForero
12/09/2007 - 20:45 | Informe spam
Hola Hector, a continuación expongo el código para tus comentarios ... de
antemano gracias..

Private Sub txbCeldaSaldo_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim Mov, Otg, Cxmil, Ing, Saldo As Long

Mov = Worksheets("tablas").Range("h2").Value
Otg = Worksheets("tablas").Range("i2").Value
Cxmil = Worksheets("tablas").Range("j2").Value
Ing = Worksheets("tablas").Range("k2").Value
Saldo = Ing - (Mov + Otg + Cxmil)

txbCeldaSaldo.Text = Saldo
txbCeldaSaldo = Format(txbCeldaSaldo, "#,##0")

If txbCeldaSaldo.Text > "0" Then
txbCeldaSaldo.ForeColor = vbBlue
Else
txbCeldaSaldo.ForeColor = vbRed
End If
End Sub

si, el cálculo lo realizo desde el código, el texbox está en la hoja de
cálculo hoja1, los valores que cargan las variables de cálculo están en la
hoja "tablas" en la fila 2

"Héctor Miguel" escribió en el mensaje
news:
hola, Jorge !

tengo un texbox que me realiza un calculo y me muestra el resultado
pero para que el valor se acutalice me toca darle doble click en el tex.
el valor que calcula esta en la hoja2 columna h, i, j fila2
hay alguna forma para que el valor del texbox se me actualice
automaticamente
si cambia algun valor en la fila y columnas mencionadas
sin que me toque dar dobleclick sobre el tex para actualizar el resultado



[aparentemente] tienes codigo asociado al evento doble-clic de tu textbox
y este codigo es el que [realmente] realiza *el calculo* -???-
y no comentas si el mismo esta en un formulario de usuario o incrustado en
algun hoja -?-

podrias *llamar* al evento del control en el evento '_change' de las
celdas en el modulo de codigo de *la hoja*

o... podrias exponer el codigo para poder ver como vincularlo a los
cambios en los valores de las celdas ?
y que es lo que contienen las celdas ?
y/o cualquier detalle que se te hubiera quedado *en el tintero* :))

saludos,
hector.

Respuesta Responder a este mensaje
#3 JForero
12/09/2007 - 21:07 | Informe spam
Adicionalmente también tengo un formulario que se desplega con un
commandbuton, es posible hacer lo mismo, que me coloque los datos en un
texbox tan pronto se despliege el formulario

gracias



"JForero" escribió en el mensaje
news:
Hola Hector, a continuación expongo el código para tus comentarios ... de
antemano gracias..

Private Sub txbCeldaSaldo_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim Mov, Otg, Cxmil, Ing, Saldo As Long

Mov = Worksheets("tablas").Range("h2").Value
Otg = Worksheets("tablas").Range("i2").Value
Cxmil = Worksheets("tablas").Range("j2").Value
Ing = Worksheets("tablas").Range("k2").Value
Saldo = Ing - (Mov + Otg + Cxmil)

txbCeldaSaldo.Text = Saldo
txbCeldaSaldo = Format(txbCeldaSaldo, "#,##0")

If txbCeldaSaldo.Text > "0" Then
txbCeldaSaldo.ForeColor = vbBlue
Else
txbCeldaSaldo.ForeColor = vbRed
End If
End Sub

si, el cálculo lo realizo desde el código, el texbox está en la hoja de
cálculo hoja1, los valores que cargan las variables de cálculo están en la
hoja "tablas" en la fila 2

"Héctor Miguel" escribió en el mensaje
news:
hola, Jorge !

tengo un texbox que me realiza un calculo y me muestra el resultado
pero para que el valor se acutalice me toca darle doble click en el tex.
el valor que calcula esta en la hoja2 columna h, i, j fila2
hay alguna forma para que el valor del texbox se me actualice
automaticamente
si cambia algun valor en la fila y columnas mencionadas
sin que me toque dar dobleclick sobre el tex para actualizar el
resultado



[aparentemente] tienes codigo asociado al evento doble-clic de tu textbox
y este codigo es el que [realmente] realiza *el calculo* -???-
y no comentas si el mismo esta en un formulario de usuario o incrustado
en algun hoja -?-

podrias *llamar* al evento del control en el evento '_change' de las
celdas en el modulo de codigo de *la hoja*

o... podrias exponer el codigo para poder ver como vincularlo a los
cambios en los valores de las celdas ?
y que es lo que contienen las celdas ?
y/o cualquier detalle que se te hubiera quedado *en el tintero* :))

saludos,
hector.





Respuesta Responder a este mensaje
#4 Héctor Miguel
12/09/2007 - 21:49 | Informe spam
hola, Jorge !

... expongo el codigo para tus comentarios ...
... el calculo lo realizo desde el codigo, el texbox esta en la... hoja1
los valores que cargan las variables de calculo estan en la hoja "tablas" en la fila 2 ...



copia/pega las siguientes lineas -> en el modulo de codigo de la hoja "tablas"...
[y no pongas nada en el evento '_dblclick' del textbox en la hoja1]...

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("h2:k2")) Is Nothing Then Exit Sub
Dim Saldo As Long: Saldo = Evaluate("k2-sum(h2:j2)")
With Worksheets("hoja1").txbCeldaSaldo
.Text = Format(Saldo, "#,##0")
.ForeColor = IIf(Saldo > 0, vbBlue, vbRed)
End With
End Sub

saludos,
hector.

__ el codigo expuesto __
Private Sub txbCeldaSaldo_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim Mov, Otg, Cxmil, Ing, Saldo As Long
Mov = Worksheets("tablas").Range("h2").Value
Otg = Worksheets("tablas").Range("i2").Value
Cxmil = Worksheets("tablas").Range("j2").Value
Ing = Worksheets("tablas").Range("k2").Value
Saldo = Ing - (Mov + Otg + Cxmil)
txbCeldaSaldo.Text = Saldo
txbCeldaSaldo = Format(txbCeldaSaldo, "#,##0")
If txbCeldaSaldo.Text > "0" Then
txbCeldaSaldo.ForeColor = vbBlue
Else
txbCeldaSaldo.ForeColor = vbRed
End If
End Sub
Respuesta Responder a este mensaje
#5 JForero
12/09/2007 - 23:11 | Informe spam
Hola Hector,

pego el código, pero no hace nada cuando modifico los datos..

no se si sea importante mencionarte que la hoja "tablas", en h, i, j, y k
tiene fórmulas que extraen valores de otras hojas, ejemplo

la hoja1, columna d, la alimento de valores
la hoja2, columna d, la alimento de valores
la hoja3, columna d, la alimento de valores

en la hoja tablas tengo =suma(hoja1!d7:d65536) y así sucesivamente.

ahora no se si estoy copiando el código donde no es, cuando hablas de
copia/pega las siguientes lineas -> en el modulo de codigo de la hoja
"tablas"...

lo que hice fué dar doble click en hoja8(tablas) e inserté las líneas que me
dices (en microsoft excel objetos)

gracias ... jorge




"Héctor Miguel" escribió en el mensaje
news:
hola, Jorge !

... expongo el codigo para tus comentarios ...
... el calculo lo realizo desde el codigo, el texbox esta en la... hoja1
los valores que cargan las variables de calculo estan en la hoja "tablas"
en la fila 2 ...



copia/pega las siguientes lineas -> en el modulo de codigo de la hoja
"tablas"...
[y no pongas nada en el evento '_dblclick' del textbox en la hoja1]...

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("h2:k2")) Is Nothing Then Exit Sub
Dim Saldo As Long: Saldo = Evaluate("k2-sum(h2:j2)")
With Worksheets("hoja1").txbCeldaSaldo
.Text = Format(Saldo, "#,##0")
.ForeColor = IIf(Saldo > 0, vbBlue, vbRed)
End With
End Sub

saludos,
hector.

__ el codigo expuesto __
Private Sub txbCeldaSaldo_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim Mov, Otg, Cxmil, Ing, Saldo As Long
Mov = Worksheets("tablas").Range("h2").Value
Otg = Worksheets("tablas").Range("i2").Value
Cxmil = Worksheets("tablas").Range("j2").Value
Ing = Worksheets("tablas").Range("k2").Value
Saldo = Ing - (Mov + Otg + Cxmil)
txbCeldaSaldo.Text = Saldo
txbCeldaSaldo = Format(txbCeldaSaldo, "#,##0")
If txbCeldaSaldo.Text > "0" Then
txbCeldaSaldo.ForeColor = vbBlue
Else
txbCeldaSaldo.ForeColor = vbRed
End If
End Sub




Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida