Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ignore = true
End Sub
Public Sub antimode()
if not ignore then
If Application.VBE.ActiveVBProject.Mode > 0 Then Range("A1") = Range("A1")
Application.OnTime Now + TimeValue("00:00:01"), "antimode"
end if
End Sub
Si expression1 alors
sinon expression2 alors
....
fin si
si non expression1 et que expression2 alors
...
fin si
ElseIf Intersect(Target, Range("AE1")) Is Nothing Then
Application.Undo
Dim plage As Range, cellibre As Range, c As Long, r As Long
Set cellibre = Range("B8")
c = cellibre.Column
r = cellibre.Row
Set plage = Union(Range(Cells(1, c), Cells(r - 1, c)), Range(Cells(r + 1, c), Cells(UsedRange.Rows.Count, c)))
For Each colonne In UsedRange.Columns
If colonne.Column <> c Then
Set plage = Union(plage, colonne)
End If
Next
MsgBox "ta plage à protéger selon l'utilisateur est donc la plage " & plage.Address & vbCrLf & _
"regarde ... je vais la sélectionner. Elle comprend toutes les cellules, sauf la B8"
plage.Select
Worksheets("Feuil2").Unprotect
Sheets("Feuil2").Cells.Locked = True
Range("B8").Locked = False
Worksheets("Feuil2").Protect , DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionje ne peux pas mettre tous simplement de protection car le fichier est partagée
Private Sub Workbook_Open()
Flaggreen = True
Select Case VBA.Environ("username")
Case "superuser"
Case Flaggreen = True
Application.OnTime Now + TimeValue("00:00:00"), "antimode"
Case Flaggreen = False
End Select
End Sub
Public Sub antimode()
If Application.VBE.ActiveVBProject.Mode > 0 Then Range("A1") = Range("A1")
Application.OnTime Now + TimeValue("00:00:01"), "antimode"
End Sub
Modifié par mikmak78 le 2/02/2016 à 14:55
Je vais tester et je te redis
merci de ton aide
Modifié par mikmak78 le 19/02/2016 à 16:53
merci