Erreur sur fonction : For Output

jcgousseff Messages postés 1 Date d'inscription vendredi 2 avril 2004 Statut Membre Dernière intervention 23 février 2007 - 23 févr. 2007 à 18:16
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 - 23 févr. 2007 à 20:50
Bonjour,
Sur un portable dans un code VBA j'ai une erreur sur la ligne :
Open "C:\temp\toto" For Output As #2    (Fichier inexistant)

Alors que sur d'autre ordinateur il n'y a pas de soucis (comme si il y avait un problème de droit sur le répertoire ce qui n'est pas le cas)

Version Microsoft Visual basic 6.3

Si quelqu'un a la réponse cela m'aiderait bien

Merci

JCG

5 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
23 févr. 2007 à 18:21
Puisque ce n'est pas un problème de droit, le fichier est peut-etre déjà utiliser par un autre process.

Ou alors le répertoire n'existe pas

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
23 févr. 2007 à 18:23
Quel est le message d'erreur ?

Termines-tu bien ton ouverture/écriture par un Clis # 2 ?
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
23 févr. 2007 à 18:24
pardon lire Close # 2, bien sur.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
23 févr. 2007 à 19:28
Salut JC
Quand on ouvre un fichier, on spécifie un numéro d'ordre (le #2).
Si ce numéro est déjà utilisé, c'est à dire que tu as déjà fait un Open avec ce numéro ET que tu ne l'as pas refermé, tu as une erreur.
La méthode a adopter est de laisser VB décider du numéro à utiliser (à faire avant de faire le Open) :
Dim ff As Integer
ff = FreeFile
Open "C:\Temp\Toto.txt" For Output #ff
...
Close #ff
Sinon, comme l'a dit jmfmarques, vérifie que tu avais bien fermé le précédent fichier ouvert avec ce numéro #2 car ma solution ne résoud pas tout, il faut être méticuleux.

Conseil : Essaye de mettre des extensions à tes fichiers (Toto.txt), sinon, tu auras des problèmes pour les ouvrir avec d'autres logiciels

Sinon, précise nous quelle erreur (numéro et texte) tu obtiens. La solution diffère selon l'erreur

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0

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

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
23 févr. 2007 à 20:50
Pour etre sur de fermer tous les fichiers, au lieu d'utiliser Close #n°du fichier, il faut utiliser Close tout seul.

Close tout seul, ferme tous les fichiers préalablement ouverts avec une instruction Open. Au moment de l'utilisation, il faut etre sur de ne plus avoir besoin de garder des fichiers ouverts.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
Rejoignez-nous