cs_Jacky7
Messages postés63Date d'inscriptionmardi 13 mai 2008StatutMembreDernière intervention22 juin 2011
-
19 mai 2008 à 22:49
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
20 mai 2008 à 16:30
Bonsoir à tous,
J'ai un problème lorsque je veux tester la présence d'un fichier excel, je m'explique :
Je demande à mon code de vérifier la présence d'un fichier excel "MonClasseur" avec la fonction dir :
Si il est inexistant, je le crée sinon je l'ouvre mais on dirai que mon prog reste dans la boucle où le fichier n'existe pas et fait que réécrire par dessus.
Mon problème est que lorsque le fichier est crée, le code ne le voit pas et il en crée un nouveau qui efface sans cesse l'ancien.
Voila mon bout de code qui gère cela :
If Dir("C:\bureau\Copie (6) de Copie de test programme avec 1 entrée\MonClasseur.xls") = "" Then
MsgBox "le fichier n'existe pas"
oExcel.Visible = True
a.Workbooks.Add
With a.ActiveWorkbook.Worksheets(1)
End With
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 20 mai 2008 à 16:30
Re
C'est surtout chiant le jour où le nom de ton répertoire change : il te faudra le modifier dans tout ton programme !
Solution 1 :
Utiliser App.Path si le répertoire est celui dans lequel se trouve le programme
Solution 2 :
Créer une variable globale à ton projet (définie en Public dans un module) sChemin par exemple et lui attribuer ton chemin biscornu.
Ensuite, dans ton programme, utilise ta variable à la place du chemin "en dur" :
Workbooks.Open sChemin & "\MonClasseur.xls"
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 20 mai 2008 à 03:00
Salut
Ce qui m'intrigue, c'est que tu testes dans la commande DIR un répertoire écrit de toute pièce, alors que tu génères un nouveau fichier dans App.Path.
Pourquoi ne pas tester App.Path aussi dans le DIR ?
Quand la MsgBox affiche "le fichier n'existe pas" : Que vaut App.Path ?
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Il y a une fonction pour tester l'existance des fichiers en se passant de DIR, elle est actuellement prevu pour les fichiers texte, mais pour ma part je l'ai adapté pour les fichiers Access, et tu pourras donc l'adapter aux fichiers Excel.
Jimy
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Jacky7
Messages postés63Date d'inscriptionmardi 13 mai 2008StatutMembreDernière intervention22 juin 20113 20 mai 2008 à 16:12
Salut Jack,
Effectivement mon code était mal écrit, j'ai corrigé les erreurs (j'ai écrit le chemin en toute lettre je ne sais pas si c'est grave) et il marche maintenant.
Voila ce que j'ai fait :
If Dir("C:\bureau\Copie (6) de Copie de test programme avec 1 entrée\MonClasseur.xls") = "" Then
MsgBox "le fichier n'existe pas"
oExcel.Visible = True
a.Workbooks.Add
With a.ActiveWorkbook.Worksheets(1)
End With
Set oWk = oExcel.Workbooks.Add
oWk.Sheets(1).Range("A1") = Text2
Else
MsgBox "le fichier existe"
oExcel.Visible = True
Workbooks.Open "C:\bureau\Copie (6) de Copie de test programme avec 1 entrée\MonClasseur.xls"
Set oWk = ActiveWorkbook
LigneVide = oWk.Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row + 1
oWk.Sheets(1).Range("A" & LigneVide) = Text2
Text4 = ("A" & LigneVide)
End If
oWk.SaveAs ("C:\bureau\Copie (6) de Copie de test programme avec 1 entrée\MonClasseur.xls")
oExcel.DisplayAlerts = False
oWk.Close False
oExcel.Quit
Set oWk = Nothing
Set oExcel = Nothing