Para ello puedes usa la función DateDiff, la cual te devolverá la cantidad de días, semanas, mese o anos transcurridos entre dos fechas, te dejo acá una forma fácil de usarla, solamente agrega una función en un modulo y podrás usarla en libro.
Esta función tiene cinco parámetros, los dos últimos son opcionales pero usaremos uno de ellos, para indicar el dia en que empieza la semana.
DateDiff( interval, date1, date2, [firstdayofweek], [firstweekofyear] )
- interval: Indica en que tipo de intervalos quieres la cuenta, días, semanas, anos etc. Para este caso usaremos "ww" para indicar semanas.
- Date1 y date2: Las fechas inicial y final respectivamente.
- Firstdayoftheweek: es un parámetro opcional, para indicar el día que empieza la semana, en este caso lo usaremos para establecer que empieza el viernes (vbFriday).
- (La información adicional como firsrweekofyear, o como establecer la cuenta en días o anos, te las dejo de tarea).
Ejemplo:
Function cantSemanas(fecIni As Date, fecFin As Date) As Long
cantSemanas = DateDiff("ww", fechaIni, fechaFin, vbFriday)
End Function
Es importante aclarar que el resultado sera la cantidad de viernes que han pasado entre las dos fechas, es decir si la primera fecha es jueves, y la segunda es sábado, pero solo han pasado tres días, se contara ese viernes como una semana, si eso es un problema puedes validar primero si la primera fecha para ver si es necesario restarle al resultado una semana.
Otra forma de hacerlo es contar la cantidad de días entre las fechas y dividirlas entre 7, considerando el día de cada fecha con la función WeekDayName(). Para ajustar a lo requerido.