Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Feuilles masquées par macro

6 réponses
Avatar
ManBas
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

6 réponses

Avatar
MichDenis
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" a écrit dans le message de news:
%23Sw$
Bonjour à tous,
J'ai l'habitude de cacher certaines feuilles avec
sheets("feuille1").visibleúlse, 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
Avatar
JB
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

http://cjoint.com/?bBv65UL3Ra

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" wrote:
Bonjour à tous,
J'ai l'habitude de cacher certaines feuilles avec
sheets("feuille1").visibleúlse, 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


Avatar
ManBas
Bonsoir MichDenis,
Merci +++ C'est exactement ce que je cherchais.
Comment s'écrit la "révélation" de la feuille ?

"MichDenis" a écrit dans le message de news:

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" a écrit dans le message de news:
%23Sw$
Bonjour à tous,
J'ai l'habitude de cacher certaines feuilles avec
sheets("feuille1").visibleúlse, 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






Avatar
MichDenis
sheets("Feuil1").Visible = True

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



"ManBas" a écrit dans le message de news:

Bonsoir MichDenis,
Merci +++ C'est exactement ce que je cherchais.
Comment s'écrit la "révélation" de la feuille ?

"MichDenis" a écrit dans le message de news:

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" a écrit dans le message de news:
%23Sw$
Bonjour à tous,
J'ai l'habitude de cacher certaines feuilles avec
sheets("feuille1").visibleúlse, 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






Avatar
ManBas
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" a écrit dans le message de news:


sheets("Feuil1").Visible = True

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



"ManBas" a écrit dans le message de news:

Bonsoir MichDenis,
Merci +++ C'est exactement ce que je cherchais.
Comment s'écrit la "révélation" de la feuille ?

"MichDenis" a écrit dans le message de news:

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" a écrit dans le message de news:
%23Sw$
Bonjour à tous,
J'ai l'habitude de cacher certaines feuilles avec
sheets("feuille1").visibleúlse, 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












Avatar
ManBas
Merci JB.
Toujours très très fort. Je m'en servirais de ce truc.
A bientôt

"JB" a écrit dans le message de news:

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

http://cjoint.com/?bBv65UL3Ra

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" wrote:
Bonjour à tous,
J'ai l'habitude de cacher certaines feuilles avec
sheets("feuille1").visibleúlse, 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