Création classeur vba

Résolu
Sorus -  
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

9 réponses

Bidouilleu_R Messages postés 1181 Date d'inscription   Statut Membre Dernière intervention   295
 
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
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
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
Bidouilleu_R Messages postés 1181 Date d'inscription   Statut Membre Dernière intervention   295
 
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
Sorus
 
J'ai pris le code de bidouilleu et sa marche niquel,
merci pour vos réponses.
a+
0

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

Posez votre question
Bidouilleu_R Messages postés 1181 Date d'inscription   Statut Membre Dernière intervention   295
 
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
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
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
Bidouilleu_R Messages postés 1181 Date d'inscription   Statut Membre Dernière intervention   295 > Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention  
 
ne 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
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204 > Bidouilleu_R Messages postés 1181 Date d'inscription   Statut Membre Dernière intervention  
 
Oula ... 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
Sorus
 
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
Anonyme
 
Ok merci je ne pensais pas qu'il fallait le chemin complet et l'extension,
projet contient une chaine de caractere.
Merci
A+
0
Bidouilleu_R Messages postés 1181 Date d'inscription   Statut Membre Dernière intervention   295
 
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
Anonyme
 
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