Excel - Macro para buscar una fecha y seleccionar esa celda

 
Vista:
sin imagen de perfil

Macro para buscar una fecha y seleccionar esa celda

Publicado por Alberto (1 intervención) el 29/05/2018 19:13:22
00excel

Estoy intentando hacer una macro que pueda ponerse en (Worksheet - Activate) para que cada vez que se active la pagina me busque la fecha de hoy y me la ponga despues de la columna F como se ve en el ejemplo. Podeis ver que despues de la columna F esta la G con fecha 01/01/18 i en la columna EY esta la fecha 29/05/18 que es la de hoy.

Ahora lo hago con immobilizar paneles en la celda G2 i moviendo las barras desplazadoras, pero quisiera que lo hiciera de forma automatica al ativar la pagina.

Si alguien puede ayudarme le estaria agradecido.
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

Macro para buscar una fecha y seleccionar esa celda

Publicado por Javier (1 intervención) el 18/10/2019 14:45:13
Hola Alberto,

Según te he entendido, lo que quieres es una macro que después de la columna F (es decir en la G) se muestre la fecha actual y las futuras quedando por tanto todas las fechas pasadas y sus columnas respectivas ocultas y que esta macro sólo se ejecute si la hoja en la que tienes los datos se encuentra activa.

Te diré que si estableces un botón para la macro en la hoja donde tienes los datos, cada vez que pulses en este botón (y por tanto ejecutes la macro), esta hoja se encontrará activa por tanto no veo mayor complicación.

En primer lugar te recomiendo que insertes una fila justo debajo de las fechas

Mi recomendación de código sería:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Sub Buscar_Fecha_Actual()
 
Dim Fecha As Date
 
Application.ScreenUpdating = False
 
Columns.EntireColumn.Hidden = False
 
Fecha = DateValue(Now)
 
Application.Goto Reference:=Range("G1")
 
  uf = 0
  Do While uf < 10000
     uf = Range(ActiveCell.Address).Column
     If ActiveCell < Fecha Then
        Selection.EntireColumn.Hidden = True
        ActiveCell.Offset(0, 1).Activate
     Else
        ActiveCell.Offset(0, 1).Activate
     End If
  Loop
 
  Application.ScreenUpdating = True
 
End Sub

Date cuenta que según la cantidad de columnas que tengas (es decir, hasta donde hayas definido el horizonte temporal) tendrás que cambiar el valor de "Do While uf <", ahora está en 10000 que cubriría una gran cantidad de columnas (si los datos abarcaran más puedes aumentar el número).

La macro empieza a correr en bucle en la columna G y en la fila 1 y va ocultando dichas columnas y sus datos hasta encontrar la fecha actual (DateValue.Now) y deja dicha columna y sus datos con la fecha actual justo después de la columna F así como las columnas siguientes con fechas mayores (futuro) a la fecha actual.

Un saludo
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