Bonjour le forum
J'ai mis la macro ci-dessous à 2 endroits (1 en commentaires tout en en bas) quel est le plus logique?
Merci à vous pour vos éventuels retours
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In Sheets
Protection Sh
Next Sh
End Sub
Option Explicit
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Sh As Worksheet
Application.ScreenUpdating = False 'Rafraichissement écran
For Each Sh In ThisWorkbook.Worksheets
Sh.Select
Tri
Range("A1").Select
Next Sh
Application.ScreenUpdating = True
End Sub
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In Sheets
Protection Sh
Next Sh
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim N As Integer, Couleur As Integer, Indice As Integer
Dim X As String
Dim Tb, TbCoul
Application.ScreenUpdating = False
If Not Intersect(Range("C3:C100"), Target) Is Nothing Then
Cancel = True
TbCoul = Array(8, 4, 15)
Tb = Array("", "a")
'X = UCase(Trim(Target)) 'Pour mettre en Majuscule
X = (Trim(Target))
If UBound(Filter(Tb, X)) >= 0 Then
Indice = Application.Match(X, Tb, 0) Mod (1 + UBound(Tb))
Target = Tb(Indice)
Couleur = TbCoul(Indice)
If Couleur = 0 Then
Couleur = Target.Offset(0, -1).Interior.ColorIndex
End If
Target.Interior.ColorIndex = Couleur
Else
Target = ""
End If
ElseIf Not Intersect(Range("D3:D100"), Target) Is Nothing Then
Cancel = True
TbCoul = Array(8, 38)
Tb = Array("", "b")
'X = UCase(Trim(Target)) 'Pour mettre en Majuscule
X = (Trim(Target))
If UBound(Filter(Tb, X)) >= 0 Then
Indice = Application.Match(X, Tb, 0) Mod (1 + UBound(Tb))
Target = Tb(Indice)
Couleur = TbCoul(Indice)
If Couleur = 0 Then
Couleur = Target.Offset(0, -1).Interior.ColorIndex
End If
Target.Interior.ColorIndex = Couleur
Else
Target = ""
End If
End If
Application.ScreenUpdating = True
End Sub
'Private Sub Workbook_Open()
'Dim wSheet
'For Each wSheet In Worksheets
'Protection wSheet
'Next wSheet
'End Sub