Bonjour,
Ci-joint ton fichier modifié.
Apparemment la propriété "ScrollArea" ne fonctionne pas avec des plages discontinues.
Sur la page "Mots de passe", lister les logins des utilisateurs (le nom ne commence pas par un chiffre et ne comporte pas d'espaces)
La plage "Table" récupère en colonne A les utilisateurs. A partir de des noms d'utilisateurs, on définit les plages distinctes pour chaque utilisateur.
Pour toi, à l'ouverture du classeur, tu sera dirigé vers la cellule A1 de le feuille "Table". Lances la procédure "AfficheToutesColonnes()"
et regardes la structure de la feuille.Tu mets ensuite ton login en Cellule A2 de la feuille "Mots de passe". Tu enregistres, tu quittes puis tu ouvres à nouveau ton classeur.
Cdlt.
Private Sub Workbook_Open()
On Error Resume Next
'On affiche le login de l'utilisateur
MsgBox "Bonjour : " & Environ("username")
'On rédéfinit les plages nommées par login
Call Définition_ScroolArea
'Cette propriété renvoie ou définit la plage dans laquelle le _
défilement est permis sous la forme d'une référence de plage de type A1. _
Il est impossible de sélectionner les cellules situées hors de la zone de défilement.
Worksheets("Table").ScrollArea = Environ("username")
'Si le login n'est pas connu, on selectionne la cellule A1
If Err <> 0 Then Worksheets("Table").ScrollArea = "A1"
End Sub
Public Sub Définition_ScroolArea()
Dim sH As Worksheet
Dim Plage As Range
Dim Nom As Variant
Dim derLigne As Integer
Dim i As Integer
Application.ScreenUpdating = False
Set sH = Worksheets("Table")
'On supprime tous les champs nommés par sécurité
On Error Resume Next
For Each Nom In ActiveWorkbook.Names
Nom.Delete
Next
On Error GoTo 0
With sH
'Numéro de la dernière ligne de la colonne B
derLigne = Range("B" & Rows.Count).End(xlUp).Row
'On boucle et on attribue le nom de la personne au champ sélectionné
For i = 2 To derLigne Step 2
Range(Cells(i, 3), Cells(i + 1, 7)).Select
ActiveWorkbook.Names.Add Name:=Cells(i, 1).Value, _
RefersToR1C1:=Range(Cells(i, 3), Cells(i + 1, 7))
Next i
End With
End Sub