Message d'alerte

Résolu
The_boss_68 Messages postés 952 Date d'inscription   Statut Membre Dernière intervention   -  
The_boss_68 Messages postés 952 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Serait-il possible de créer un message d'alerte à l'ouverture d'un fichier Excel sans passer par la vba.
Je m'explique, sur office Excel 2007 ou 2010 le message Avertissement de sécurité "les macros ont été désactivées" n'est pas toujours visible aux yeux, au premier regard des personnes n'ayant pas l'habitude de travailler sur ce logiciel, ce qui crée souvent des problèmes quand des macros sont présentent, mais pas activé. donc je souhaiterais mettre un message d'alerte bien visible sur l'écran qu'il faut activer les macros pour que le fichier fonctionne correctement es-ce possible?

Merci de votre réponse

Slts

A voir également:

7 réponses

The_boss_68 Messages postés 952 Date d'inscription   Statut Membre Dernière intervention   182
 
Bonjour Le Pivert

Tout à fait d'accord avec toi, je ne veux pas réinventer la roue, mais tout simplement sur Excel 2003 le message d'alerte security warning activer les macros flash au yeux au lancement du fichier et le fichier lui-même ne sera pas ouvert sans avoir précédemment appuyé sur activer ou déactiver les macros, tandis que sur office 2010 le fichier s'ouvre directement et le message d'alerte Avertissement sécurité est fondu dans le ruban d'office donc plus difficile à l'apercevoir.

Cordialement

Henri
1
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Je comprends ton problème, voici donc un code a mettre dans ThisWorkbook. Il affichera la feuille où se trouve le message d'activer les macros si les macros sont déactivées. Sinon il affiche les autres feuilles

Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Sheets("Feuil1").Visible = xlSheetVisible 'adapter le nom de la feuille qui contient le message
Dim curSheet As Worksheet
For Each curSheet In ThisWorkbook.Sheets
    If curSheet.Name <> "Feuil1" Then curSheet.Visible = xlSheetVeryHidden
Next curSheet
ThisWorkbook.Save
End Sub
Private Sub Workbook_Open()
Dim curSheet As Worksheet
For Each curSheet In ThisWorkbook.Sheets
    If curSheet.Name <> "Feuil1" Then curSheet.Visible = xlSheetVisible
Next curSheet
ThisWorkbook.Sheets("Feuil1").Visible = xlSheetVeryHidden
End Sub

1
The_boss_68 Messages postés 952 Date d'inscription   Statut Membre Dernière intervention   182
 
Bonsoir Le Pivert

Comme d'habitude je suis bluffé par ton savoir, et je te remercie infiniment pour ton code qui fonctionne très bien, et même au de là de mes espérances.

Merci beaucoup et à charge de revanche

PS Je rigole quand je parle de charge de revanche, puisque mon savoir n'arrive même pas à tes chevilles.

Bon dimanche

Henri
0
tom > The_boss_68 Messages postés 952 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Ce poste m'a beaucoup aidé, mais lorsque la macro se lance la macro j'obtiens:
"Erreur d'exécution '1004':
Impossible de définir la propriété Visible de la classe Worksheet
Quand je regarde le débogage, cela viendrais de cette ligne:

ThisWorkbook.Sheets("Base de données").Visible = xlSheetVeryHidden

merci de votre aide
0
The_boss_68 Messages postés 952 Date d'inscription   Statut Membre Dernière intervention   182 > tom
 
Bonjour tom

Pas de souci chez moi, peux-tu mettre ton fichier sur Cjoint en version alléger sans truc confidentielle pour voir éventuellement ton problème et peut-être y remédier.

Slts
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Et le message fait avec du code qui ne pourra pas s'executer car macros desactivees!!!!! Est-ce bien reflechi ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
The_boss_68 Messages postés 952 Date d'inscription   Statut Membre Dernière intervention   182
 
Bonsoir Le Pivert

Merci pour ta proposition, mais je ne pense pas la mettre en oeuvre, puisque personne ne prendra le l’initiative de cliquer sur ce lien, alors du coup je laisserais comme c'est actuellement, et tant pis pour les ceux qui n'aurons pas activé les macros ou alors je vais bucher pour trouver une autre parade.

Merci

Bonne soirée

Henri
0
Raymond PENTIER Messages postés 58989 Date d'inscription   Statut Contributeur Dernière intervention   17 353
 
Salut, The_Boss_68.

Ma philosophie personnelle est d'aller toujours au plus simple.
De plus, pour ne pas répondre à côté, j'aime bien faire préciser le problème, et si possible son contexte.

"pas toujours visible aux yeux, au premier regard des personnes n'ayant pas l'habitude de travailler sur ce logiciel" sous-entend que tu travailles avec des personnes âgées ? des mal-voyants ? des gens distraits ou pressés ?
D'autre part les fichiers Excel en question ne sont pas de ta fabrication ?
Tu ne peux pas les modifier ?

Parce que les parades sont multiples, suivant ton organisation :
- Travailler avec un zoom/écran >100%
- Placer une feuille d'accueil dans chaque fichier avec la mention "Activer la macro"
- Prévoir une affichette pour chaque accès à l'ordinateur ou chaque remise de clé USB, rappelant la nécessité d'activer les macros
- Au début de la session, rappeler verbalement les consignes
- ...
0
The_boss_68 Messages postés 952 Date d'inscription   Statut Membre Dernière intervention   182
 
Bonsoir Raymond PENTIER

Sympa ta philosophie, du coup je vais aller au plus simple et apposer tout simplement une affichette rappelant la nécessité d'activer les macros à l'ouverture du fichier.

Merci

Bonne soirée

Slts
0
The_boss_68 Messages postés 952 Date d'inscription   Statut Membre Dernière intervention   182
 
Bonjour,

En fait j'ai trouvé un petit code vba qui normalement doit inciter la personne qui ouvre ce fichier, d'activer les Macros puisque tous les Onglets sont cachés mis à part celui avec le message (onglet Début).
Le hic c'est quand j'ouvre le fichier la première fois avec office 2010 ça marche, j'active alors les macros, et lorsque je referme le fichier, et que je rouvre le fichier il ne s'ouvre plus sur (l'onglet Début) mais les onglets qui étaient cachés auparavant.
Le problème vient-il du code? si quelqu'un peut m'aider

Merci

Private Sub Workbook_Open()
Sheets("1").Visible = -1
Sheets("2").Visible = -1
Sheets("3").Visible = -1
Sheets("4").Visible = -1
Sheets("5").Visible = -1
Sheets("Début").Visible = 2
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("Début").Visible = -1
Sheets("1").Visible = 2
Sheets("2").Visible = 2
Sheets("3").Visible = 2
Sheets("4").Visible = 2
Sheets("5").Visible = 2
End Sub

Voir Fichier
http://www.cjoint.com/c/FBgmzHyADfs

Slts
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Je ne comprends pas cette démarche après ta demande:

Serait-il possible de créer un message d'alerte à l'ouverture d'un fichier Excel sans passer par la vba.

Je crois que tu veux réinventer la roue. Excel a tout prévu, si les macros ne sont pas activées, un message s'affiche que personne ne peux ignorer!

C'est pour cela que je t'ai conseillé ce lien Web qui sera beaucoup plus utile aux néophytes pour activer les macros!

Bon courage

@+ Le Pivert
0