Onglet excel

Signaler
Messages postés
37
Date d'inscription
vendredi 13 avril 2007
Statut
Membre
Dernière intervention
20 juin 2008
-
Messages postés
443
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
1 mars 2011
-
Bonjour a tous,
je travaille sous vba Excel et je voudrai interdire l'utilisation des onglets dans le classeur car l'utilisateur ne doit pas utiliser certaines feuilles.
j'utilise ce code:
Worksheets("param1").Visible = True
Worksheets("param1").Visible = false
mais quand la feuille n'est pas visible, on ne peut pas modifier les valeurs de cette feuille et cela ne me va pas.

9 réponses

Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
Salut, même si elle n'est pas visible, si tu fais un .Select ou un .Activate tu peux travailler dessus!

 Drikce 06 (Nouveau !!! Forum Exclusivement Office Et VBA By Mortalino)

Si la réponse vous convient: Réponse acceptée < body>
Messages postés
37
Date d'inscription
vendredi 13 avril 2007
Statut
Membre
Dernière intervention
20 juin 2008

la feuille tampon1 n'est pas visible.
Le code:
Worksheets("tampon1").Select
Erreur '1004' :
La méthode Select de la classe worksheets a echoue
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Worksheets("Feuil2").Visible = False
'Ceci donne peu etre une erreur
'Worksheets("Feuil2").Select
'Mais cela NON
Worksheets("Feuil2").Range("A1").Value = "TOTO3"

, ----
[code.aspx?ID=41455 By Renfield]
IL n'est pas nécessaire de selectionner une feuille pour atteindre et modifier ses cellules

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
37
Date d'inscription
vendredi 13 avril 2007
Statut
Membre
Dernière intervention
20 juin 2008

voici mon code:
Sheets("tampon1").Select
Sheets("tampon1").Range("D21:AB" & Nombre_composant_passif + 20).Select
Selection.Sort Key1:=Range("D21"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
et si j'enleve la premiere ligne, ca marche pas
Messages postés
37
Date d'inscription
vendredi 13 avril 2007
Statut
Membre
Dernière intervention
20 juin 2008

sinon il y a pas un autre moyen pour interdire l'utilisation des onglets sans utiliser la fonction .Visible
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Et comme ca?
Call Sheets("tampon1").Range("D21:AB" & Nombre_composant_passif + 20).Sort(Range("D21"), xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal)

Il n'est pas nécessaire de selectionner a chaque fois les plages à trier.

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
492
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
2 juillet 2012
4
bonjour,
et en mettant ta macro dans l'événement   Workbook_Open
Tu n'aura plus d'erreur,
Pour que les valeur change si tu change de classeur il y a aussi Activate et Deactivate.
A+
louis
Messages postés
443
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
1 mars 2011
2
Bonsoir,
Pourquoi ne pas afficher la feuille quand le code le necessite et la caché ensuite en affectant "xlVeryHidden" a visible de manière à ce que le menu Excel ne puisse permettre à l'utilisateur d'afficher cette feuille
Une autre possibilité est de gérer les accés aux onglets par une code associé aux feuilles interdites dans l'évenement Worksheet_Activate
   Private Sub Worksheet_Activate()
     Worksheets("Feuil2").Select
   End Sub
La gestion des personnes autorisées se fera par "Environ("UserName")
Bonne fin de semaine
JML
Messages postés
443
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
1 mars 2011
2
Dans le code proposé, il est entendu que la feuil2 est une feuille autorisée