quitter sans enregistrer

meldja

XLDnaute Impliqué
Bonjour,
Je suis en train de travailler sur un fichier qui doit me sauvegarder des données dans un nouveau fichier, enregistrer ce qui a été copié sur le bureau, sous le nom "EvalXLS.xls"
Le premier fichier, celui où ont été copié les données, doit se fermer sans enregistrer les modifications.
J'ai vu qu'avec la méthode Application.DisplayAlerts = False, on pouvait désactiver les messages d'alerte ou de confirmation.
J'ai vu aussi qu'avec Application.Quit, on pouvait fermer le fichier.
Mais, lorsque je clique sur le bouton qui déclenche la macro, la copie se fait bien, la sauvegarde de la copie se fait bien, sauf qu'il me demande si je veux sauvegarder les changements du fichiers sources. Je ne sais pas si je suis clair ?
Voici le code que j'utilise :
Code:
If réponse = vbOK Then
Application.DisplayAlerts = False
Range("B55:B" & i).Copy
    Workbooks.Add
    ActiveSheet.Paste
    ActiveSheet.Range("A1").Select
Application.Quit
    ChDir "C:\Documents and Settings\" & Environ("UserName") & "\Bureau"
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Documents and Settings\" & Environ("UserName") & "\Bureau\EvalXLS.xls", _
        FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
    Application.CutCopyMode = False

Je peux joindre le fichier si cela est nécessaire.
Merci d'avance et bonne journée
 

Pièces jointes

  • FormationExcel.zip
    94.4 KB · Affichages: 35

meldja

XLDnaute Impliqué
Re : quitter sans enregistrer

J'ai parlé trop vite, lorsque je rajoute ActiveWorkbook.Close False
Le fichier se ferme effectivement sans demander de confirmation de sauvegarde.
Sauf que c'est le fichier source qui est copié sur le bureau et non le nouveau fichier où se trouve la copie.
Désolé de vous embêter. Je continue de chercher.
 

wilfried_85

XLDnaute Nouveau
Re : quitter sans enregistrer

re:

Code:
If réponse = vbOK Then
Application.DisplayAlerts = False
Range("B55:B" & i).Copy
    Workbooks.Add
    ActiveSheet.Paste
    ActiveSheet.Range("A1").Select
[B][COLOR="red"]Application.Quit[/COLOR][/B]
   [COLOR="blue"][B] ChDir "C:\Documents and Settings\" & Environ("UserName") & "\Bureau"[/B][/COLOR]
    ActiveWorkbook.SaveAs Filename:= _
       [B][COLOR="seagreen"] "C:\Documents and Settings\" & Environ("UserName") & "\Bureau\EvalXLS.xls"[/COLOR][/B], _
        FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
    Application.CutCopyMode = False

en rouge ??? tu quittes l'application avant la sauvegarde ????

en Bleu : Pas utile et peu recommandé de se placer sur un répertoire, surtout que plus loin en Vert tu le redéfinis dans ton nom de fichier

En vert : si tu désires sauvegarder sur le même répertoire que le fichier source : utilise ActiveWorkbook.Path, évite l'extention, Excel connait son extension. de plus, je ne comprends pas le nom du fichier, il est figé, mais je ne connais pas non plus tes besoins...
 

Discussions similaires

Statistiques des forums

Discussions
314 485
Messages
2 110 101
Membres
110 663
dernier inscrit
ToussaintBug