Error al restar minutos y segundas en Excel VBA

Estoy diseñando un formulario donde tengo dos textbox con minutos y segundos y lo que pretendo es restalos entre si.

No se que estoy haciendo mal ya que tengo creada las variables y creo que el código debería ser correcto.

Dim TMinutos As Variant, TCuarto As Variant
Private Sub CommandButton1_Click()
'Establezco los formatos de la variable que sean en mm:ss, situados en los texbox DuracionCuarto y Minutos
TMinutos = Format(Me.Minutos.Value)
TCuarto = Format(Me.DuracionCuarto.Value)
'En el textbox EstrictaMitad quiero que conste el resultado de TCuarto y TMinutos y le aplic el formato de mm:ss
EstrictaMitad = Format(Me.EstrictaMitad, "mm:ss")
Me.EstrictaMitad = Format(TimeValue(TCuarto) - TimeValue(TMinutos), "mm:ss")
End sub

Creo que el codigo deberia funcionar pero no se el motivo de porque no me hace la resta, alguien sabria decirme el motivo? Mi intencion era que esa operación se hiciera cuando se intrudujera el dato en textbox Minutos.value

Respuesta
1

Si estás poniendo en los textbox minutos : segundos, por ejemplo:

25 minutos y 35 segundos MENOS 16 minutos y 15 segundos IGUAL 9 minutos y 20 segundos.

Es necesario completar el tiempo con las horas con "00", para que tengas horas, minutos y segundos.


No son necesarias las variables, puedes realizar el cálculo directamente con los textbox:

Private Sub CommandButton1_Click()
  EstrictaMitad = Format(TimeValue("00:" & DuracionCuarto) - TimeValue("00:" & Minutos), "hh:mm:ss")
End Sub

¡Gracias! Perfecto, ahora si que que me hace el calculo. Para borrar los 00 y : he usado el siguiente código:

EstrictaMitad = Mid(EstrictaMitad, 4)

Así solo aparece minutos y segundos.

Muchas gracias por tu tiempo Dante

Encantado de ayudarte, rec uerda valorar la respuesta.

También puedes hacerlo en una línea:

Private Sub CommandButton1_Click()
  EstrictaMitad = Mid(Format(TimeValue("00:" & DuracionCuarto) - TimeValue("00:" & Minutos), "hh:mm:ss"), 4)
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas