... je reprends ...
la première ligne de cet onglet comporte en A1 "initialisation ?" et B1 doit rester vierge
Le principe de fonctionnement est qu'à la première connexion, la cellule B1 se mette à "ok" et les lignes soient renseignées des valeurs propres au poste/utilisateur
4- on crée aussi un onglet _accueil
qui lui seul restera visible (il en faut bien un)
5- la macro est alors la suivante, à mettre dans ThisWorkBook
Option Explicit
Private Sub Workbook_Open()
Dim ws As Worksheet
Dim ligne%
Dim ok As Boolean
With Sheets("_param")
If .Cells(1, 2) = "ok" Then
ok = True
For ligne = 2 To .[A1].End(xlDown).Row
If .Cells(ligne, 2) <> Environ(.Cells(ligne, 1)) Then ok = False
Next
If Not ok Then
MsgBox "Vous n'êtes pas autorisé à travailler sur ce fichier !"
ThisWorkbook.Saved = True
ThisWorkbook.Close
End If
Else
For ligne = 2 To .[A1].End(xlDown).Row
.Cells(ligne, 2) = Environ(.Cells(ligne, 1))
Next
.Cells(1, 2) = "ok"
End If
End With
For Each ws In Worksheets
If ws.Name <> "_param" Then ws.Visible = True
Next
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean) 'masque toutes les feuilles avant de fermer
Dim ws As Worksheet
Sheets("_accueil").Activate
For Each ws In Worksheets
If ws.Name <> "_accueil" Then ws.Visible = xlVeryHidden
Next
End Sub
on peut changer les noms d'onglet _accueil et _param à condition des les changer aussi dans la macro