VBA : Macro Ouverture/Fermeture Fichier

villette54

XLDnaute Junior
Bonjour à tous,

J'ai un petit soucis je n'arrive pas à écrire un macro qui s’exécute automatique à l'ouverture d'un fichier Excel 2010 du genre "Êtes-vous sûr d'être autorisé à lire ce fichier ?" Oui / Non

Si Oui, alors le fichier s'ouvre et si Non alors le fichier se ferme.

La demande peut paraître bizarre, oui je sais qu'il existe d'autre moyen (verrouillage par mdp ou autre) mais ça ne m’intéresse pas vraiment, je préfère que les gens prennent leurs responsabilités.

Pour info, j'ai commencé la rédaction d'une macro je ne sais juste pas comme faire la suite :

Private Sub Workbook_Open()

If MsgBox("Êtes-vous sûr d'être autorisé à lire ce fichier ?", vbQuestion + vbYesNo, "Confirmation1") = vbYes Then

' C'est ici que ça flanche pour la première fois

Else

' Puis ici

End If
End Sub


Merci d'avance :)
 

Aurianelm

XLDnaute Nouveau
Re : VBA : Macro Ouverture/Fermeture Fichier

Bonjour, tu peux essayer ça (mais je suis une débutante...)

Code:
Private Sub Workbook_Open()

If MsgBox("Êtes-vous sûr d'être autorisé à lire ce fichier ?", vbQuestion + vbYesNo, "Confirmation1") = vbYes Then

Workbooks.Open Filename:="nom de ton fichier"
Else 

Workbooks.close Filename:="nom de ton fichier"

End If
End Sub
 

villette54

XLDnaute Junior
Re : VBA : Macro Ouverture/Fermeture Fichier

Huuum, une petite modification par rapport à ce que tu as mis et ça fonctionne seulement j'ai un soucis.

Ma msgbox apparaît après l'affichage (en arrière plan du fichier) j'aimerais que le fichier ou du moins la feuille ne s'affiche qu'après confirmation.

Du coup lorsque je clique sur "Non" il se ferme bien mais lorsque je clique sur "Oui" il essaye d'ouvrir un fichier déjà ouvert, il faudrait peut-être modifier l'action sur "Oui" pour qu'elle affiche juste la feuille1 qui aurait été masqué auparavant ?

Mais je ne sais pas si c'est possible...

VBA actuel :

Private Sub Workbook_Open()

If MsgBox("Êtes-vous sûr d'être autorisé à lire ce fichier ?", vbQuestion + vbYesNo, "Confirmation") = vbYes Then

Workbooks.Open Filename:="Fichier Fabien.xlsm"
Else

Workbooks("Fichier Fabien.xlsm").Close savechanges:=False

End If
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 335
Membres
102 864
dernier inscrit
abderrashmaen