¿Por qué se usa esto en esta expresión en esta macro?

Buenas expertos.

Es que estoy estudiando macros y no entiendo porque se usa la expresión  "iYesterday = iToday" en la siguiente macro. La he subrayado y se encuentra después del End If.

Sub ShowWeeks()

Dim iToday As Integer

Dim iYesterday As Integer
Range("B11").Select

iYesterday = Weekday(ActiveCell.Value)

Do Until IsEmpty(ActiveCell.Value)

ActiveCell.Offset(1, 0).Select

iToday = Weekday(ActiveCell.Value)

If iToday < iYesterday Then

ActiveCell.EntireRow.Insert

ActiveCell.Offset(1, 0).Select

End If

iYesterday = iToday

Loop

Range("A1").Select

End Sub

De antemano agradecido con ustedes.

1 respuesta

Respuesta
1

La rutina evalúa en una lista de fechas los nros de semana dejando 1 fila vacía entre cambios de semana.

IYesterday toma el valor de la primer fecha (B11) y la variable iToday toma la de la celda activa...

Cuando se produce un salto por cambio de semana, el nuevo criterio pasa a ser la última celda evaluada, es decir la que tenía iToday... por eso se lo pasa a iYesterday que es la que queda fija y la otra va recorriendo la col hasta dar con una nueva semana.

Espero haberte aclarado un poco el tema.

PD) Te invito a visitar la sección Manuales de mi sitio ... y buscar el botón del mes.

Hola Elsa.

Mil gracias por dedicarme un poco de tu tiempo. He comprendido ya el sentido de la rutina. Lo que no logro explicarme aún es por qué no funciona igual si resto al código la parte ubicada después de "End If" que dice: iYesterday = iToday.

Disculpa mi cabeza dura.

PD. Debes quitar la tilde a la "o" de galeón, porque no deja que el enlace funcione. Excelentes productos. En breve seré uno más de tus clientes.

Porque siempre estarías consultando por la primer fecha, la de B11 y todas las demás se evaluaría como una 'semana distinta' insertando una fila por cada registro.

En cambio cuando guardas la variable del último registro evaluado, las fechas que a continuación caen en la misma semana se copian sin saltos, ¿se comprendió?

PD) El corrector, nuevo invento del foro, me corrige automáticamente la palabra... ;(

Gracias por avisarme.

Te recuerdo que la consulta sigue abierta... mientras no podrás dejar otras nuevas en el tablón.

Sdos

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas