Code simple, mais ne fonctionne pas

Bonjour chers tous.

J'ai un code que d'ailleurs je pense avoir pris sur ce forum il y a quelques années.

il est supposé afficher les feuilles selon l'utilisateur a l'ouverture du classeur sur un clic sur commandbutton.

le voici, mais il ne masque pas les feuilles chez moi, quelqu'un peut il m'aider ?

 Private Sub AfficheFeuilles(Utilisateur As String)
'
  Dim Col As Byte, i As Byte, Lig As Integer, Clx As String

  With Utilisateurs  '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
    For i = 4 To Col
      If (.Cells(Lig, i)) = "x" Then  'si on trouve un "X" dans la cellule
         Clx = .Cells(1, i).Value
         Sheets(Clx).Visible = xlSheetVisible 'on affiche la feuille
      Else
        Sheets(Clx).Visible = xlSheetVeryHidden 'sinon on la masque
      End If
    Next i
  End With
End Sub

Salut

essaye de lancer a l’ouverture :

Sub test()
Set Documents = Workbooks("bla bla.xlsx")
For Each sh In Documents.Sheets
If Not sh.Name = "bla bla" Then sh.Visible = xlSheetVeryHidden
Next
End Sub

Essaie de lancer ceci a l'ouverture.

bonjour

je ne comprends pas s'il te plaît ce en quoi ce code me servirait.

peux tu m'expliquer ? Est ce a l'ouverture de mon classeur ou du formulaire

merci

J'ai essayé il envoie l'erreur 1004. Erreur définie par l'application ou par l'objet

Salut

essaye ça :

'palcer dans "ThisWorbook" avec un evenement
Private Sub Workbook_Open()
Dim Documents
Set Documents = Workbooks("Bla bla.xlsm") ' replace "Bla bla.xlsm" par le vrai nom de ton classeur a ouvrir
For Each sh In Documents.Sheets
If Not sh.Name = "Nfeuil" Then
sh.Visible = xlSheetVeryHidden ' replace "Nfeuil" par le vrai nom de feuilles a garder ouverte
End If
Next
End Sub

bonjour à tous,

essaie ceci (non testé)

Private Sub AfficheFeuilles(Utilisateur As String)
'
  Dim Col As long, i As long, Lig As long, Clx As String

  With Utilisateurs  '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
    For i = 4 To Col
      Clx = .Cells(1, i).Value 'cette instruction n'était pas au bon endroit
      If Ucase(.Cells(Lig, i)) = "X" Then  'si on trouve un "X" dans la cellule instruction adaptée pour tester x ou X
        Sheets(Clx).Visible = xlSheetVisible 'on affiche la feuille
      Else
        Sheets(Clx).Visible = xlSheetVeryHidden 'sinon on la masque
      End If
    Next i
  End With
End Sub
Rechercher des sujets similaires à "code simple fonctionne pas"