Comment masquer des feuilles sans utiliser "xlsheetveryhidden"

qbga -  
Frenchie83 Messages postés 2254 Statut Membre -
Bonjour,
j'aimerai masquer les feuilles de classeur au démarrage de l'application,seulement j n'aimerai pas utiliser "xlsheetveryhidden" ni "xlsheethidden" car mon programme m'affiche constamment (imposible de définir la propriété visible de la classe worksheet) comme erreur quand j l'utilise,

voici le code que j'ai écrit et qui n marche pas pourtant ,

Dim nbre, cptr As Integer
Application.ScreenUpdating = False
nbre = ThisWorkbook.Sheets.count
cptr = 2
For cptr = 2 To nbre
Sheets(cptr).Visible = xlSheetHidden
Next
Application.ScreenUpdating = False

8 réponses

  1. Frenchie83 Messages postés 2254 Statut Membre 339
     
    essaies

    Sheets(cptr).Visible = False

    ça doit marcher
    0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    tu devrais le faire en pas à pas pour voir si c'est une feuille précise.
    Pas de raison que ça ne marche pas.
    Et xlSheetHidden = 0 = False : aucune différence

    A tout hasard déposer le fichier xls (réduit au nécessaire et anonymisé) sur cjoint.com et coller ici le lien fourni.

    eric
    0
  3. qbga
     
    Frenchie83,mème cela n marche pas
    j vais plutot faire pas à pas comme la dit eriiic,pour voir si l problème réside sur les feuille,et autre question doit faire également just après le code pour masquer ,un code pour démarsquer,?j sais que avec xlsheetveryhidden c'est obligatoire ,mais avec xlsheethidden jne sait pas
    0
  4. Frenchie83 Messages postés 2254 Statut Membre 339
     
    Bonjour qbga

    Je suis étonné que cela ne marche pas chez toi, alors que cela marche très bien chez moi. Ton classeur ne serait-il pas protéger?

    Ouvre un nouveau classeur et refait un essai toujours avec cette ligne de code
    Sheets(cptr).Visible = False

    bien que ce n'est pas d'incidence, la dernière ligne de ton code doit être:
    Application.ScreenUpdating = true

    cordialement
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    nbre = ThisWorkbook.Sheets.count => nombre de feuille du classeur de la macro.
    Si tu lances la macro avec un autre classeur d'actif qui a moins de feuilles tu auras une erreur puisque tu masques les feuilles de ce classeur.

    eric

    0
  7. qbga
     
    Bonjour
    Merci bocoup pour vos aide en combinant les choses ,je me suis rendue compte que mon classeur était protégé,finalement Sheets(cptr).Visible = False,a marché a perfection,
    eriic j'ai également corrigé ta remarque
    foo,j pas très bien saisie ton code,pour l feuille,j'ai au moins une quarantaine de feuille a masquer,si j comprend bien ton code j serai tenu de donner un code a chaque feuille,c sera long et pénible
    Merci encore à vous

    heu encore une petite question,y a t'il un code pour numéroté automatiquement les pages a l'affichage? c'est a dire après l 'utilisation du count j 5 feuilles par exemple,j fais une boucle qui met visible sur true et a chaque affichage me met ds une celleule A2 par ex "page 1/5" ainsi de suite jusqu'à "page 5/5"

    Désolé pour tout ça j suis novice en programmation
    merci
    0
  8. Frenchie83 Messages postés 2254 Statut Membre 339
     
    Bonjour

    Si j'ai bien compris, tu veux numéroter que les feuilles visibles, alors essaies ceci

    sur chaque feuille visible, par exemple sur un total de 3 feuilles, en cellule A2 tu auras 1/3, 2/3, 3/3

    Sub NumérotationDesFeuillesVisibles()
        For i = 1 To Sheets.Count
            If Sheets(i).Visible = True Then Sheets(i).Range("A2").Value = "'" & i & "/" & Sheets.Count
        Next i
    End Sub
    
    0
  9. foo
     
    Bonjour

    Voila une routine

    Sub RemiseForm()
    ActiveWorkbook.Unprotect
    Feuille = F04.Name ' F04 = Code name de la feuille
    F04.Visible = -1
    For Each Feuil In Worksheets
    If Feuil.Name <> Feuille Then
    Feuil.Visible = 2
    End If
    Next
    F04.Select
    ActiveWorkbook.Protect
    End Sub

    Valider Sur excel 2002 et 2007

    A+
    Maurice
    -1
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Dépose un fichier xls qui ne marche pas chez toi.
      Le déposer sur cjoint.com et coller ici le lien fourni.

      eric
      0