Verifier si fichier deja existant

jpmasclet

XLDnaute Occasionnel
Bonjour,

J'ai une macro qui au clic enregistre le fichier dans un repertoire précis et je voudrais en faite qu'il y ai une vérification si le fichier existe deja. Ce fichier doit etre généré qu'une fois.

Donc mon objectif :

vérifier si le fichier "ABC" & utilisateur & ".xls" existe dans le repertoire E:/SEC/01/02/08/

si oui on envoi un message, comme quoi, le fichier a déja été enregistré sinon on fait l'enregistrement.

Mon soucis est que je ne connais pas le code pour vérifier si le fichier existe...
Vos avis ??
 

Staple1600

XLDnaute Barbatruc
Re : Verifier si fichier deja existant

Bonjour jpmasclet , le fil, le forum

Avec une fonction VBApersonnalisée ---> dans un module)

Code:
 Public Function FeuilleExiste(sNomFeuille As String) As Boolean 
    On Error GoTo Err_FeuilleExiste 
    FeuilleExiste = False 
    FeuilleExiste = Not ActiveWorkbook.Worksheets(sNomFeuille) Is Nothing 
Err_FeuilleExiste: 
End Function

À utiliser, par exemple, comme suit :
HTML:
 If FeuilleExiste("Feuil1" ) Then Msgbox "VRAI"
 
Dernière édition:

kjin

XLDnaute Barbatruc
Re : Verifier si fichier deja existant

bonjour jpmasclet, le forum,
Essaies la fonction Dir
'ton code
If Dir('chemin de ton fichier) = "" Then
ActiveWorkbook.SaveAs 'chemin de ton fichier
Else
MsgBox"Le Fichier existe déjà !"
 

jpmasclet

XLDnaute Occasionnel
Re : Verifier si fichier deja existant

mercu pour votre aide ,

Kjin j'ai essayé ton code mais je dois faire des erreurs, peut tu m'eclaire ?

Voici mon code :

Code:
Sub Macro5()


Dim dir As String
Dim str As String

Dim utilisateur
    utilisateur = Environ("username")

dir = "E:\SECRET\020208\"
str = dir & "quiz " & utilisateur & ".xls"

If dir = "" Then

ActiveWorkbook.SaveAs Filename:= _
str, FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
Application.DisplayRecentFiles = False
Application.DisplayRecentFiles = True
Else
MsgBox "Vous avez déja validé le Quiz!"
Application.DisplayRecentFiles = False
Application.DisplayRecentFiles = True
End If


End Sub

merci
 

Staple1600

XLDnaute Barbatruc
Re : Verifier si fichier deja existant

Re



Code:
 Function FileExists(FullFileName As String) As Boolean
' renvoie vra si le fichier existe
    FileExists = Len(Dir(FullFileName)) > 0
End Function
Code:
sub test()
Dim dir As String
Dim str As String
Dim utilisateur
Dim nomfic as String
utilisateur = Environ("username")
nomfic="quizz" & utlisateur & ".xls"

If Not FileExists("E:\SECRET\020208\" & nomfic) Then
ActiveWorkbook.SaveAs Filename:= _
str, FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
Application.DisplayRecentFiles = False
Application.DisplayRecentFiles = True
Else
MsgBox "Vous avez déja validé le Quiz!"
' PS:je ne comprends pas le sens de ces deux lignes
Application.DisplayRecentFiles = False
Application.DisplayRecentFiles = True
End if
End Sub
 
Dernière édition:

jpmasclet

XLDnaute Occasionnel
Re : Verifier si fichier deja existant

Re Stapple et merci pour ton code,

Malheureseusement, cela ne marche pas, car mon fichier s'appel actuelle quiz matrice.xls et logiquement il devrai s'appeler quiz mascletjp (fichier qui n'existe pas actuellement) hors la macro me dit que le fichier existe deja.....

Sinon concernant les fameuses lignes, en faite l'objectif est de rendre secret l'emplacement de sauvegarde ainsi grace à ça lorsque tu fais fichier ouvrir ou enregister sous, tu ne retombe pas sur le repertoire "secret".

Merci pour ton aide.
 

kjin

XLDnaute Barbatruc
Re : Verifier si fichier deja existant

Re jpmasclet, Staple1600,
Même remarque (quelle version Excel)
Sans options d'enregistrement:

Sub macro5()
Dim RepDest As String
Dim FichDest As String
Dim utilisateur
utilisateur = Environ("username")
RepDest = "E:\SECRET\020208\"
FichDest = "quiz " & utilisateur & ".xls"
If Dir(RepDest & FichDest) = "" Then
ActiveWorkbook.SaveAs RepDest & FichDest
Else
MsgBox "Vous avez déja validé le Quiz!"
End If
End Sub
 

ChTi160

XLDnaute Barbatruc
Re : Verifier si fichier deja existant

Salut jpmasclet
Bonjour le fil

une autre façon possible tirée d'un exemple sur le net de l'utilisation de la méthode FileSystemObject
on recherche la date de création d'un fichier si rien alors il n'existe pas Lol

'Activer dans Outils / Références de VBE Microsoft Scripting Runtime
Code:
Function ShowDateCreated(filespec)
  On Error GoTo fin
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFile(filespec)
        ShowDateCreated = f.DateCreated 'on retourne la date si exite
   Exit Function
fin:
         ShowDateCreated = "pas de fichier à ce nom" 'sinon le message
End Function

Code:
Sub test()
Dim utilisateur As String
Dim FichDest As String
utilisateur = Environ("username")
FichDest = "C:\quiz " & utilisateur & ".xls"
 
   MsgBox ShowDateCreated(FichDest)
   
End Sub

pourrait être adapté
Bonne journée ;)
 

jpmasclet

XLDnaute Occasionnel
Re : Verifier si fichier deja existant

Merci pour toutes vos réponses,
en faite avec la fonctoin NOT ça a l'air de fonctionner, mais après j'avais une erreur, l'erreur c'etait une faute sur le mot utilisateur !!!

j'ai tout remis correct mais maintenant, la fonction ne marche plus, lorsque le fichier existe deja ça me demande si je veux l'ecraser ???

voici le code
Code:
Dim dir As String
Dim str As String
Dim utilisateur
Dim nomfic As String
utilisateur = Environ("username")
nomfic = "quiz" & utilisateur & ".xls"

If Not FileExists("E:\SECRET\020208\" & nomfic & ".xls") Then
Call Macro3
ActiveWorkbook.SaveAs Filename:= _
nomfic, FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
Application.DisplayRecentFiles = False
Application.DisplayRecentFiles = True
Else
MsgBox "Vous avez déja validé le Quiz!"
' PS:je ne comprends pas le sens de ces deux lignes
Application.DisplayRecentFiles = False
Application.DisplayRecentFiles = True
End If
End Sub

Bon mainteannt je vais essayer le dernier code de kjin :) et apres celui de Chti
 

jpmasclet

XLDnaute Occasionnel
Re : Verifier si fichier deja existant

et bien cela fonctionne impecceable avec le code de Kjin.
Bon maintenant je me retrouve a nouveau avec le souci d'enregistrement silencieux" Post d'hier a cet effet que je viens de remettre a jour.

encore merci, et toujours aussi épaté par ces capacités sur XLS !!! ça je laisse reveur !!!
 

Discussions similaires