Como puedo utilizarla función now en un Formulario

Tengo el siguiente modulo para ir descontando los días hasta hoy y lo he situado e un modulo pero no me funciona, directamente en mi excel me funciona pero no cuando lo incluyo en mi formulario en un modulo, cual es mi error y quien me puede ayudar

Sub contandolosdias()

Sheets("Auftragsliste").Unprotect pass
lastrow = Sheets("Auftragsliste").Cells(Rows.Count, "A").End(xlUp).Row
Sheets("Auftragsliste").Range("J:J").Locked = False
With Range("N2:N" & lastrow)
.Formula = "=If(NOW(),<j2,j2-NOW())"
End With
End Sub

1 respuesta

Respuesta
1

La fórmula que estás intentando colocar en ese rango tiene un error de sintaxis:

- Has colocado: "=If(NOW(),<j2,j2-NOW())"

- Deberías colocar: "=If(NOW()<j2,j2-NOW())"

Tienes una coma (,) de más. Ah, no olvides que si quieres que en todas las celdas quede como J2", debe colocar los valores como absolutos:

"=If(NOW()<$j$2,$j$2-NOW())"

Comentas

Abraham Valencia

¡Gracias! . Como debo poner la función en mi formulario: ¿Cómo un modulo? ¿Puedes ponerme la codificación completa como iría en mi formulario?

Muchísimas Gracias por tus raoidas respuestas.

Eusebio

¿Te refieres a que se aplique algo así y su resultado se vea en un...? ¿Textbox?

Comenta

Abraham Valencia

¡Gracias! Si, yo lo que quiero quiero es :

En Cells(sonsat, 10) = TextBox10.Text tengo una fecha y  en Cells(sonsat, 14) = TextBox17.Text

Se deben ver los resultados, eso es para ir descontando los día desde una fecha determinada hasta hoy.

Abtan yo lo que quiero es todas mis Funciones estén en mi formulario y no en mi hojade excel

Por eso prguntaba sobre la función de trabajpo que es el mismo problema, yo quiero saber como y donde se introduce esa función en una codificación VBA en que parte, de formulario y por eso pido siempre ejemplo.

sonsat = Sheets("Auftragsliste").Cells(Rows.Count, 1).End(xlUp).Row + 1
Call Main 'Progress Bar
Cells(sonsat, 1) = TextBox1.Text
Cells(sonsat, 2) = TextBox2.Text
Cells(sonsat, 3) = TextBox3.Text
Cells(sonsat, 4) = TextBox4.Text
Cells(sonsat, 5) = TextBox5.Text
Cells(sonsat, 6) = TextBox6.Text
Cells(sonsat, 7) = TextBox7.Text
Cells(sonsat, 8) = ComboBox3.Text
Cells(sonsat, 10) = TextBox10.Text
Cells(sonsat, 11) = TextBox11.Text
Cells(sonsat, 12) = TextBox12.Text
Cells(sonsat, 13) = TextBox9.Text
Cells(sonsat, 14) = TextBox17.Text
Cells(sonsat, 15) = TextBox18.Text
Cells(sonsat, 18) = TextBox20.Text
Cells(sonsat, 19) = TextBox8.Text
Cells(sonsat, 12) = Val(TextBox7) * Val(ComboBox3)
Cells(sonsat, 8) = Val(ComboBox3)

Si lo que buscas es algo como que en un TextBox (u otro objeto) tengas esto:

Y que te arroje un resultado, pues no se puede, estimado. No hay forma. Además, no olvides que los objetos de VBA no "almacenan" valores, es decir, al cerrar el "Userform" y/o el archivo, el valor de los objetos, en tu caso los TextBox, se perderá.

Una alternativa es usar algo así:

If Now < CDate(TextBox1) Then
TextBox2 = DateDiff("Y", Now, TextBox1)
End If

Tendrías que colocarlo en algún "evento" de uno de tus objetos y adaptarlo a tus necesidades. Ene se caso, te da la diferencia en cantidad de días. Si tienes muchos objetos, basta usar un bucle tipo For-Each por ejemplo

Abraham Valencia

¡Gracias! tal vez es mejor utilizarlo externo.

De todas formas Gracias, por tu dedicación a mis preguntas

Saludos

Eusebio

De nada. Un abrazo.

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas