web-dev-qa-db-fra.com

Classeurs VBA. Fermer sans être invité à l'utilisateur si vous souhaitez enregistrer?

J'écris un programme VBA qui convertit les fichiers .xls en fichiers .csv. Le problème est que cela ouvre la boîte de dialogue "Do you want to save the changes to myFile.csv?".

Voici un extrait de mon code:

currentBook.SaveAs Filename:=fileNameS, FileFormat:=xlCSV, ConflictResolution:=xlLocalSessionChanges    
currentBook.Close SaveChanges:=False

Que dois-je ajouter pour que je ne reçoive pas le message "Voulez-vous enregistrer les modifications dans myFile.csv?" Boite de dialogue?

12
power

Essayez d'utiliser ThisWorkbook.Saved = True

        Application.DisplayAlerts = False
        currentBook.SaveAs Filename:=fileNameS, FileFormat:=xlCSV, ConflictResolution:=xlLocalSessionChanges
        currentBook.Saved = True            
        currentBook.Close SaveChanges:=False
        Application.DisplayAlerts = True
15
Alistair Weir

C'est ce que j'ai fait par le passé et cela a fonctionné pour moi:

Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=fileNameS, FileFormat:=xlCSV, conflictResolution:=xlLocalSessionChanges
Application.DisplayAlerts = True
ActiveWorkbook.Close False

Vous pouvez également essayer de mettre la fermeture avant que les DisplayAlerts ne soient réinitialisés sur true ...

2
Dan
Set XC = NTSGetExcell(True)
XC.Visible = True
XC.Application.DisplayAlerts = False
XC.IgnoreRemoteRequests = True
XC.ActiveWindow.Close False
XC.Quit
Set XC = Nothing
1
user3048858