VB sauvergarde si fichier inexistant

Fermé
dy - 4 déc. 2008 à 13:23
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 6 déc. 2008 à 13:03
Bonjour,

voila comme dit dans e titre je voudrais sauvergarder si le fichier inexistant!

'On créer l'objet Excel 
    Set xlApp = CreateObject("Excel.Application" ) 
    'On défini le nombre d'onglets 
    xlApp.SheetsInNewWorkbook = 1 
    'On ajoute un classeur 
    Set xlBook = xlApp.Workbooks.Add 
    'On rend le classeur visible 
    xlApp.Visible = True 
    'On créer l'objet onglet dans le nouveau classeur créé 
    Index = 1 
    Set xlsheets = xlBook.Worksheets(1) 
    'On affecte un nom aux l'onglets 
    xlsheets.Name = NumArticle 
    'on libère l'objet onglet pour pouvoir en créer un nouveau ... etc 
    On Error Resume Next ' Permet de ne pas planter si le dossier existe deja 
    Lecteur = Mid(NomDossier, 1, 2) 
    ChDrive Lecteur 
    'On donne un nom au classeur 
    MkDir NomDossier 
    If xlApp.fileexists(NomDoc & ".xls" ) Then 
    'rien 
    Else 
    xlBook.SaveAs NomDossier & NomDoc & ".xls" 
    On Error GoTo 0 ' On rend le control d'erreur à VBA 
    xlApp.Quit 


j'ai donc tester le filexiste
je l'ai essayer une première fois cela fonctionner
puis j'ais effacer mon répertoire! et lorque je relance ma macro il trouve tjr le fichier existant!
si quelqu'un pouvais m'aider merci


Message édité par diidy le 04-12-2008 à 11:17:58
A voir également:

5 réponses

pti up xD
0
up :(
0
j'ai trouver sur un forum plsu compétant :p
j donne la solution trouver

Public Function FileExists(ByVal strFileName As String) As Boolean

    
    Dim dtm As Date
    On Error GoTo ErrHandler
   
        ' FileDateTime seems to be more accurate than GetAttr
        dtm = FileSystem.FileDateTime(strFileName)
        FileExists = True
        Exit Function
ErrHandler:
       FileExists = False
       
End Function
0
Utilisateur anonyme
5 déc. 2008 à 13:56
Bonjour,

Voici une autre solution :

    Dim objFSO, Lecteur, NomDossier, NomDoc
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    ' Ici vous récupérer la lettre du lecteur du dossier visé
    Lecteur = Mid(NomDossier, 1, 2)
    ' Ici vous basculer sur le bon lecteur
    ChDrive Lecteur
    'Ici vous créé un nouveau dossier
    MkDir NomDossier
    ' Ici, vous êtes toujours dans le dossier courant
    ' du lecteur sur lequel vous avez basculé.
    ' Notez toutefois que vous ne connaissez pas le
    ' dossier actif. If faudrait une instruction du
    ' style [ ChDir "C:\Temp" ]
    
    If Not objFSO.FileExists(NomDossier & NomDoc & ".xls") Then
	    xlBook.SaveAs NomDossier & NomDoc & ".xls"
    End If
    
    On Error GoTo 0 ' On rend le control d'erreur à VBA
'


Pour ce qui est du dossier courant, lorsque vous changé de lecteur,
observer ce code :

Sub TestFichier()

    ChDrive "C:"
    ChDir "C:\Document"
    ChDrive "G:"
    ChDir "G:\Util"
    MkDir "Lupin"
    ChDrive "C:"
    ' Ici lorsque vous créé un dossier
    ' vous êtes dans le dernier répertoire
    ' actif  du C, donc dans [ C:\Document ]
    MkDir "Michel"
    ' Donc, vous obtenez : [ C:\Document\Michel ]    
End Sub
'


Lupin
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
5 déc. 2008 à 14:19
Bonjour,
Le plus cour pour savoir si un fichier existe
'Supposons... Chemin = "C:\Mes Documents\Mes classeurs\Test.xls"
    if Dir(chemin) <>"" then B=Vrai

et pas besoin d'être sur un forum "plus malin" pour trouver ça.
A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
5 déc. 2008 à 14:57
Bonjour,

Peut être avec une explication mieux exposée, une bonne âme bénévole aurait pris le soin de répondre.

Le problème étant dans une fonction qui n'est pas donnée dans la demande.

Une recherche sur developpez.com aurait donné ceci :

Public Function doesExistFile(ByVal pFullPathFile As String) As Boolean   'pFullPathFile = chemin d'accés complet du fichier à trouver

    If Dir(pFullPathFile, vbHidden) <> "" Then    'vbHidden permet de trouver le fichier même s'il est caché.
        doesExistFile = True   'Le fichier existe
    Else
        doesExistFile = False   'Le fichier n'existe pas
    End If
    
End Function



Bon courage

;o)
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
6 déc. 2008 à 13:03
Bonjour Polux,
Solution au poste 5... C'est pas plus cour ?
Et sans devoir aller sur ...(Pub gratos ?)
A+
0