impossible de enregistrer un fichier

4 réponses
Avatar
joseph84
Bonjour tout le monde,

je suis entrains de coder en vba une procedure qui va me permetre
d'enregistrer un fichier dans un emplacement precis.

le probleme c'est parfois on retrouve un fichier qui porte le meme nom
est qui est ouvert donc impossible de l'ecraser et impossible de le
fermer car il fait partit de la procedure.

est ce que il y a une facon de detecter cette particularite et de
changer le nom du fichier qu'on voudrais enregistrer et de laisser
l'autre comme il est.

merci

4 réponses

Avatar
DanielCo
Bonjour,
Tu peux utiliser :

Sub Enregistrer()
Dim FSO As Object, NomFichier As String, Chemin As String
NomFichier = "Graph.jpg"
Chemin = "C:temp"
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(Chemin & "" & NomFichier) Then
MsgBox "Le fichier existe"
End If
End Sub

Cordialement.
Daniel


Bonjour tout le monde,

je suis entrains de coder en vba une procedure qui va me permetre
d'enregistrer un fichier dans un emplacement precis.

le probleme c'est parfois on retrouve un fichier qui porte le meme nom
est qui est ouvert donc impossible de l'ecraser et impossible de le
fermer car il fait partit de la procedure.

est ce que il y a une facon de detecter cette particularite et de
changer le nom du fichier qu'on voudrais enregistrer et de laisser
l'autre comme il est.

merci
Avatar
DanielCo
Ou :

Sub Enregistrer1()
Dim NomFichier As String, Chemin As String, Fich As String
NomFichier = "Graph.jpg"
Chemin = "C:temp"
Fich = Dir(Chemin & "" & NomFichier)
If Fich <> "" Then
MsgBox "Le fichier existe"
End If
End Sub

Daniel


Bonjour tout le monde,

je suis entrains de coder en vba une procedure qui va me permetre
d'enregistrer un fichier dans un emplacement precis.

le probleme c'est parfois on retrouve un fichier qui porte le meme nom
est qui est ouvert donc impossible de l'ecraser et impossible de le
fermer car il fait partit de la procedure.

est ce que il y a une facon de detecter cette particularite et de
changer le nom du fichier qu'on voudrais enregistrer et de laisser
l'autre comme il est.

merci
Avatar
MichD
Bonjour,

Essaie quelque chose comme :

Variable à renseigner ...
'----------------------------------------
Sub test()

Dim Wk As Workbook
Dim Chemin As String
Dim Fichier As String
Err = 0
Chemin = "C:Excel" 'à adapter
Fichier = "SonNoms.xls" 'à adapter

On Error Resume Next
Set Wk = Workbooks(Fichier)
If Err = 0 Then
If Dir(Chemin & Fichier) <> "" Then
If MsgBox("Ce fichier est ouvert et déjà présent dans ce " & _
"répertoire & """ & Chemin & """. Désirez-vous " & _
"Effectuer une sauvegarde du fichier.", vbYesNo + vbCritical, _
"Attention") = vbYes Then
Workbooks(Fichier).Save
Else
MsgBox "Opération annulée. "
Exit Sub
End If
Else
Workbooks(Fichier).SaveAs Chemin & Fichier
End If
Else
Err = 0
If Dir(Chemin & Fichier) <> "" Then
If MsgBox("Ce fichier déjà présent dans ce " & _
"répertoire & """ & Chemin & """. Désirez-vous " & _
"écraser pendant la sauvegarde.", vbYesNo + vbCritical, _
"Attention") = vbYes Then
Workbooks(Fichier).SaveAs Chemin & Fichier
Else
MsgBox "Opération annulée. ", vbCritical + vbOKOnly, "Attention"
Exit Sub
End If
Else
Workbooks(Fichier).SaveAs Chemin & Fichier
End If
End If
End Sub
'----------------------------------------



MichD
--------------------------------------------
"joseph84" a écrit dans le message de groupe de discussion :


Bonjour tout le monde,

je suis entrains de coder en vba une procedure qui va me permetre
d'enregistrer un fichier dans un emplacement precis.

le probleme c'est parfois on retrouve un fichier qui porte le meme nom
est qui est ouvert donc impossible de l'ecraser et impossible de le
fermer car il fait partit de la procedure.

est ce que il y a une facon de detecter cette particularite et de
changer le nom du fichier qu'on voudrais enregistrer et de laisser
l'autre comme il est.

merci
Avatar
joseph84
Merci beaucoup c'est exactement ce que je chercher