Bonjour,
Il te faut passer un argument afin d'afficher ou non la boite de message :
Sub ImportDonnees()
Ouverture False
'ici le code d'importation
'...
'...
End Sub
'Optional permet de ne pas devoir ajouter l'argument dans les autres Sub l'appelant
Sub Ouverture(Optional Afficher As Boolean)
If Afficher = True Then
If MsgBox("Voulez-vous optimiser les calculs ?", 36) = 7 Then Exit Sub
Else
'ici le code de la macro existante
'...
'...
End If
End Sub
Dans le cas où le message se trouve dans la procédure événementielle Open() du classeur, il te faut utiliser une variable de niveau module du classeur pour autoriser ou non l'affichage de la boite :
Public Afficher As Boolean
Private Sub Workbook_Open()
If Afficher = True Then
If MsgBox("Voulez-vous optimiser les calculs ?", 36) = 7 Then Exit Sub
Else
'ici le code de la macro existante
'...
'...
End If
End Sub
Procédure demandant l'ouverture du classeur :
Sub ImportDonnees()
Dim Cls As Workbook
Set Cls = Workbooks.Open("C:\Mon dossier\Mon sous-dossier\Mon Classeur.xlsm")
Cls.Afficher = False 'empèche l'affichage du message
'ici le code de la macro existante
'...
'...
End Sub