A voir également:
- Protéger plusieurs niveaus de protection selon les onglets
- Proteger cellule excel - Guide
- Protéger un dossier par mot de passe - Guide
- Restaurer les onglets chrome - Guide
- K9 web protection - Télécharger - Contrôle parental
- Ouvrir plusieurs onglets en même temps - Guide
3 réponses
Bonjour,
une piste a mettre dans ThisWorkbook. Se déclenchera à chaque activation d'une feuille:
une piste a mettre dans ThisWorkbook. Se déclenchera à chaque activation d'une feuille:
Option Explicit Private Sub Workbook_SheetActivate(ByVal Sh As Object) 'ton code End Sub
Maksime568
Messages postés
142
Date d'inscription
Statut
Membre
Dernière intervention
Vous me conseillez d'utiliser cela pour faire le verrouillage automatique des autres onglets?
Maksime568
Messages postés
142
Date d'inscription
Statut
Membre
Dernière intervention
ok, ça marche presque, car du coup je bloque aussi mon nouvel onglet dès sa création.
J'ai tenté cela mais ça ne fonctionne pas.
le but étant d'appliquer le verrouillage au feuilles ne portant pas comme nom la date du jour.
Private Sub Workbook_Open()
Dim onglet As Worksheet
'boucle sur toutes les feuilles du classeur
For Each onglet In Application.ActiveWorkbook.Worksheets
If onglet.Name <> Format(Date, "dd-mm-yy") Then
ActiveSheet.Unprotect
ActiveSheet.protect DrawingObjects:=False, Contents:=True, Scenarios:=False
End If
Next onglet
End Sub
le but étant d'appliquer le verrouillage au feuilles ne portant pas comme nom la date du jour.
Private Sub Workbook_Open()
Dim onglet As Worksheet
'boucle sur toutes les feuilles du classeur
For Each onglet In Application.ActiveWorkbook.Worksheets
If onglet.Name <> Format(Date, "dd-mm-yy") Then
ActiveSheet.Unprotect
ActiveSheet.protect DrawingObjects:=False, Contents:=True, Scenarios:=False
End If
Next onglet
End Sub
comme ceci:
Option Explicit Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim onglet As Worksheet For Each onglet In Application.Worksheets ActiveSheet.Protect Next onglet Sheets(Format(Date, "dd-mm-yy")).Unprotect End Sub
C'est normal si la feuille n'existe pas!
Pour y remédier 2 méthodes:
méthode radicale:
méthode douce:
Voilà
@+ Le Pivert
Pour y remédier 2 méthodes:
méthode radicale:
Option Explicit Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim onglet As Worksheet On Error Resume Next For Each onglet In Application.Worksheets ActiveSheet.Protect Next onglet Sheets(Format(Date, "dd-mm-yy")).Unprotect End Sub
méthode douce:
Option Explicit Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim onglet As Worksheet For Each onglet In Application.Worksheets ActiveSheet.Protect Next onglet For Each onglet In Application.Worksheets If onglet.Name = Format(Date, "dd-mm-yy") Then Sheets(Format(Date, "dd-mm-yy")).Unprotect End If Next onglet End Sub
Voilà
@+ Le Pivert
Merci de votre temps.
Alors, je n'ai pas de bug, cependant cela ne protège pas les autres feuilles.
En plus, je crois que j'ai fait une erreur dans mon raisonnement qui va planter le truc.
L'autre solution serait de toujours déprotéger l'onglet en position 2 et de verrouiller tous les autres.
serait-ce plus simple?
Alors, je n'ai pas de bug, cependant cela ne protège pas les autres feuilles.
En plus, je crois que j'ai fait une erreur dans mon raisonnement qui va planter le truc.
L'autre solution serait de toujours déprotéger l'onglet en position 2 et de verrouiller tous les autres.
serait-ce plus simple?