Code d'erreur osheet.visible = False

Bonjour,

Je tente de rendre mes onglets non visible si un mot de passe n’est pas inscrit.
Toutefois j’ai un bug dans mon code.

Quelqu’un pourrait m’aider ?
image

Voici le code d’erreur
image

Quelqu’un a un idée de ce que je devrait modifier ? J’ai tenté plusieurs choses et jamais cela ne fonctionne !

Merci,
Bonne journée
Julie

Bonjour,
Avec :

Option Explicit
Sub MasquerTout()
Dim sh As Object
  For Each sh In Sheets
    If LCase(sh.Name) <> "accueil" Then sh.Visible = xlSheetHidden
  Next sh
End Sub 

Notes que si l’utilisateur modifie le nom de la feuille accueil, cette macro plantera…
Il est préférable d’utiliser le CodeName pour identifier la feuille Accueil.

Par exemple :

Option Explicit
Sub MasquerTout()
Dim sh As Object
  For Each sh In Sheets
    If LCase(sh.Name) <> shAccueil.Name Then sh.Visible = xlSheetHidden
  Next sh
End Sub 

En renommant le CodeName d’accueil.

Ça ne fonctionne pas plus :frowning:

Bonjour,
Regarde dans le classeur où tu as « pomper » le code, il y a un « MODULE DE CLASSE » à copier et à mettre dans ton programme

J’ai pris le code en regardant des video sur youtube… j’ai retranscrit le code et il ne fonctionne pas !

Re,
Sauf que tu as oublié le module de classe
Reprend ta vidéo et regarde bien

Qu’est-ce qu’un module de classe ?? :cold_sweat: :cold_sweat:

Re,
Teste en rajoutant simplement cette ligne en dessous de

Public oSheet As Worksheet

cette ligne

Public Const smg = "ton mot de passe"
1 J'aime

Merciii ! J’ai oublié de le remettre lorsque j’ai changé de document !

Je galère encore avec d’autre codage !
Seriez-vous en mesure de m’aider ?


image

image

Re,
Sans classeur ???
A savoir si « EMPLOYES » est initialisé dans le gestionnaire de noms ???

TEMPS PROJET.xlsm (547,8 Ko)

Oups, voici le classeur

Re,
« EMPLOYES » ou « EMPLOYE »
Je pense qu’avec un « S » de moins :smile:

Ca prend bien le S de EMPLOYE je l’ai codé dans la liste avec un S

TEMPS PROJET.xlsm (549,3 Ko)

J’ai corrigé des trucs, mais ca ne fonctionne toujours pas !

Il n’y a qu’un seule raison pour que ce code ne fonctionne pas : tu n’as pas renommé le CodeName de la feuille Accueil comme je t’avais dit de le faire !
Bien évidemment, le nouveau codeName doit être shAccueil

Ceci dit, je commence tous mes modules par Option Explicit et je n’utilise jamais de variable publique, ça évite ce genre de problème

Je n’ai pas de haute connaissance, alors je ne sais pas comment renommée le CodeName de la feuille

Dans le VBE fenêtre Propriété
codename

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.