Option Explicit
Function ColToLet$(ByVal x&)
'donne la combinaison de lettres du n° de colonne entré
Select Case x
Case Is <= 26
ColToLet = Chr(64 + x Mod 27)
Case Is <= 702
x = x - 26
ColToLet = Chr(64 + (Int((x - 1) / 26) + 1) Mod 27)
x = x - 26 * (Int((x - 1) / 26))
ColToLet = ColToLet & ColToLet(x)
Case Is <= 16384
x = x - 702
ColToLet = Chr(64 + (Int((x - 1) / 676) + 1) Mod 27)
x = x - 676 * (Int((x - 1) / 676)) + 26
ColToLet = ColToLet & ColToLet(x)
End Select
End Function
Function Col1Week2%()
'renvoie la première colonne (lundi) de la 2ème semaine de l'année
'(norme ISO 8601 : la semaine commence le lundi, lundi=1 dimanche=7, semaine 1 = contient le 1er jeudi de l'année.
'à adapter Rw : n° de ligne ou apparaissent les jours
' Lg : largeur en cellules d'une journée
' C1 : 1ère colonne du calendrier
Dim Rw%, Cpt%, C1%, Lg%
Rw = 2: Lg = 5: C1 = 2
Cpt = 0
Do
If WorksheetFunction.Weekday(Cells(Rw, C1)) = 5 Then Cpt = Cpt + 1
If Cpt < 2 Then C1 = C1 + Lg
Loop Until Cpt = 2
Col1Week2 = C1 - 3 * Lg
End Function