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

(vba) msg si macro non activée

4 réponses
Avatar
j-pascal
Bonjour,

Si un utilisateur lance une application sans avoir activé les macros, il
faut pouvoir lui indiquer que l'appli n'est pas "utilisable".

J'avais pensé afficher un msg d'information dans une feuille (affichée par
défaut) si les macros ne sont pas activées, et a contrario, masquer cette
feuille et afficher la ou les feuille(s) "utilisables"...

Ceci serait ma méthode, mais je suis sûr que vous en avez une bien meilleure
!

Si ce n'est pas un secret : laquelle ?

Merci ?


--
Cordialement @+
JP

4 réponses

Avatar
Daniel
Bonjour.
Je ne sais pas s'il y en a d'autres.
Il faut que tes feuilles soient "veryhidden" afin que l'utilisateur ne
puisse pas les afficher:
Sheets(1).Visible = xlVeryHidden
D'autre part, tu dois les masquer avant la fermeture du classeur et cela
t'oblige à enregistrer avant de fermer, que l'utilisateur soit d'accord ou
non.
Cordialement.
Daniel
"j-pascal" a écrit dans le message de news:
ez%
Bonjour,

Si un utilisateur lance une application sans avoir activé les macros, il
faut pouvoir lui indiquer que l'appli n'est pas "utilisable".

J'avais pensé afficher un msg d'information dans une feuille (affichée par
défaut) si les macros ne sont pas activées, et a contrario, masquer cette
feuille et afficher la ou les feuille(s) "utilisables"...

Ceci serait ma méthode, mais je suis sûr que vous en avez une bien
meilleure !

Si ce n'est pas un secret : laquelle ?

Merci ?


--
Cordialement @+
JP


Avatar
olivier descamps
C'est effectivement la méthode que j'emploie.
Dans la partie thisworkbook, tu intéresses les deux macros ci-dessous

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets(1).Visible = xlSheetVisible
Sheets(2).Visible = xlVeryHidden
Sheets(3).Visible = xlVeryHidden
Sheets(4).Visible = xlVeryHidden

End Sub

Private Sub Workbook_Open()
Sheets(2).Visible = xlSheetVisible
Sheets(3).Visible = xlSheetVisible
Sheets(4).Visible = xlSheetVisible
Sheets(1).Visible = xlVeryHidden
End Sub

Sur la feuille 1 tu mets ton message d'alerte et tes données en feuilles
2, 3 et 4 sont protégées.

En résumé, quand tu fermes ton classeur, il vérouille et cache les
feuilles 2, 3 et 4 et ne laisse que la feuille 1 active.
A l'ouverture si tu refuses d'activiter les macros, tu ne verras que ton
message d'alerte de la feuille 1. Si tu les autorise, ton message
d'alerte et caché et tes données sont accessibles.

A+

Olivier

Bonjour.
Je ne sais pas s'il y en a d'autres.
Il faut que tes feuilles soient "veryhidden" afin que l'utilisateur ne
puisse pas les afficher:
Sheets(1).Visible = xlVeryHidden
D'autre part, tu dois les masquer avant la fermeture du classeur et cela
t'oblige à enregistrer avant de fermer, que l'utilisateur soit d'accord ou
non.
Cordialement.
Daniel
"j-pascal" a écrit dans le message de news:
ez%

Bonjour,

Si un utilisateur lance une application sans avoir activé les macros, il
faut pouvoir lui indiquer que l'appli n'est pas "utilisable".

J'avais pensé afficher un msg d'information dans une feuille (affichée par
défaut) si les macros ne sont pas activées, et a contrario, masquer cette
feuille et afficher la ou les feuille(s) "utilisables"...

Ceci serait ma méthode, mais je suis sûr que vous en avez une bien
meilleure !

Si ce n'est pas un secret : laquelle ?

Merci ?


--
Cordialement @+
JP








Avatar
j-pascal
Bonsoir Olivier,

Un très grand merci pour cette procédure que j'ai pu mettre à profit sans
difficulté.
Là encore, je sens la macro qui va m'accompagner longtemps ... longtemps ;-)

Cordialement,

JP


"olivier descamps" a écrit dans le message de news:
45eb0ab5$0$3482$
C'est effectivement la méthode que j'emploie.
Dans la partie thisworkbook, tu intéresses les deux macros ci-dessous

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets(1).Visible = xlSheetVisible
Sheets(2).Visible = xlVeryHidden
Sheets(3).Visible = xlVeryHidden
Sheets(4).Visible = xlVeryHidden

End Sub

Private Sub Workbook_Open()
Sheets(2).Visible = xlSheetVisible
Sheets(3).Visible = xlSheetVisible
Sheets(4).Visible = xlSheetVisible
Sheets(1).Visible = xlVeryHidden
End Sub

Sur la feuille 1 tu mets ton message d'alerte et tes données en feuilles
2, 3 et 4 sont protégées.

En résumé, quand tu fermes ton classeur, il vérouille et cache les
feuilles 2, 3 et 4 et ne laisse que la feuille 1 active.
A l'ouverture si tu refuses d'activiter les macros, tu ne verras que ton
message d'alerte de la feuille 1. Si tu les autorise, ton message d'alerte
et caché et tes données sont accessibles.

A+

Olivier

Bonjour.
Je ne sais pas s'il y en a d'autres.
Il faut que tes feuilles soient "veryhidden" afin que l'utilisateur ne
puisse pas les afficher:
Sheets(1).Visible = xlVeryHidden
D'autre part, tu dois les masquer avant la fermeture du classeur et cela
t'oblige à enregistrer avant de fermer, que l'utilisateur soit d'accord
ou non.
Cordialement.
Daniel
"j-pascal" a écrit dans le message de news:
ez%

Bonjour,

Si un utilisateur lance une application sans avoir activé les macros, il
faut pouvoir lui indiquer que l'appli n'est pas "utilisable".

J'avais pensé afficher un msg d'information dans une feuille (affichée
par défaut) si les macros ne sont pas activées, et a contrario, masquer
cette feuille et afficher la ou les feuille(s) "utilisables"...

Ceci serait ma méthode, mais je suis sûr que vous en avez une bien
meilleure !

Si ce n'est pas un secret : laquelle ?

Merci ?


--
Cordialement @+
JP









Avatar
j-pascal
Merci ;-)

JP

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

Bonjour.
Je ne sais pas s'il y en a d'autres.
Il faut que tes feuilles soient "veryhidden" afin que l'utilisateur ne
puisse pas les afficher:
Sheets(1).Visible = xlVeryHidden
D'autre part, tu dois les masquer avant la fermeture du classeur et cela
t'oblige à enregistrer avant de fermer, que l'utilisateur soit d'accord ou
non.
Cordialement.
Daniel
"j-pascal" a écrit dans le message de news:
ez%
Bonjour,

Si un utilisateur lance une application sans avoir activé les macros, il
faut pouvoir lui indiquer que l'appli n'est pas "utilisable".

J'avais pensé afficher un msg d'information dans une feuille (affichée
par défaut) si les macros ne sont pas activées, et a contrario, masquer
cette feuille et afficher la ou les feuille(s) "utilisables"...

Ceci serait ma méthode, mais je suis sûr que vous en avez une bien
meilleure !

Si ce n'est pas un secret : laquelle ?

Merci ?


--
Cordialement @+
JP