VB sauvergarde si fichier inexistant

dy -  
lermite222 Messages postés 9042 Statut Contributeur -
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

5 réponses

  1. dy
     
    up :(
    0
    1. dy
       
      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
  2. Utilisateur anonyme
     
    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
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
    1. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      Bonjour Polux,
      Solution au poste 5... C'est pas plus cour ?
      Et sans devoir aller sur ...(Pub gratos ?)
      A+
      0