[VBA] Enregistrement sur excel par vba

Skeo36 Messages postés 91 Statut Membre -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,

Malgré mes recherches sur les différents forum je n'est pas trouvé mon bonheur... J'en appel donc à vous, oh bien aimé communauté de CCM! lol
Ce que je cherche à faire est fermer mon fichier excel en sauvegardant ou pas, suivant le bouton auquel l'utilisateur fera appel. Mes codes sont les suivants:

Sans sauvegarder

Sub quittersanssauver() 'Quitte le logiciel sans sauvegarder avec demande de confirmation
MsgBox "Quitter sans sauvegarder?", vbQuestion + vbOKCancel, "Confirmation"
If reponse = 2 Then Exit Sub
If reponse = 1 Then Application.DisplayAlerts = False
ActiveWorkbook.Saved = True
ActiveWorkbook.Close
'Application.quit
End Sub

En sauvegardant

Sub QuitterSauver() 'quitte le logiciel et sauvegarde
ActiveWorkbook.Saved
ActiveWorkbook.Close
'Application.quit
End Sub

Le problème est le suivant: je voudrai fermer non seulement le classeur actif mais aussi Excel mais UNIQUEMENT dans le cas ou il n'y aurai pas d'autre fichier d'ouvert, afin de ne pas "fermer sans sauvegarder" mon document et excel avec alors que l'on travail sur un autre fichier. De la même manière je ne voudrai pas quitter et sauver excel alors qu'un deuxième fichier est ouvert et que des saisi "provisoire" on été effectuée....

Merci à vous!!!

2 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
        If Application.Workbooks.Count = 1 Then 'Je ferme Excel

    A+
    0
    1. Skeo36 Messages postés 91 Statut Membre 2
       
      J'ignorai qu'on pouvait faire ça j'essaye de suite merci!!!
      0
    2. Skeo36 Messages postés 91 Statut Membre 2
       
      ça ne fonctionne pas... En fait rien ne se passe pour aucun des deux (exepté le message de confirmation)

      mon code:

      Sub quittersanssauver() 'Quitte le logiciel sans sauvegarder avec demande de confirmation
      MsgBox "Quitter sans sauvegarder?", vbQuestion + vbOKCancel, "Confirmation"
      If reponse = 2 Then Exit Sub
      If reponse = 1 Then
      ThisWorkbook.Saved = True
      ActiveWorkbook.Close
      If Application.Workbooks.Count = 1 Then Application.Quit
      End If
      End Sub

      Sub QuitterSauver() 'sauvegarde et quitte le logiciel
      ActiveWorkbook.Saved = False
      ActiveWorkbook.Close
      If Application.Workbooks.Count = 1 Then Application.Quit
      End Sub
      0
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Beh oui,... en mettant ton message comme tu le fait où compte-tu recevoir la réponse ???
    MsgBox "Quitter sans sauvegarder?", vbQuestion + vbOKCancel, "Confirmation" 


    Faut faire...
        Reponse = MsgBox ("Quitter sans sauvegarder?", vbQuestion + vbOKCancel, "Confirmation" )

    Là tu as une chance de tester la réponse.:D
    0