Sauvegarde fichier excel

Résolu
quentiiin68 -  
 quentiiin68 -
Bonjour,

J'ai une macro me permettant de sauvegarder mon fichier excel. Cependant, j'aimerai, au cas-où un fichier du même nom existe deja, que ma macro sauvegarde le fichier mais avec un "V2" a coté.

Voici ma macro:

Sub exportandsaveas()

Sheets(file).Move

Call RépertoireExiste("S:\BRUSSELS\MIS\AUM\2016\Active-Passive Reco\" & m)

Call Fichierexiste("S:\BRUSSELS\MIS\AUM\2016\Active-Passive Reco\" & m & "\" & file & " " & m & ".xlsb")

MsgBox ("File has been saved in Active-Passive Reco" & " " & m)

End Sub


Et voici les deux fonctions:

Function RépertoireExiste(chemin As String) As Boolean
On Error Resume Next
RépertoireExiste = GetAttr(chemin) And vbDirectory
If RépertoireExiste = True Then
Exit Function
Else
MkDir (chemin)
End If
End Function

Function Fichierexiste(fichier As String) As Boolean
Dim i As Integer
i = 1
On Error Resume Next
Fichierexiste = GetAttr(fichier) And vbNormal
If Fichierexiste = True Then
ActiveWorkbook.saveas Filename:="S:\BRUSSELS\MIS\AUM\2016\Active-Passive Reco\" & m & "\" & file & " " & m & "V-" & i + 1 & ".xlsb", _
FileFormat:=xlExcel12, CreateBackup:=False
Else
ActiveWorkbook.saveas Filename:="S:\BRUSSELS\MIS\AUM\2016\Active-Passive Reco\" & m & "\" & file & " " & m & ".xlsb", _
FileFormat:=xlExcel12, CreateBackup:=False
End If
End Function


Le problème est que la deuxième fonction (Function fichierexiste) n'arrive pas à détecter la présence du fichier dans le répertoire de destination lorsque celui-ci existe deja.

Merci d'avance.
A voir également:

1 réponse

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Dans votre function Fichierexiste(, mettez la ligne On error en commentaire et vous aurez la reponse.
0
quentiiin68
 
Ca change rien, la fonction ne détecte tjs pas la présence du fichier. De plus, si je mets en commentaire la ligne On Error, la macro bug dans le cas ou le fichier n'existe pas
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > quentiiin68
 
Re,

Ben, vous avez une variable Fichierexiste qui a le meme nom que la fonction (idem pour repertoireexiste), donc ca pannouille un peu, appel recurcif
0
quentiiin68
 
J'ai réussi à solutionner mon pb comme ca:

Fichierexiste = Dir(fichier) And vbNormal
If Fichierexiste <> "" Then
ActiveWorkbook.saveas Filename:="S:\BRUSSELS\MIS\AUM\2016\Active-Passive Reco\" & m & "\" & file & " " & m & " v-" & i + 1 & ".xlsb", _
FileFormat:=xlExcel12, CreateBackup:=False
Else
ActiveWorkbook.saveas Filename:="S:\BRUSSELS\MIS\AUM\2016\Active-Passive Reco\" & m & "\" & file & " " & m & ".xlsb", _
FileFormat:=xlExcel12, CreateBackup:=False
End If
0