Sauvegarde fichier excel

[Résolu/Fermé]
Signaler
-
 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.

1 réponse

Messages postés
15954
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
17 septembre 2021
1 534
Bonjour,

Dans votre function Fichierexiste(, mettez la ligne On error en commentaire et vous aurez la reponse.
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
Messages postés
15954
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
17 septembre 2021
1 534 > 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
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