Erreur protection onglet

Bonjour,

J’essaie de faire fonctionner ce code afin de faire multiutilisateur mon fichier mais j'ai erreur qui me dit que indice n'appartient pas à la sélection ?

Sachant que j'ai des nom des feuilles avec : TEXTE TEXTE, et NUMERO exemple ==> ACCEUIL, 2012, Calcul HS, etc...

Que les nom des champs sont :

Noms de champ

Droits =DECALER(Admin!$C$2;;;NBVAL(Admin!$A$2:$A$20);NBVAL(Admin!$C$1:$P$1))

feuille =DECALER(Admin!$C$1;;;;NBVAL(Admin!$C$1:$P$1))

motpasse =DECALER(Admin!$B$2;;;NBVAL(Admin!$B$2:$B$20))

utilisateur =DECALER(Admin!$A$2;;;NBVAL(Admin!$A$2:$A$20))

Si je met comme nom de Feuil pour 2012 = SH2012 la macro marche par contre si je met que 2012 elle me donne erreur.

Donc comment je puisse faire pour que la macro accepte les nom de feuille numérique.

Je vous joint le fichier exemple d'où j'ai pris la macro et même là bas j'ai la même erreur.

Une deuxième question : comment afficher tous les feuilles disponible sur ligne 1 de C1:C? afin que la liste des Feuilles soit à jour quand je supprimer une feuille ou ajouter.

Une troisième question : Comment faire que mes champs soient dynamique ?

Merci pour votre aide et votre dispos pour m'aide de résoudre mon problème

Private Sub B_ok_Click()
  If Me.motpasse <> "" And Me.Utilisateur <> "" Then
     NbEssai = NbEssai + 1: Me.Label3.Caption = NbEssai & " essai(s)"
     For i = 1 To Range("MotPasse").Count
       If UCase(Me.motpasse) = UCase(Range("motpasse")(i)) And _
         UCase(Me.Utilisateur) = UCase(Range("utilisateur")(i)) Then
         For j = 1 To [feuille].Count
           If Range("droits").Cells(i, j) = "X" Then
              temp = Range("feuille")(j)
              Sheets(temp).Visible = True
           End If
         Next j
         Sheets("Espion").[M2] = Me.Utilisateur
         Unload Me: Exit Sub
       End If
      Next i
   End If
   If NbEssai > 3 Then
      MsgBox NbEssai & " essais!"
      ThisWorkbook.Close False
   End If
End Sub

Bonjour,

sauf erreur, un nom de feuille ne peut pas commencer par un chiffre!

En savoir plus sur les règles de syntaxe des noms :

La liste ci-dessous présente les règles de syntaxe que vous devez connaître pour créer et modifier des noms.

Caractères valides Le premier caractère d’un nom doit être une lettre, un caractère de soulignement (_) ou une barre oblique inversée (\). Les autres caractères peuvent être des lettres, des chiffres, des points et des caractères de soulignement.

REMARQUE Vous ne pouvez pas utiliser les lettres majuscules et minuscules « C », « c », « R » ou « r » comme nom défini, car ces lettres sont utilisées comme raccourci pour sélectionner une ligne ou une colonne de la cellule active lorsque vous les entrez dans une zone de texte Nom ou Atteindre.

Références de cellules interdites Les noms ne peuvent pas être identiques à une référence de cellule, comme Z$100 ou R1C1.

Les espaces ne sont pas valides Les espaces ne sont pas autorisés. Utilisez le trait de soulignement (_) et le point (.) comme séparateurs de mots (par exemple, Taxe_Vente ou Premier.Trimestre).

Longueur du nom Un nom peut contenir 255 caractères au maximum.

Respect de la casse Les noms peuvent contenir des majuscules et des minuscules. Excel ne les distingue pas dans les noms. Par exemple, si vous avez créé le nom Ventes et créez ensuite un autre nom appelé VENTES dans le même classeur, Excel vous invite à choisir un nom unique.

A+

Merci pour l’information mais je n'est pas changer le code Name de la feuille,

Exemple : J'ai la feuille qui a pour le CodeName = sh2012 et comme nom 2012 (celui qui est afficher sur l'onglet.

Mais je vais faire un test où je met les CodeName dans la liste des Feuilles au lieu de leur Noms afin de savoir si cela marche.

Merci pour aide

J'ai trouver comme afficher la liste des onglets via ce code :

Sub ListerOnglets()
' Liste uniquement les onglets de type "Feuille" sur la ligne à partir de C1 vers la droite
' Les onglets de type "Graphique" ne sont pas inclus
'
    Dim rg As Range, ws As Worksheet

    Set rg = [C1]

    For Each ws In ThisWorkbook.Worksheets
        rg = ws.Name
        Set rg = rg.Offset(0, 1)
    Next ws
End Sub

et j’appelle ce code quand la feuille s'active afin que la liste des Onglets soit à jour

Bonjour,

Je viens de télécharger protection pratique de ce site est j'ai fait un test en nomment l'onglet par 2012 et il n' y a pas d'erreur.

Si quelqu'un a déjà un fichiers exemple qui marche avec les nom d'onglet avec les numéro.

Rebonjour,

Je vient de régler mon problème à 80 % mais j'ai créer un nouveau sujet afin de traiter du problème exacte

Rechercher des sujets similaires à "erreur protection onglet"