Visual Basic para Aplicaciones - saber dias transcurridos del año

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 177
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

saber dias transcurridos del año

Publicado por Albert (204 intervenciones) el 26/11/2016 20:18:12
Buenos días foreros, necesito en contra la forma que tiene vba para substituir lo siguiente

=B2-FECHA(AÑO(B2);1;1)

con esto consigo saber cuantos días han transcurrido del año.

Quiero poner en un text box de un formulario que cada día salga una "frase " como en las agendas de papel, ya tengo muchas recopiladas en una hoja donde en la columna "A" he numerado del 1 al 366 (por si es año bisiesto) y en la "B" están las frases, la cosa es saber que día es hoy del año y así poner la frase que le toca.
Por mas que he buscado no encuentro la manera de hacerlo en vba, en Excel hay mil paginas que lo cuentan pero ni revisando este magnifico foro lo encuentro

Como siempre mil gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 177
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

saber dias transcurridos del año

Publicado por Albert (204 intervenciones) el 26/11/2016 22:19:59
He conseguido este código que calcula la diferencia entre dos fechas, ahora necesito poner la fecha del 1 de enero y que me sirva todos los años ,he intentado
TheDate =1/1/yyyy
TheDate = cDate (1/1/yyyy)

pero no se como hacerlo


Dim TheDate As Date
TheDate = Date
TextBox5 = DateDiff("d", Now, TheDate)

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

saber dias transcurridos del año

Publicado por Oscar Rubió (19 intervenciones) el 27/11/2016 14:55:19
Creo que con esto funcionará:

1
2
3
4
5
6
7
8
9
10
11
Private Sub UserForm_Activate()
Sheets("Hoja1").Select
miFecha = DateSerial(Year(Now), 1, 1)
dias = DateDiff("d", miFecha, Now)
For i = 1 To 366
    If dias = Cells(i, 2).Row Then
        TextBox1 = Cells(i, 2)
        Exit For
    End If
Next i
End Sub

Asegúrate de que los datos están en la hoja "Hoja1".
Otra cosa; en realidad la columna a:a no es necesaria, con lo que si quieres puedes eliminarla y poner las frases directamente en la columna a:a, pero deberás cambiar la columna de Cells(i,2) por Cells(i,1)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 177
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

saber dias transcurridos del año

Publicado por Albert (204 intervenciones) el 27/11/2016 19:43:26
Gracias por tu respuesta , DateSerial(Year(Now), 1, 1) , era justo lo que no sabia hacer.... del resto que he de decir funciona de maravilla y además me resuelves otro problemita que tenia con otro código.
Realmente GRACIAS de veras
Albert
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

saber dias transcurridos del año

Publicado por Oscar Rubió (19 intervenciones) el 28/11/2016 02:27:44
No hay de que, aunque debo decir que para que funcione a la perfección el valor de la variable miFecha debería ser de un día antes, ya que como no existe la fila 0, el valor de "dias" nunca debería ser 0, con lo que la fórmula quedaría así:

miFecha = DateSerial(Year(Now) - 1, 12, 31)

De la otra manera, el día uno de Enero de cada año nos daría error, pues la diferencia de días es 0...

Saludos y suerte, ah!!, y recuerda que la última frase sólo se verá cada 4 años...:)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 177
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

saber dias transcurridos del año

Publicado por Albert (204 intervenciones) el 28/11/2016 10:17:30
Gracias por todo, intentaremos no trabajar el uno del uno, jejejeje ya me había dado cuenta pero es que es fiesta , jejejeje
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar