Private Sub btn_fermer_Click()
Dim Appli As Object
    Dim SessionOutlook, myOlApp
    Const Chemin As String = "C:\Program Files (x86)\Microsoft Office\root\Office16\OUTLOOK.exe"   '---> tu adaptes ce chemin si c'est nécessaire
 
    On Error Resume Next
    Set Appli = GetObject(, "Outlook.Application")
 
    'Tester si l'application est ouverte ou non
    If Appli Is Nothing Then
            MsgBox "Outlook est fermé"   '---> Donc ouvre moi une session
            SessionOutlook = Shell(Chemin, 1)
'sauvegarde fichier
    sauvegarde_fichier_fermeture
    
' envoi MAIL
    
    envoi_mail_fermeture
    
            Else
            
'sauvegarde fichier
    sauvegarde_fichier_fermeture
    
' envoi MAIL
    
    envoi_mail_fermeture
    End If
    
      
    'Set myOlApp = CreateObject("Outlook.Application")
    '        myOlApp.Quit
      
    'Application.Quit
End Sub
Sub sauvegarde_fichier_fermeture()
'sauvegarde fichier
    Dim dossier1 As String
    Dim fichier As String
    Dim datevalidation As String
    Dim datevalidationmaj As String
        
    datevalidation = Date
    datevalidationmaj = Format(Date, "DD-mm-yy")
    dossier1 = Sheets("dossier").Range("b2")
    fichier = Sheets("dossier").Range("C2")
    
    ActiveWindow.SmallScroll Down:=-100 'repositionner ecran
    
    Application.DisplayAlerts = False
      
    With ActiveWorkbook
    .SaveAs Filename:=dossier1 & fichier & " - " & datevalidationmaj, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
 
    End With
    
'sauvegarde fichier_bureau
    Dim dossier2 As String
    Dim fichier2 As String
    
    
    dossier2 = Sheets("dossier").Range("b4")
    fichier2 = Sheets("dossier").Range("C4")
    
    Application.DisplayAlerts = False
      
    With ActiveWorkbook
    .SaveAs Filename:=dossier2 & fichier2, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
 
    End With
    
    Application.DisplayAlerts = True
      
' Message de confirmation
'MsgBox ("Le fichier a bien été sauvegardé" & vbCrLf & vbCrLf & "Merci ")
End Sub
Sub envoi_mail_fermeture()
    Dim xOutlook As Object
    Dim xMailItem As Object
    Dim xEmailAddr As String
    Dim xEmailAddrCC As String
    On Error Resume Next
    
    Dim dossier1 As String
    Dim fichier As String
    Dim datevalidation As String
    Dim datevalidationmaj As String
        
    datevalidation = Date
    datevalidationmaj = Format(Date, "DD-mm-yy")
    dossier1 = Sheets("dossier").Range("b2")
    fichier = Sheets("dossier").Range("C2")
          
    Set xOutlook = CreateObject("Outlook.Application")
    Set xMailItem = xOutlook.CreateItem(0)
      
'Selection de la page des adresses mail
    Worksheets("Dossier").Activate
'Selection de la cellule nommée 'CELL_ADR_MAIL' représentant le nom de la colonne des mails dans le tableau
    Sheets("Dossier").Range("CELL_ADRESSE_MAIL").Select
'Déplacement d'une ligne en dessous pour débuter la boucle de lecture des adresses mail
    ActiveCell.Offset(1, 0).Select
    
    Do Until IsEmpty(ActiveCell)
        'If ActiveCell.Value Like "*@*" Then ' si celulle active contient une adresse mail
        If ActiveCell.Value <> "" Then ' si cellule active non vide
            If xEmailAddr = "" Then
                xEmailAddr = ActiveCell.Value
            Else
                xEmailAddr = xEmailAddr & ";" & ActiveCell.Value
            End If
        End If
        
'Lecture de l'adresse mail suivante, une ligne en dessous
        ActiveCell.Offset(1, 0).Select
    Loop
    
'Si la liste des adresses mail n'est pas vide on diffuse
    
    If xEmailAddr <> "" Then
        With xMailItem
            
            .To = xEmailAddr
            .CC = xEmailAddrCC
            .Subject = "Essai Fermeture fichier " & datevalidationmaj
            '.body = "Bonjour,"
            .Attachments.Add dossier1 & fichier & " - " & datevalidationmaj & ".xlsm"
            .display
            .Send 'validation envoi
        End With
        
        Set xOutlook = Nothing
        Set xMailItem = Nothing
    End If
    
    Combo_user = ""
    TextBox_mdp = ""
        
    
    'Annule le Masquage l'éxécution de la macro
    Application.ScreenUpdating = True
End Sub