Dans cette section de code, Excel indique TOUJOURS: "Le fichier existe déjà, voulez-vous écraser?"
Application.DisplayAlerts = False
Set xls = CreateObject("Excel.Application")
Set wb = xls.Workbooks.Add
fullFilePath = importFolderPath & "\" & "A.xlsx"
wb.SaveAs fullFilePath, AccessMode:=xlExclusive, ConflictResolution:=True
wb.Close(True)
Pourquoi db.SaveAs
m'invite-t-il toujours à écraser le fichier existant si j'ai DisplayAlerts = False
?
Merci d'avance!
Pour ne pas voir le jeu d'invites xls.DisplayAlerts = False
ConflictResolution
n'est pas une propriété true ou false, mais xlLocalSessionChanges
- notez que cela n'a rien à voir avec l'affichage de l'invite de remplacement!
Set xls = CreateObject("Excel.Application")
xls.DisplayAlerts = False
Set wb = xls.Workbooks.Add
fullFilePath = importFolderPath & "\" & "A.xlsx"
wb.SaveAs fullFilePath, AccessMode:=xlExclusive,ConflictResolution:=Excel.XlSaveConflictResolution.xlLocalSessionChanges
wb.Close (True)
Je recommande que, avant d'exécuter SaveAs, supprimez le fichier qu'il existe.
If Dir("f:ull\path\with\filename.xls") <> "" Then
Kill "f:ull\path\with\filename.xls"
End If
C’est plus simple que de désactiver et d’activer DisplayAlerts. De plus, si DisplayAlerts reste désactivé en raison d’un blocage du code, des problèmes peuvent survenir si vous utilisez Excel dans la même session.
Diviser la différence d'opinion
Je préfère:
xls.DisplayAlerts = False
wb.SaveAs fullFilePath, AccessMode:=xlExclusive, ConflictResolution:=True
xls.DisplayAlerts = True
..