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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i As Integer
Dim plg(1 To 39) As Range
Dim monthRanges As Variant
Dim cell As Range
' Assigner les plages pour chaque mois
monthRanges = Array( _
"M22:M52", "Z22:Z51", "AM22:AM52", "AZ22:AZ52", "BM22:BM50", "BZ22:BZ52", _
"CM22:CM51", "CZ22:CZ52", "DM22:DM51", "DZ22:DZ52", "EM22:EM52", "EZ22:EZ51", "FM22:FM52", _
"N22:N52", "AA22:AA51", "AN22:AN52", "BA22:BA52", "BN22:BN50", "CA22:CA52", _
"CN22:CN51", "DA22:DA52", "DN22:DN51", "EA22:EA52", "EN22:EN52", "FA22:FA51", "FN22:FN52", _
"O22:O52", "AB22:AB51", "AO22:AO52", "BB22:BB52", "BO22:BO50", "CB22:CB52", _
"CO22:CO51", "DB22:DB52", "DO22:DO51", "EB22:EB52", "EO22:EO52", "FB22:FB51", "FO22:FO52" _
)
' Remplir le tableau plg avec les plages spécifiées
For i = 1 To 39
Set plg(i) = Range(monthRanges(i - 1))
Next i
On Error GoTo fin
' Parcourir le tableau plg et vérifier l'intersection avec la cellule cible
For i = 1 To 39
For Each cell In plg(i)
If Not Intersect(Target, cell) Is Nothing Then
Select Case i
Case 1 To 13
ActiveCell.Value = IIf(ActiveCell.Value = "Ev", "", "Ev")
Case 14 To 26
ActiveCell.Value = IIf(ActiveCell.Value = "HF", "", "HF")
Case 27 To 39
ActiveCell.Value = IIf(ActiveCell.Value = "gF", "", "gF")
End Select
Exit For
End If
Next cell
Next i
fin:
Cancel = True
End Sub |
Partager