Como actualizar un label cada 1 segundo

Muchachos otra vez, tengo una duda como puedo actualizar un label cada 1 segundo, les cuento tengo un formulario donde meto datos todo los días y tengo unas label que me muestran unos montos, hace toda la función de mostrar los pero si meto uno nuevo no se actualiza hasta que lo cierro acá tengo los códigos

Private Sub Label1_Change()
Label1.Caption = Sheets("Hoja1").Range("B2")
End Sub

Private Sub UserForm_Activate()
Label1.Caption = Sheets("Hoja1").Range("B2")

End Sub

Alguna sugerencia o Ayuda se lo agradecería mucho saludos cordiales

Respuesta
1

Los labels no tienen evento change, eso no existe eh

hola jamón ingles, así fue la única forma que  veía la información al abrir el formulario, pero al ingresar un nuevo dato no se queda en la ultima información hasta que cierre el formulario y lo vuelva a abrir cambia el label

Pues no, no hace nada eso, el evento que actualiza es el "Activate" del Userform. Es casi un adorno eso del label tal cual está puesto, de verdad

1 respuesta más de otro experto

Respuesta
1

En el evento donde pasas la información a la hoja, ahí debes poner la instrucción, por ejemplo, si tienes un commandbutton para enviar los datos a la hoja, entonces quedaría así:

Private Sub CommandButton1_Click()
    Sheets("Hoja1").Range("B2") = TextBox1 'este es un ejemplo
    'aquí tu demás código
    Label1.Caption = Sheets("Hoja1").Range("B2")
End Sub

Este evento no es necesario

Private Sub Label1_Change()
Label1.Caption = Sheets("Hoja1").Range("B2")
End Sub

Avísame si tienes dudas.

Gracias Dante este es lo que quiero se ve en la foto que meti ese dato de 160 al sistema y si te fijas en la tabla de excel b2 esta la suma total y el el formulario sistema muestra 1280 osea no se actualiza hasta que cierre el formulario y lo vuelva a abrir

ojala que me entiendas la idea que al meter los datos se actualice en conforme se actualiza la celda b2, quedo atento a tus comentarios

Esos 160, ¿en qué momento los pasas a la hoja?

Entonces en ese momento pones esto:

    Label1.Caption = Sheets("Hoja1").Range("B2")
    DoEvents

Prueba y me comentas

gracias dante por contestar muy agradecido por tu interés en mi problema, en donde coloco ese fragmento de código?

Tienes código en tu userform.

¿Tienes algún botón que presionas para pasar esos 160 a la celda B2? Veo en tu imagen que tienes un botón llamado "Guardar"

Puedes poner ese código, ahí en ese código tienes que poner el fragmento del código, justo después de que se actualiza la celda B2

¿Disculpa Dante mi ignorancia coloco el fragmento donde me pasas en primer código o solo coloque este en mi botón guardar?

Aquí

Private Sub CommandButton1_Click()
    Sheets("Hoja1").Range("B2") = TextBox1 'este es un ejemplo
    'aquí tu demás código
    Label1.Caption = Sheets("Hoja1").Range("B2")
End Sub

o solo este

    Label1.Caption = Sheets("Hoja1").Range("B2")
    DoEvents

Pero no estás poniendo tu código, necesito ver tu código para decirte en dónde exactamente.

Lo que yo te envié es un ejemplo para que lo adaptes a tu código, pero si tienes dificultades para hacerlo, tienes que poner tu código para poder ayudarte.

También dime cómo se llaman tus userform.

O envíame tu archivo y te adapto el código

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “hans alexis poblete venegas

Oks dante te mando todo completo

Queda así:

En el form frm_entrada en el botón de guardar, agregué esta línea:

frm_sistema.Label1 = Sheets("Hoja1").Range("B2").Value

Tienes que poner el nombre del formulario que vas a afectar y de qué hoja y de cuál celda vas a tomar el dato.

La macro completa:

Private Sub CommandButton1_Click()
On Error Resume Next
    'Por.Dante Amor
    'Pasar los datos del form a la hoja
    If ComboBox1.ListIndex = -1 Or ComboBox1 = "" Then
        MsgBox "Selecciona el mes requerido"
        ComboBox1.SetFocus
        Exit Sub
    End If
    If TextBox2.Value = "" Then
        MsgBox "Necesita tener una Cantidad para guardar"
        ComboBox1.SetFocus
        Exit Sub
    End If
    '
    If ComboBox2 <> "" Then
       With Sheets(ComboBox1.Value)
       vf = .Range("B3:B1000000").Find(ComboBox2, LookIn:=xlValues).Row
    If vf <> "" Then
       MsgBox "Se intentando ingresar un dia duplicado", vbCritical, "AVISO"
    Exit Sub
    End If
    Set h = Sheets(ComboBox1.Value)
    u = h.Range("A" & Rows.Count).End(xlUp).Row + 1
    h.Cells(u, "A").Value = ComboBox1.Value
    h.Cells(u, "B").Value = ComboBox2.Value
    h.Cells(u, "C").Value = TextBox1.Value
    h.Cells(u, "D").Value = TextBox2.Value
    '
    'continuar con los demás controles
    '
    frm_sistema.Label1 = Sheets("Hoja1").Range("B2").Value
    MsgBox "Registrado"
    '
    TextBox3.Value = ""
    TextBox5.Value = ""
    End With
   End If
End Sub

.

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas