Bonjour,
J'ai un problème avec les fonctions xlSheetVeryHidden et xlSheetVisible.
Je réalise un programme excel pour une association, qui devra afficher des feuilles différentes en fonctions des nombreux utilisateurs.
Explications :
Dès l'ouverture du fichier, dans une form d'identification, l'utilisateur saisie son login et son mot de passe.
Ensuite, "la macro" va lire dans une feuille du fichier dans des cases pour vérifier que l'identification est correcte.
Puis ensuite, il ne va s'afficher dans le classeur que la feuille correspondante à l'utilisateur loggé.
Pour ce faire, j'utilise les fonctions xlSheetVeryHidden et xlSheetVisible (c'est indispensable, comparé au .Visible = True ou False perméable)
...enfin j'essaie des les faire marcher de façon fiable à coup sur!
Car ca marche une fois sur deux.
Mon code est pas du tout optimal, j'en suis conscient et ca doit venir de ça.
Néanmoins, c'est super important, donc si pous pouviez m'éclairer sur mes lacunes...
Voila la partie de code incriminée :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| ' Début du code
' On autorise l'affichage de cette feuille pour le traitement des mots de passe
Sheets("Mdp").Visible = xlSheetVisible
Sheets("Mdp").Select
...
' Si identification ok
ThisWorkbook.Windows(1).Visible = True '(...False avant)
nombre = ActiveWorkbook.Sheets.Count
i = 0
For var_boucle = 1 To nombre Step 1
nom_feuille = Range("K31").Offset(i, 0).Value
If nom_feuille <> "" Then
Sheets(nom_feuille).Visible = xlSheetVeryHidden
End If
i = i + 1
Next var_boucle
' Et en plus
Sheets("TOTAL").Visible = xlSheetVeryHidden
Sheets("TOTAL MENSUEL").Visible = xlSheetVeryHidden
' On charge la feuille correspondant à l'utilisateur sélectionné
' LA SEULE QUI DOIT S'AFFICHER
Sheets(TxtNom.Text).Visible = xlSheetVisible
...
ActiveWindow.WindowState = xlMaximized
Unload Usf1
' Fin du code |
Et ca marche pas terrible. J'ai essayé d'autres manières, mais c'est pas mieux...Suivant l'ordre de mes feuilles dans la colonne lue et l'ordre des mes onglets, ça ne m'affiche pas toujours les mêmes feuilles.
Il reste quasiment tout le temps des feuilles qui ne devraient absolument pas s'afficher.
Et des fois la ligne :
Sheets("TOTAL").Visible = xlSheetVeryHidden
ne fonctionne pas...
Donc c'est pas top du tout
...Si vous aviez une solution!
Merci d'avance.
Partager