Diplayalerts+masquer/afficher, VBA excel

françois -  
 françois -
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.
Configuration: Windows XP Internet Explorer 6.0

8 réponses

  1. françois
     
    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
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
     
    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
  3. françois
     
    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
  4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  7. françois
     
    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
  8. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  9. françois
     
    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