Certificat sur macro

helene51

XLDnaute Junior
Bonjour le forum,

Je reviens vers vous car de nouveau j'ai quelques petits problèmes dans mes codes !
J'ai créé un certificat pour mes macros afin de ne plus avoir à valider l'activation des macros à l'ouverture de mon fichier. Cela fonctionne très bien.
Le problème est que j'ai plus de 30 fichiers auxquels je dois appliquer ce certificat.
Y a-t-il un moyen (un morceau de code à ajouter ou autre) pour que je n'ai pas à appliquer mon certificat à chacun des fichiers 1 à 1 mais le faire en "groupé" ?
Merci pour vos réponses.
 

helene51

XLDnaute Junior
Re : Certificat sur macro

Je l'ai retirée et ... rien !
Toujours besoin de valider 2 fois "non" pour fermer ce fichier sans enregistrer.

J'essaie de l'alléger et de l'envoyer en pièce jointe. Il y a peut être qqch que je ne vois pas et qui est sous mon nez ... de novice !
 

Dull

XLDnaute Barbatruc
Re : Certificat sur macro

Salut Helene, Jeanpierre :), James, le Forum

avec cette astuce cela marche

met ce code dans un module distinct

Code:
Option Explicit
Public Fermer As Boolean

Sub Fermeture()
Dim choix, i As Byte
If ThisWorkbook.ReadOnly = True Then 'cette partie fonctionne
    MsgBox "Vos droits sur ce fichier ne vous permettent pas de le sauvegarder", vbExclamation
    Application.ScreenUpdating = False
    Sheets(1).Visible = True
    For i = 2 To Sheets.Count
        Sheets(i).Visible = xlVeryHidden
    Next i
    ThisWorkbook.Saved = True
Else
    choix = MsgBox("Voulez-vous enregistrer vos modifications ?", vbYesNo, "Enregistrement")
    If choix = vbYes Then
        Fermer = True
        ThisWorkbook.Close SaveChanges:=True
    End If
    If choix = vbNo Then ThisWorkbook.Close SaveChanges:=False
End If
End Sub
dans le

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Cancel = Fermer = False
End Sub
associe-au Sub Fermeture() un bouton soit dans la feuille soit dans un UserForm
et click dessus

un Essai en pièce jointe

En espérant avoir pu t'aider

Suispastrèspédagogue...maislecoeuryest...:)

EDITION: J'ai corrigé une erreur à voir si le SaveAS est autorisé... on peut corriger aussi

bonne journée
 

Pièces jointes

  • Classeur pour essai.zip
    17 KB · Affichages: 35
  • Classeur pour essai.zip
    17 KB · Affichages: 29
  • Classeur pour essai.zip
    17 KB · Affichages: 21
Dernière édition:

helene51

XLDnaute Junior
Re : Certificat sur macro

Merci Dull pour ta réponse mais j'ai un problème avec ta solution, elle boucle en permanence et je n'arrive plus à fermer le fichier.

Mais cela m'a permis de comprendre pourquoi je dois appuyer 2 fois sur "Non" quand je ne veux pas sauvegarder mes modifications :
1ère fois : fonctionnement normal, après le 1er "non", le fichier devrait se fermer.
2ème fois : réexécute le beforeclose induit par le premier "non". Après revalidation du "non", fermeture du fichier.

Donc maintenant la parade c'est de lui faire comprendre que la 1ère fois c'est la bonne !

Dans ce cas, si j'appuie la première fois sur "non", cela correspond à une valeur non ? Ne puis-je pas récupérer cette valeur et lui dire que si c'est la bonne, il doit fermer le fichier ?

Je me complique la vie là non ?
 

helene51

XLDnaute Junior
Re : Certificat sur macro

Voila la réponse à mon problème ...

Code:
Private Sub Workbook_beforeclose(Cancel As Boolean)
Dim choix
If ThisWorkbook.ReadOnly = True Then
    MsgBox "Vos droits sur ce fichier ne vous permettent pas de le sauvegarder", vbExclamation
    Sheets(1).Visible = True
    For i = 2 To Sheets.Count
        Sheets(i).Visible = xlVeryHidden
    Next i
    ThisWorkbook.Saved = True
End If

If ThisWorkbook.ReadOnly = False Then
choix = MsgBox("Voulez-vous enregistrer vos modifications ?", vbYesNo, "Enregistrement")
[B]If choix = vbYes Then
ThisWorkbook.Save
Else
ThisWorkbook.Saved = True[/B]
Cancel = False
End If
End If
End Sub

Un grand MERCI à Dull, James007 et jeanpierre pour leur aide précieuse !
 

Discussions similaires