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 Sub

Bonjour 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 Sub

Nota : 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

BrunoM45

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.
Rechercher des sujets similaires à "fonction sauvegarder"