Problème d'enregistrement VBA

Bonjour,

j'ai une macro qui me permet d'enregistrer mon fichier Excel. Je rencontre un problème, vu que mon fichier est sur mon bureau et que celui-ci est synchronisé avec One-drive je rencontre des erreurs.

Pour faire simple mon code actuel enregistre bien mon fichier sur mon bureau, le problème c'est que si le fichier existe déjà j'ai un message d'erreur. J'aimerais implanter dans ma macro un ActiveWorkbook.save si le fichier existe. en gros si le fichier existe alors ActiveWorkbook.save si il n'existe pas alors fichier.SaveAs Chemin

Private Sub Sauvegarde_Excel_Click()

Dim fichier As Workbook
Dim Chemin As String

Message = MsgBox(Space(23) & "Voulez-vous sauvegarder le fichier ?" & vbCrLf & Space(5) & "Si le fichier est existant celui-ci sera supprimé et remplacé", vbYesNo)
Set fichier = ActiveWorkbook

Chemin = "C:\Users\**********\OneDrive - ***********\Bureau\" & Range("NumDevis").Value & ".xlsm"

If Message = vbYes Then
    Application.DisplayAlerts = False
    fichier.SaveAs Chemin
Else
MsgBox ("/!\ ATTENTION /!\ :" & vbCrLf & "Le fichier n'a pas été sauvegardé")
End If

End Sub

Merci pour votre aide

Goat

Bonjour Goat,

Il faut faire un test avec la fonction Dir()

Private Sub Sauvegarde_Excel_Click()

Dim fichier As Workbook
Dim Chemin As String

Message = MsgBox(Space(23) & "Voulez-vous sauvegarder le fichier ?" & vbCrLf & Space(5) & "Si le fichier est existant celui-ci sera supprimé et remplacé", vbYesNo)
Set fichier = ActiveWorkbook

Chemin = "C:\Users\**********\OneDrive - ***********\Bureau\" & Range("NumDevis").Value & ".xlsm"
' L'utilisateur à répondu OUI
If Message = vbYes Then
  ' On teste si le fichier existe déjà
 If Dir(chemin) <>"" then
    ' Si Oui on supprime l'ancien
    Kill Chemin
  Endif
    Application.DisplayAlerts = False
    fichier.SaveAs Chemin
Else
MsgBox ("/!\ ATTENTION /!\ :" & vbCrLf & "Le fichier n'a pas été sauvegardé")
End If

End Sub

@+

Bonjour BrunoM45,

Merci de souvent m'aider dans mes problèmes.

Ton code à l'air de marcher mais j'ai un message d'erreur :

image image

Je crois que j'ai réglé le problème avec ce code :

rivate Sub Sauvegarde_Excel_Click()

Dim fichier As Workbook
Dim Chemin As String

Message = MsgBox(Space(23) & "Voulez-vous sauvegarder le fichier ?" & vbCrLf & Space(5) & "Si le fichier est existant celui-ci sera supprimé et remplacé", vbYesNo)
Set fichier = ActiveWorkbook

Chemin = "C:\Users\**********\OneDrive - ***********\Bureau\" & Range("NumDevis").Value & ".xlsm"

If Message = vbYes Then
    If Dir(Chemin) <> "" Then
    fichier.Save
    Else
    Application.DisplayAlerts = False
    fichier.SaveAs Chemin
    End If
Else
MsgBox ("/!\ ATTENTION /!\ :" & vbCrLf & "Le fichier n'a pas été sauvegardé")
End If

End Sub

Re,

C'est que le fichier que vous tentez de supprimer est déjà ouvert

Oui, souvent c'est le fichier sur lequel je travail c'est pour ca que je voulais mettre un fichier.save si jamais le fichier existe déjà

Rechercher des sujets similaires à "probleme enregistrement vba"