Fonction sauvegarder si
Bonsoir,
j’aurais souhaité savoir, s’il vous plaît, si en VBA il existe une fonction qui permet de contrôler si un fichier « X » existe déjà dans un dossier ou pas.
Si il existe: je sauvegarde le fichier avec les modifications apportées dans C:\Mes documents et efface le fichier de base qui est dans c:\Temp\x.xls
Si il n’existe pas, je sauvegarde simplement le fichier dans C:\Mes documents.
Effacer le fichier cela se fait par un VBA.kill mais ce que je ne sais pas programmer c’est de dire « si il existe, tu l’effaces de Temp et tu l’enregistres dans Mes documents.
merci d’avance.
Patrick
bonjour,
les 2 principes, sauvegarder et regarder si un fichier existe, mais je ne savais pas quoi vous voulez faire exactement, donc c'est à vous de créer la macro
Sub teste()
spath1 = "C:\Mes documents"
spath2 = "C:\Temp"
sfilename = "MonFichier.xlsm"
If Dir(spath1 & "\" & sfilename) = "" Then 'si le resultat de "DIR" est "", ce fichier n'esiste pas
MsgBox "n'existe pas"
ThisWorkbook.SaveAs spath1 & "\" & sfilename, 52 'sauvegarder comme xlsm
Else
On Error Resume Next 'continuer en cas d'erreur
Kill spath2 & "\" & sfilename 'effacer ce fichier (et continuer si l'il n'existe pas
On Error GoTo 0 'fin continuer en cas d'erreur
End If
End SubBonjour PatPatrouille et
Une petite présentation ICI serait la bienvenue
Si vous ne l'avez pas encore fait, je vous invite à lire ces quelques lignes qui vous aideront dans vos demandes et réponses
ainsi que sur les fonctionnalités (Nouveau Forum au bas de page notamment) de ce forum décrites par Sébastien -->
- La charte du forum
- Fonctionnalites du forum
Concernant votre demande, on peut utiliser l'instruction Dir()
Sub Test()
Dim WshShell As Object
Dim sPath
' Récupérer le chemin de Mes Documents
Set WshShell = CreateObject("WScript.Shell")
sPath = WshShell.SpecialFolders("MyDocuments")
' Sauvegarder
ThisWorkbook.SaveAs Filename:=sPath & ThisWorkbook.Name, FileFormat:=xlOpenXMLWorkbookMacroEnabled
' Vérifier si fichier existe
If Dir("C:\Temp\x.xls") <> "" Then
Kill "C:\Temp\x.xls"
End If
End SubNota : si vous est en O365, pensez à sauvegarder vos fichier au dernier format ".xlsx" ou ".xlsm"
Merci pour votre participation sur le site Excel Pratique
Cordialement
Edit : bonjour BsAlv
Je n'avais pas pris le temps de te répondre et de te remercier pour ton aide. Le code est parfait et très fonctionnel.
encore un grand merci pour cette aide précieuse.