Création classeur vba

Résolu
Bonjour,

J'aimerais créer un nouveau classeur uniquement si celui ci n'existe pas, le probleme est que je ne sais pas comment tester si le fichier existe car je suppose qu'un simple test sur le fichier ne renverra pas vrai ou faux mais qu'il y'a une fonction spécifique pour ceci..

merci

9 réponses

  1. Tiens un cadeau...

    Sub test()
    chemin = "C:\DATA\"
    fichier = "essai.txt"

    If isFileExist(chemin + fichier) Then
    'existe
    'fais ce que tu veux...
    Else
    'n'existe pas
    '
    End If
    End Sub

    ' voici la fonction de test
    ' le principe ...essayer de lire un fichier s'il provoque l'erreur 53 --> pas de fichier

    Function isFileExist(filename As String)
    Dim NumFichier As Integer, Errnum As Integer
    Err.Clear
    On Error Resume Next
    NumFichier = FreeFile()
    Open filename For Input Lock Read As #NumFichier
    Close NumFichier
    Errnum = Err
    On Error GoTo 0
    Select Case Errnum
    Case 0
    isFileExist = True
    Case 53
    isFileExist = False

    End Select

    End Function

    A+
    1
    1. Bonjour,

      Une autre astuce :

      Public Function isFileExist(ByVal pFullPathFile As String) As Boolean
      
          If Dir(pFullPathFile, vbHidden) <> "" Then
              isFileExist= True
          Else
              isFileExist= False
          End If
          
      End Function


      ;o)
      1
      1. ActiveWorkbook.SaveAs "Synthese " & Projet

        je ne sais pas ce qu'il y a dans Projet mais ....

        voici la syntaxe
        Chemin doit contenir quelque chose comme "C:\Data\" ...par exemple
        et nom_fichier doit contenir "lenomdufichier.xls"

        ce qui donne
        Dim Chemin as sting
        Chemin="C:\Data"

        ActiveWorkbook.SaveAs Chemin & "\Synthese " & Projet & ".xls"
        1
        1. J'ai pris le code de bidouilleu et sa marche niquel,
          merci pour vos réponses.
          a+
          0
          1. Ok! Polux31...
            je te l'accorde la tienne est mieux présentée, plus courte, plus simple ... et ça marche c'est donc meilleur!

            mais la mienne marche aussi... je sais plus pourquoi j'avais écris ce truc là.
            Je t'accorde un bon point et mission accomplie.

            reste plus qu'à avoir merci et résolu .
            A+
            R
            0
            1. Re,

              Je n'ai présenté ça que comme une autre astuce, qui est d'utiliser la fonction Dir() et vbHidden.
              En aucun cas je n'ai remis en cause ta proposition.

              ;o)
              0
            2. @Polux31ne t'inquiète ... aucune offense de ma part plutôt un grand respect..

              même entre les lignes du VBA j'arrive à voir qui sait et qui apprend.

              Toi tu sais.

              Je préfère te compter parmi mes "hepeurs" préférés.

              ca marche?
              0
            3. @Bidouilleu_ROula ... je n'apportais qu'une précision ... je ne suis nullement froissé. T'inquiète, ça marche pas, ça court pour moi ^^

              Il faut partir du principe que l'on ne sait rien ou que l'on sait peu de chose. Celui qui détient le savoir, n'est pas de ce monde ou appartient aux illuminés divins ... et moi, je suis de ce monde et ne prétends pas appartenir à la seconde catégorie .. ^^

              Comme je l'ai déjà dit, pour un problème, il n'y a pas de solution meilleure qu'une autre, il y a une solution ou des solutions pertinentes, tant que le résultat attendu est correct.

              Bon app. @+

              ;o)
              0
          2. Juste une autre question,
            j'aimerais ainsi renommer le fichier s'il existe, voici mon code

            ActiveWorkbook.SaveAs "Synthese " & Projet


            Mais sa me dit juste que le fichier existe déjà et si je veux l'enregistrer, or il n'existe pas et quand je l'enregistre impossible de le trouver..
            0
            1. Ok merci je ne pensais pas qu'il fallait le chemin complet et l'extension,
              projet contient une chaine de caractere.
              Merci
              A+
              0
              1. Note aussi que du fait que tu as enregistré ton classeur

                il doit y avoir un fichier excel sans extension quelque pat sur ton disque dur.
                en fait

                il se trouve à thisworkbook.path

                tu peux aussi le retrouver avec l'explorateur windows.... je dis ça car dans 6 mois tu te demanderas à quoi il sert ce fichier

                ;)
                0
                1. Oui c'est ce que j'ai fait j'me suis servi du path pour le retrouver et le virer xD
                  Merci pour vos réponses
                  0

                  Discussions similaires

                  etiquette pour dos classeur

                  2 réponses