gratifiant > microsoft.* > microsoft.excel

ManBas (27/01/2007, 22h47)
Bonjour à tous,
J'ai l'habitude de cacher certaines feuilles avec
sheets("feuille1").visible=false, puis true.
Cette méthode a l'inconvénient de pouvoir être prise en défaut si
l'utilisateur désactive les macros.
Je croyais qu'il était possible de cacher-révéler les feuilles par un code
dont les effets ne pouvaient pas être contrariés de façon manuelle
(veryhidden), exclusivement accessibles par VBA. Mais je n'y parviens pas.
Si celà est possible, pouvez-vous m'écrire correctement le code SVP ?
Merci d'avance
MichDenis (27/01/2007, 22h54)
Je n'ai pas trop compris ta demande, mais si tu as pris la peine
de masquer une feuille en vba par cette ligne de code

sheets("Feuil1").Visible = XlveryHidden

Elle sera inaccessible de la part d'un usager sans accéder à vba.

"ManBas" <nonospamMaBas> a écrit dans le message de news:
%23Sw$0NlQHHA.3412...
Bonjour à tous,
J'ai l'habitude de cacher certaines feuilles avec
sheets("feuille1").visible=false, puis true.
Cette méthode a l'inconvénient de pouvoir être prise en défaut si
l'utilisateur désactive les macros.
Je croyais qu'il était possible de cacher-révéler les feuilles par un code
dont les effets ne pouvaient pas être contrariés de façon manuelle
(veryhidden), exclusivement accessibles par VBA. Mais je n'y parviens pas.
Si celà est possible, pouvez-vous m'écrire correctement le code SVP ?
Merci d'avance
JB (27/01/2007, 22h59)
Bonsoir,

La page de travail n'est afichée que si VBA est actif
-Les heures de connexion sont stockées dans un onglet Espion



Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
For s = 2 To Sheets.Count ' on masque les feuilles
Sheets(s).Visible = xlVeryHidden
Next s
Sheets("espion").[A65000].End(xlUp).Offset(1, 0) = NomUser
Sheets("espion").[A65000].End(xlUp).Offset(0, 1) = HeureConnexion
Sheets("espion").[A65000].End(xlUp).Offset(0, 2) = Now
End Sub

Private Sub Workbook_Open()
NomUser = Environ("username")
Sheets("PageTravail").Visible = True
HeureConnexion = Now
End Sub

Dans un module:

Public HeureConnexion
Public NomUser

Sub AfficheTout()
If NomUser = "JBOISGON" Then
For s = 2 To Sheets.Count
Sheets(s).Visible = True
Next s
End If
End Sub

JB

On 27 jan, 21:47, "ManBas" <nonospamMa> wrote:
[..]
ManBas (27/01/2007, 23h07)
Bonsoir MichDenis,
Merci +++ C'est exactement ce que je cherchais.
Comment s'écrit la "révélation" de la feuille ?

"MichDenis" <michdenis> a écrit dans le message de news:
uETlFVlQHHA.996...
[..]
MichDenis (27/01/2007, 23h09)
sheets("Feuil1").Visible = True

Cependant, les macros doivent avoir été activées
à l'ouverture du fichier pour exécuter cette ligne de code.

"ManBas" <nonospamMaBas> a écrit dans le message de news:
OaGB2YlQHHA.4692...
Bonsoir MichDenis,
Merci +++ C'est exactement ce que je cherchais.
Comment s'écrit la "révélation" de la feuille ?

"MichDenis" <michdenis> a écrit dans le message de news:
uETlFVlQHHA.996...
[..]
ManBas (27/01/2007, 23h42)
C'est tout bête.
Moi je n'y arrivais pas parce que je mettais veryhidden à la place de
visible et que l'aide de VBA ne me donnait pas l'exemple pour les feuilles.
Merci beaucoup.

"MichDenis" <michdenis> a écrit dans le message de news:
ufe1ZdlQHHA.2256...
[..]
ManBas (27/01/2007, 23h45)
Merci JB.
Toujours très très fort. Je m'en servirais de ce truc.
A bientôt

"JB" <boisgontier> a écrit dans le message de news:
1169931550.688711.172570...
Bonsoir,

La page de travail n'est afichée que si VBA est actif
-Les heures de connexion sont stockées dans un onglet Espion



Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
For s = 2 To Sheets.Count ' on masque les feuilles
Sheets(s).Visible = xlVeryHidden
Next s
Sheets("espion").[A65000].End(xlUp).Offset(1, 0) = NomUser
Sheets("espion").[A65000].End(xlUp).Offset(0, 1) = HeureConnexion
Sheets("espion").[A65000].End(xlUp).Offset(0, 2) = Now
End Sub

Private Sub Workbook_Open()
NomUser = Environ("username")
Sheets("PageTravail").Visible = True
HeureConnexion = Now
End Sub

Dans un module:

Public HeureConnexion
Public NomUser

Sub AfficheTout()
If NomUser = "JBOISGON" Then
For s = 2 To Sheets.Count
Sheets(s).Visible = True
Next s
End If
End Sub

JB

On 27 jan, 21:47, "ManBas" <nonospamMa> wrote:
[..]
Discussions similaires