Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Gestion utilisateur onglet visible ou non

julien34

XLDnaute Occasionnel
Bonjour à tous,

J'ai besoin d'un coup de main sur un code que je n'arrive pas à adapter à mon appli.
Ci joint le fichier qui fonctionne.
Impossible de le faire fonctionner chez moi.

Il plante sur
Code:
Sheets(.Cells(1, i).Value).Visible = True 'on affiche la feuille

Pouvez vous m'aider svp ?
Est ce parce que le nombre d'onglets diffèrent ? ou autre ?

Merci de m'éclairer ...
 

Pièces jointes

  • CJeqKJgbzwQ_motdepasseouverture.xls
    108 KB · Affichages: 56
  • CJeqKJgbzwQ_motdepasseouverture.xls
    108 KB · Affichages: 62
  • CJeqKJgbzwQ_motdepasseouverture.xls
    108 KB · Affichages: 67

julien34

XLDnaute Occasionnel
Re : Gestion utilisateur onglet visible ou non

Bonjour,

Je sais qu'avec le fichier qui ne fonctionne pas ce serait mieux mais pb de confidentialité ( grille tarifaire etc ....)
Je tente de faire un fichier test et je le poste !
Merci
 

julien34

XLDnaute Occasionnel
Re : Gestion utilisateur onglet visible ou non

Re,

J'ai essayé sur un classeur vierge ça marche. Donc je conçois qu'il est difficile pour vous de comprendre pourquoi ça ne fonctionne pas chez moi sur mon appli. Mais ne pouvant pas divulguer certaines info, je ne sais pas trop comment procéder ! Bien bloqué
 

julien34

XLDnaute Occasionnel
Re : Gestion utilisateur onglet visible ou non

Tout se déroule correctement jusqu'à
Code:
Sub AfficheFeuilles(Utilisateur As String)
Dim Col As Byte, i As Byte, Lig As Integer

With Sheets("Droitsusers") 'dans la feuille paramétrage
    'comme on va boucler de la colonne 4 à la dernière colonne, on stocke le n° de la dern colonne :
    Col = .Cells(1, .Cells.Columns.Count).End(xlToLeft).Column
    'on cherche colonne A le nom d'utilisateur saisi et on stocke son num de ligne
    Lig = .Columns(1).Cells.Find(Utilisateur, lookat:=xlWhole).Row
    'boucle à partir de 3 car Feuil1 toujours affichée
    For i = 3 To Col
        If UCase(.Cells(Lig, i)) = "X" Then 'si on trouve un "X" dans la cellule
            Sheets(.Cells(1, i).Value).Visible = True 'on affiche la feuille
        Else
           Sheets(.Cells(1, i).Value).Visible = xlSheetVeryHidden 'sinon on la masque
        End If
    Next i
End With
End Sub

Et il plante sur
Code:
Sheets(.Cells(1, i).Value).Visible = True 'on affiche la feuille
 
Dernière édition:

gilbert_RGI

XLDnaute Barbatruc
Re : Gestion utilisateur onglet visible ou non

cette feuille existe t elle ?

faites avant soit un msgbox sheets(.cells(1,i).value).name
ou faites un débogage
Debug.Print Sheets(.Cells(1, i).Value).Name

vous pouvez voir dans la fenêtre "Execution" le nom des feuilles
 
Dernière édition:

julien34

XLDnaute Occasionnel
Re : Gestion utilisateur onglet visible ou non

Bonjour gilbert_RGI,

Je ne connais pas cette méthode.
J'ai placé un msgbox sheets(.cells(1,i).value).name

Résulat, j'ai 2 msg box apres avoir rentré identifiant et mdp
"parametrage" et "feuil1"

Tu peux m'orienter stp?
Merci d'avance

PS: J'ai renommé la feuille "Droitusers" par "parametrage"
 

julien34

XLDnaute Occasionnel
Re : Gestion utilisateur onglet visible ou non

La feuil1 il la trouve puisque c'est là qu'on lui demande d'afficher le userform pour rentrer id et mdp et ça marche!
C'est après validation que ça plante
Très honnêtement là j'suis un peu perdu
 

gilbert_RGI

XLDnaute Barbatruc
Re : Gestion utilisateur onglet visible ou non

comment as tu placé la ligne

 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…