Diplayalerts+masquer/afficher, VBA excel

Fermé
françois - 11 juin 2009 à 10:56
 françois - 11 juin 2009 à 17:01
Bonjour,
Objet : excel VBA diplayalertes

Bonjour
J’ai fait une fiche pour mon boulot.
Pour forcer l’utilisateur à activer les macros, la fiche s’affiche à l’ouverture du classeur (workbook open) et se masque à la fermeture (beforclose). L’utilisateur ne voit la fiche qu’en activant les macros.
J’ai modifier dans (before close) le mode d’enregistrement du fichier pour qu’ils ne puissent pas l’écraser. Pour ne pas être « parasiter » par les messages d’alertes, j’ai utiliser « Displayalertes ».
Mais du fait que des feuilles s’affichent et se masquent, displayalerts ne joue plus son rôle. (J’ai vérifier en manuel, c’est bien afficher et masquer qui pose problem)
Est-ce que quelqu’un à une idée ?
Merci d’avance.
A voir également:

8 réponses

Merci
Pour "securité macro moyenne" et certificat c'est ce que j'ai fait, mais ca ne suffit pas, pour la prmière fois j'ai besoins qu'il ne puissent pas acceder à la fiche, et puis comme c'est pas forcément le m^me opérateur qui bosse dessus...

pour application.screenupdating=false, j'ai essayé, mais ca ne marche pas, ou alors je n'ai pas compris.

voilà ce que j'ai mis dans this workbook, si qq'un voit le problème?
merci

Private Sub Workbook_Open()
Application.DisplayAlerts = False
Sheets("Feuil1").Visible = True
Sheets("feuil2").Visible = False
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
a = MsgBox("Voulez-vous enregistrer avant de quitter?", vbYesNo + vbDefaultButton2)
If a = vbNo Then 'debut de bloc
End If
If a = vbYes Then 'debut de bloc
Application.Dialogs(xlDialogSaveAs).Show
End If
Sheets("feuil2").Visible = True
Sheets("feuil1").Visible = False
Application.DisplayAlerts = True

End Sub
2
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 753
11 juin 2009 à 11:00
Salut,
Pour forcer l'utilisateur à activer les macros??? Pourquoi pas directement dans les options excel :
Outils/options/ onglet sécurité / sécurité des macros niveau faible il me semble.
0
merci de répondre
Par que c'est une fiche que j'envoi à un certains nombre de clients, et que je ne peux pas leur demander de mettre leur macro en niveaux de sécurité faible.
Si apres ils ont un pbs de virus, je crois que j'aurais des problèmes,
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
11 juin 2009 à 11:21
bonjour
Mais du fait que des feuilles s’affichent et se masquent
si tu veux éviter et si j'ai bien compris
application.screenupdating=false

pour forcer en macro (tu peux mettre en niveau moyen) tu as la possibilité de signature électronique qui demandera à la première utilisation si on peut te faire confiance. autre avantage: si le client modifie ta macro, le certificat n'est + valable
D'autre part, il est d'usage de signaler lors de la livraison au client qu'il est prudent de scanner contre les virus tout nouveau fichier

ca te couvre vis à vis du client
0

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

Posez votre question
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
11 juin 2009 à 14:15
Oui, mais
tu ne veux pas de niveau de sécurité bas
tu ne veux pas de niveau de sécurité moyen
tu ne veux pas de certificats...

Alors n'emploie pas de macros.
0
Sisi
Pardon j’ai pas bien expliqué
J’ai bien fait un certificat. Quand le gars ouvre ma fiche sans activer les macros il tombe sur une fiche « aide » qui luis explique qu’il doit activer les macros, accepter mon certificat, et mettre le niveau de secu en moyen.
C’est l’interet d’une partie de la macro.
Une fois les macros activées elles masquent la fiche « aide » et font apparaître la vrai fiche.
Le probleme c’est que ce masquage de la fiche "aide "au début de ma macro bloque la fonction application.displayalerts=false, (enfin je crois)
Est-ce que tu vois ce que je veux dire ?
Merci
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
11 juin 2009 à 16:30
Fait des efforts pour expliquer: on a que ce tu as écrit pour essayer de t'aider
D'ailleurs, en te disant: la personne doit pouvoir comprendre sans aucune ambiguïté quel mon problème, tu trouveras très souvent la solution (expérience personnelle).
application.displayalerts=false, est très dangereux à utiliser et démontre souvent que l'auteur connait mal VBA car excluant toute alerte ou erreur de programmation...si quelqu'un connait un peu VBA chez ton client, adieu les marchés (comme l'emploi de select-selection et/ou de copy-paste. au passage).
à la rigueur emploie le à la fin juste avant de sauvegarder

If a = vbYes Then 'debut de bloc
    Sheets("feuil2").Visible = xlsheetvisible
    Sheets("feuil1").Visible = xlsheethidden
    Application.DisplayAlerts =False 
       Application.Dialogs(xlDialogSaveAs).Show
   Application.DisplayAlerts = True 
End If
end sub

0
Merci michel
C’est vrai c’est la première fois que j’utilise un forum, la prochaine fois je ferrai un truc un peu plus carré.
Je comprends pas pquoi mais display alerte ne fonctionne toujours pas !
Tant pis si tu dis que ca peux poser des pbs je vais essayer de trouver autre chose
En tout cas merci beaucoup pour ton aide
Cordialement
Francois
0