Soit un code vb qui analyse l'arborescence des r=E9pertoires : le
probl=E8me est que le r=E9sultat est tr=E8s lourd et qu'il risque de
d=E9passer le nombre de caract=E8res autoris=E9s dans un champ Memo (64 000
il me semble ?)...
Donc, j'aimerais bien transf=E9rer ce r=E9sultat directement dans un
fichier Word (=E0 cr=E9er au passage donc)... si possible sans avoir =E0
g=E9rer du publipostage et me pr=E9occuper de signets, etc. : je voudrais
juste copier ces donn=E9es "brut de pomme" dans un fichier Word... Est-
ce possible et si oui comment ??
Merci d'avance aux bienfaiteurs de ce forum ;o)
Sonia.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gloops
gauso a écrit, le 07/04/2011 09:28 :
Bonjour,
Soit un code vb qui analyse l'arborescence des répertoires : le problème est que le résultat est très lourd et qu'il risque de dépasser le nombre de caractères autorisés dans un champ Memo (64 000 il me semble ?)... Donc, j'aimerais bien transférer ce résultat directement dans un fichier Word (à créer au passage donc)... si possible sans avoir à gérer du publipostage et me préoccuper de signets, etc. : je voudra is juste copier ces données "brut de pomme" dans un fichier Word... Est- ce possible et si oui comment ??
Merci d'avance aux bienfaiteurs de ce forum ;o) Sonia.
Bonjour,
Et dans un fichier texte, non ?
____________ Open "nomfichier.txt" For Output As #1
While Not TraitementTermine Print #1, strLigne Wend
Close #1 ____________
Alors pour un fichier Word. Je vais prendre l'exemple facile où tout es t bien installé en standard et on ne se retrouve pas avec une erreur 429. Au besoin on pourra aussi essayer un Set wrdApp = CreateObject("Word.Application")
Attention d'ajouter Word (ou Office ?) dans les références : partir d 'un module, appeler le menu Outils, commande Références.
Dim wrdApp As New Word.Application Dim wrdDoc As Word.Document
Set wrdDoc = wrdApp.Documents.Add()
While Not TraitementTermine wrdDoc.Content.InsertAfter strLigne wrdDoc.Content.InsertParagraphAfter Wend wrdDoc.SaveAs "fichier.doc"
C'est un exemple, mais à moins de vouloir ensuite faire de la mise en forme pour mettre en valeur certains éléments, il est clair que la version texte est plus facile à adapter.
Je pars du principe qu'on a un Word ultérieur à ... combien déjà, 2000 ? J'ai pratiqué les autres, mais si on cherche à être exhaustif, on e n a pour un moment.
Pour revenir au fichier texte (pour Word on peut adapter d'ailleurs) ... Comme on aime bien suivre ce qui se passe pendant l'exécution, on peut remplacer l'écriture par
Affiche strLigne
en ayant au préalable créé :
Public Sub Affiche(strLigne As String) On Error Resume Next Debug.Print strLigne Print #1, strLigne End Sub
Dans tous les cas la chaîne reçue apparaît dans la fenêtre d'exé cution. Ensuite, si un fichier #1 est ouvert on écrit la chaîne en argument dedans, sinon l'erreur est ignorée.
J'ai une version avec écriture tabulée, parce que Debug.Print "colonne1";tab(50);"colonne2" ça marche bien, mais passer ça en argument à une fonction, c'est un peu plus coton. Mais là, je suis hors sujet.
gauso a écrit, le 07/04/2011 09:28 :
Bonjour,
Soit un code vb qui analyse l'arborescence des répertoires : le
problème est que le résultat est très lourd et qu'il risque de
dépasser le nombre de caractères autorisés dans un champ Memo (64 000
il me semble ?)...
Donc, j'aimerais bien transférer ce résultat directement dans un
fichier Word (à créer au passage donc)... si possible sans avoir à
gérer du publipostage et me préoccuper de signets, etc. : je voudra is
juste copier ces données "brut de pomme" dans un fichier Word... Est-
ce possible et si oui comment ??
Merci d'avance aux bienfaiteurs de ce forum ;o)
Sonia.
Bonjour,
Et dans un fichier texte, non ?
____________
Open "nomfichier.txt" For Output As #1
While Not TraitementTermine
Print #1, strLigne
Wend
Close #1
____________
Alors pour un fichier Word. Je vais prendre l'exemple facile où tout es t
bien installé en standard et on ne se retrouve pas avec une erreur 429.
Au besoin on pourra aussi essayer un
Set wrdApp = CreateObject("Word.Application")
Attention d'ajouter Word (ou Office ?) dans les références : partir d 'un
module, appeler le menu Outils, commande Références.
Dim wrdApp As New Word.Application
Dim wrdDoc As Word.Document
Set wrdDoc = wrdApp.Documents.Add()
While Not TraitementTermine
wrdDoc.Content.InsertAfter strLigne
wrdDoc.Content.InsertParagraphAfter
Wend
wrdDoc.SaveAs "fichier.doc"
C'est un exemple, mais à moins de vouloir ensuite faire de la mise en
forme pour mettre en valeur certains éléments, il est clair que la
version texte est plus facile à adapter.
Je pars du principe qu'on a un Word ultérieur à ... combien déjà, 2000 ?
J'ai pratiqué les autres, mais si on cherche à être exhaustif, on e n a
pour un moment.
Pour revenir au fichier texte (pour Word on peut adapter d'ailleurs) ...
Comme on aime bien suivre ce qui se passe pendant l'exécution, on peut
remplacer l'écriture par
Affiche strLigne
en ayant au préalable créé :
Public Sub Affiche(strLigne As String)
On Error Resume Next
Debug.Print strLigne
Print #1, strLigne
End Sub
Dans tous les cas la chaîne reçue apparaît dans la fenêtre d'exé cution.
Ensuite, si un fichier #1 est ouvert on écrit la chaîne en argument
dedans, sinon l'erreur est ignorée.
J'ai une version avec écriture tabulée, parce que
Debug.Print "colonne1";tab(50);"colonne2"
ça marche bien, mais passer ça en argument à une fonction, c'est un peu
plus coton. Mais là, je suis hors sujet.
Soit un code vb qui analyse l'arborescence des répertoires : le problème est que le résultat est très lourd et qu'il risque de dépasser le nombre de caractères autorisés dans un champ Memo (64 000 il me semble ?)... Donc, j'aimerais bien transférer ce résultat directement dans un fichier Word (à créer au passage donc)... si possible sans avoir à gérer du publipostage et me préoccuper de signets, etc. : je voudra is juste copier ces données "brut de pomme" dans un fichier Word... Est- ce possible et si oui comment ??
Merci d'avance aux bienfaiteurs de ce forum ;o) Sonia.
Bonjour,
Et dans un fichier texte, non ?
____________ Open "nomfichier.txt" For Output As #1
While Not TraitementTermine Print #1, strLigne Wend
Close #1 ____________
Alors pour un fichier Word. Je vais prendre l'exemple facile où tout es t bien installé en standard et on ne se retrouve pas avec une erreur 429. Au besoin on pourra aussi essayer un Set wrdApp = CreateObject("Word.Application")
Attention d'ajouter Word (ou Office ?) dans les références : partir d 'un module, appeler le menu Outils, commande Références.
Dim wrdApp As New Word.Application Dim wrdDoc As Word.Document
Set wrdDoc = wrdApp.Documents.Add()
While Not TraitementTermine wrdDoc.Content.InsertAfter strLigne wrdDoc.Content.InsertParagraphAfter Wend wrdDoc.SaveAs "fichier.doc"
C'est un exemple, mais à moins de vouloir ensuite faire de la mise en forme pour mettre en valeur certains éléments, il est clair que la version texte est plus facile à adapter.
Je pars du principe qu'on a un Word ultérieur à ... combien déjà, 2000 ? J'ai pratiqué les autres, mais si on cherche à être exhaustif, on e n a pour un moment.
Pour revenir au fichier texte (pour Word on peut adapter d'ailleurs) ... Comme on aime bien suivre ce qui se passe pendant l'exécution, on peut remplacer l'écriture par
Affiche strLigne
en ayant au préalable créé :
Public Sub Affiche(strLigne As String) On Error Resume Next Debug.Print strLigne Print #1, strLigne End Sub
Dans tous les cas la chaîne reçue apparaît dans la fenêtre d'exé cution. Ensuite, si un fichier #1 est ouvert on écrit la chaîne en argument dedans, sinon l'erreur est ignorée.
J'ai une version avec écriture tabulée, parce que Debug.Print "colonne1";tab(50);"colonne2" ça marche bien, mais passer ça en argument à une fonction, c'est un peu plus coton. Mais là, je suis hors sujet.
gauso
Merci Gloops :o) Je crois que le fichier txt ira bien... Mais j'ai un petit souci : il s'enregistre automatiquement dans Mes Documents... Comment faire pour qu'il s'enregistre DIRECTEMENT dans le répertoire que je souhaite (sans avoir à utiliser l'écriture entière du chemin, car on travaille en réseau et donc le chemin peut être relatif...),
Merci d'avance pour tes lumières, Sonia
Merci Gloops :o)
Je crois que le fichier txt ira bien...
Mais j'ai un petit souci : il s'enregistre automatiquement dans Mes
Documents...
Comment faire pour qu'il s'enregistre DIRECTEMENT dans le répertoire
que je souhaite (sans avoir à utiliser l'écriture entière du chemin,
car on travaille en réseau et donc le chemin peut être relatif...),
Merci Gloops :o) Je crois que le fichier txt ira bien... Mais j'ai un petit souci : il s'enregistre automatiquement dans Mes Documents... Comment faire pour qu'il s'enregistre DIRECTEMENT dans le répertoire que je souhaite (sans avoir à utiliser l'écriture entière du chemin, car on travaille en réseau et donc le chemin peut être relatif...),
Merci d'avance pour tes lumières, Sonia
Gloops
gauso a écrit, le 08/04/2011 11:39 :
Merci Gloops :o) Je crois que le fichier txt ira bien... Mais j'ai un petit souci : il s'enregistre automatiquement dans Mes Documents... Comment faire pour qu'il s'enregistre DIRECTEMENT dans le répertoire que je souhaite (sans avoir à utiliser l'écriture entière du chem in, car on travaille en réseau et donc le chemin peut être relatif...),
Merci d'avance pour tes lumières, Sonia
Salut Sonia,
Ben ... si le chemin est relatif, tout va bien, non ?
Alors il faut avoir en tête les notions d'unité par défaut (ou disq ue par défaut si on préfère), et de répertoire par défaut. Le répertoire par défaut se décline par disque.
On change le répertoire par défaut avec l'instruction ChDir Pour le disque j'ai un trou de mémoire, il me semble que c'est ChDisk Il faut utiliser les deux avec le même argument, si celui-ci comporte une unité et un chemin.
ChDisk "C:Test" ChDir "C:Test"
Sur la première ligne on choisit le disque C:, et sur la deuxième on dit que le répertoire actif y est le répertoire Test, sous la racine. C'est un exemple à adapter, puisque C:, pour le réseau, ce n'est pas le meilleur exemple :)
Pour le réseau on peut indiquer un chemin sans lettre d'unité, ce qui a l'avantage d'être transposable d'un poste sur l'autre, puisque les lettres d'unité peuvent êtres définies de façon différente d'un poste à l'autre. On utilise alors ce qu'on appelle un chemin UNC (faire une recherche là-dessus, de mémoire il me semble bien que c'est Unified Naming Convention) Un chemin UNC commence par deux barres inverses, un nom d'unité, une barre inverse, suivie d'un chemin, où comme dans l'autre convention (avec les lettres de lecteur) les différents répertoires sur le chemi n sont séparés par des barres inverses.
Si il y a un inconvénient au chemin UNC, c'est bien qu'il ne répond p as à la question :) C'est vrai, choisir un chemin par défaut sur un chemin UNC, ça ne me paraît pas très commode, et si c'est possible j'ai une lacune sur la question.
ça me paraît quand même important de savoir que ça existe, pour l'intérêt que je mentionnais, les lettres de lecteurs ne sont pas toujours définies pareil d'un poste à l'autre. On peut imaginer d'en définir une pour les besoins du traitement (voir du côté de NET USE , ou de SUBST)
Bon, eh bien ... après, ça serait délayé, non ?
gauso a écrit, le 08/04/2011 11:39 :
Merci Gloops :o)
Je crois que le fichier txt ira bien...
Mais j'ai un petit souci : il s'enregistre automatiquement dans Mes
Documents...
Comment faire pour qu'il s'enregistre DIRECTEMENT dans le répertoire
que je souhaite (sans avoir à utiliser l'écriture entière du chem in,
car on travaille en réseau et donc le chemin peut être relatif...),
Merci d'avance pour tes lumières,
Sonia
Salut Sonia,
Ben ... si le chemin est relatif, tout va bien, non ?
Alors il faut avoir en tête les notions d'unité par défaut (ou disq ue
par défaut si on préfère), et de répertoire par défaut.
Le répertoire par défaut se décline par disque.
On change le répertoire par défaut avec l'instruction ChDir
Pour le disque j'ai un trou de mémoire, il me semble que c'est ChDisk
Il faut utiliser les deux avec le même argument, si celui-ci comporte
une unité et un chemin.
ChDisk "C:Test"
ChDir "C:Test"
Sur la première ligne on choisit le disque C:, et sur la deuxième on dit
que le répertoire actif y est le répertoire Test, sous la racine.
C'est un exemple à adapter, puisque C:, pour le réseau, ce n'est pas le
meilleur exemple :)
Pour le réseau on peut indiquer un chemin sans lettre d'unité, ce qui a
l'avantage d'être transposable d'un poste sur l'autre, puisque les
lettres d'unité peuvent êtres définies de façon différente d'un poste à
l'autre. On utilise alors ce qu'on appelle un chemin UNC (faire une
recherche là-dessus, de mémoire il me semble bien que c'est Unified
Naming Convention)
Un chemin UNC commence par deux barres inverses, un nom d'unité, une
barre inverse, suivie d'un chemin, où comme dans l'autre convention
(avec les lettres de lecteur) les différents répertoires sur le chemi n
sont séparés par des barres inverses.
Si il y a un inconvénient au chemin UNC, c'est bien qu'il ne répond p as
à la question :)
C'est vrai, choisir un chemin par défaut sur un chemin UNC, ça ne me
paraît pas très commode, et si c'est possible j'ai une lacune sur la
question.
ça me paraît quand même important de savoir que ça existe, pour
l'intérêt que je mentionnais, les lettres de lecteurs ne sont pas
toujours définies pareil d'un poste à l'autre. On peut imaginer d'en
définir une pour les besoins du traitement (voir du côté de NET USE , ou
de SUBST)
Merci Gloops :o) Je crois que le fichier txt ira bien... Mais j'ai un petit souci : il s'enregistre automatiquement dans Mes Documents... Comment faire pour qu'il s'enregistre DIRECTEMENT dans le répertoire que je souhaite (sans avoir à utiliser l'écriture entière du chem in, car on travaille en réseau et donc le chemin peut être relatif...),
Merci d'avance pour tes lumières, Sonia
Salut Sonia,
Ben ... si le chemin est relatif, tout va bien, non ?
Alors il faut avoir en tête les notions d'unité par défaut (ou disq ue par défaut si on préfère), et de répertoire par défaut. Le répertoire par défaut se décline par disque.
On change le répertoire par défaut avec l'instruction ChDir Pour le disque j'ai un trou de mémoire, il me semble que c'est ChDisk Il faut utiliser les deux avec le même argument, si celui-ci comporte une unité et un chemin.
ChDisk "C:Test" ChDir "C:Test"
Sur la première ligne on choisit le disque C:, et sur la deuxième on dit que le répertoire actif y est le répertoire Test, sous la racine. C'est un exemple à adapter, puisque C:, pour le réseau, ce n'est pas le meilleur exemple :)
Pour le réseau on peut indiquer un chemin sans lettre d'unité, ce qui a l'avantage d'être transposable d'un poste sur l'autre, puisque les lettres d'unité peuvent êtres définies de façon différente d'un poste à l'autre. On utilise alors ce qu'on appelle un chemin UNC (faire une recherche là-dessus, de mémoire il me semble bien que c'est Unified Naming Convention) Un chemin UNC commence par deux barres inverses, un nom d'unité, une barre inverse, suivie d'un chemin, où comme dans l'autre convention (avec les lettres de lecteur) les différents répertoires sur le chemi n sont séparés par des barres inverses.
Si il y a un inconvénient au chemin UNC, c'est bien qu'il ne répond p as à la question :) C'est vrai, choisir un chemin par défaut sur un chemin UNC, ça ne me paraît pas très commode, et si c'est possible j'ai une lacune sur la question.
ça me paraît quand même important de savoir que ça existe, pour l'intérêt que je mentionnais, les lettres de lecteurs ne sont pas toujours définies pareil d'un poste à l'autre. On peut imaginer d'en définir une pour les besoins du traitement (voir du côté de NET USE , ou de SUBST)
Bon, eh bien ... après, ça serait délayé, non ?
gauso
"Délayé" tu dis... ben je ne m'en sortais pas avec tes explications (je manque de bases !), Donc je me suis reportée au didacticiel http://warin.developpez.com/acces s/fichiers/#LI-B-2, et après avoir tâtonné par mal, j'ai fini par m'en sortir en utilisant : Dim a As Object Set a = oFSO.CreateTextFile("Chemin de destinationNomFichier.txt, True) a.WriteLine sTmp ' sTmp étant le résultat de l'exploration de mes répertoires... a.Close
... me permettant de créer directement le fichier là où je voulais qu'il soit et d'y écrire ce que j'avais à y écrire...
Merci quand même et bonne journée, Sonia.
"Délayé" tu dis... ben je ne m'en sortais pas avec tes explications
(je manque de bases !),
Donc je me suis reportée au didacticiel http://warin.developpez.com/acces s/fichiers/#LI-B-2,
et après avoir tâtonné par mal, j'ai fini par m'en sortir en
utilisant :
Dim a As Object
Set a = oFSO.CreateTextFile("Chemin de destinationNomFichier.txt,
True)
a.WriteLine sTmp ' sTmp étant le résultat de l'exploration de mes
répertoires...
a.Close
... me permettant de créer directement le fichier là où je voulais
qu'il soit et d'y écrire ce que j'avais à y écrire...
"Délayé" tu dis... ben je ne m'en sortais pas avec tes explications (je manque de bases !), Donc je me suis reportée au didacticiel http://warin.developpez.com/acces s/fichiers/#LI-B-2, et après avoir tâtonné par mal, j'ai fini par m'en sortir en utilisant : Dim a As Object Set a = oFSO.CreateTextFile("Chemin de destinationNomFichier.txt, True) a.WriteLine sTmp ' sTmp étant le résultat de l'exploration de mes répertoires... a.Close
... me permettant de créer directement le fichier là où je voulais qu'il soit et d'y écrire ce que j'avais à y écrire...
Merci quand même et bonne journée, Sonia.
Gloops
gauso a écrit, le 09/04/2011 12:04 :
"Délayé" tu dis... ben je ne m'en sortais pas avec tes explications (je manque de bases !), Donc je me suis reportée au didacticiel http://warin.developpez.com/a ccess/fichiers/#LI-B-2, et après avoir tâtonné par mal, j'ai fini par m'en sortir en utilisant : Dim a As Object Set a = oFSO.CreateTextFile("Chemin de destinationNomFichier.txt, True) a.WriteLine sTmp ' sTmp étant le résultat de l'exploration de mes répertoires... a.Close
... me permettant de créer directement le fichier là où je voulai s qu'il soit et d'y écrire ce que j'avais à y écrire...
Merci quand même et bonne journée, Sonia.
C'est aussi une possibilité, mais c'est dommage de charger une ressourc e supplémentaire (FileSystemObject), alors que VBA s'en sort très bien.
Le début de ma première réponse : ____ Open "nomfichier.txt" For Output As #1
While Not TraitementTermine Print #1, strLigne Wend
Close #1 ___
Bien sûr, à la place de TraitementTermine, il faut mettre la conditio n qui va bien. Et strLigne est la ligne à écrire dans le fichier. Si on veut écrire à la suite dans un fichier existant, on remplace For Outp ut par For Append.
La suite, c'était juste pour répondre au premier degré à la quest ion posée.
Alors puisque l'exemple proposé en FSO n'écrit qu'une ligne :
Open "nomfichier.txt" For Output As #1 Print #1, strLigne Close #1
gauso a écrit, le 09/04/2011 12:04 :
"Délayé" tu dis... ben je ne m'en sortais pas avec tes explications
(je manque de bases !),
Donc je me suis reportée au didacticiel http://warin.developpez.com/a ccess/fichiers/#LI-B-2,
et après avoir tâtonné par mal, j'ai fini par m'en sortir en
utilisant :
Dim a As Object
Set a = oFSO.CreateTextFile("Chemin de destinationNomFichier.txt,
True)
a.WriteLine sTmp ' sTmp étant le résultat de l'exploration de mes
répertoires...
a.Close
... me permettant de créer directement le fichier là où je voulai s
qu'il soit et d'y écrire ce que j'avais à y écrire...
Merci quand même et bonne journée,
Sonia.
C'est aussi une possibilité, mais c'est dommage de charger une ressourc e
supplémentaire (FileSystemObject), alors que VBA s'en sort très bien.
Le début de ma première réponse :
____
Open "nomfichier.txt" For Output As #1
While Not TraitementTermine
Print #1, strLigne
Wend
Close #1
___
Bien sûr, à la place de TraitementTermine, il faut mettre la conditio n
qui va bien. Et strLigne est la ligne à écrire dans le fichier. Si on
veut écrire à la suite dans un fichier existant, on remplace For Outp ut
par For Append.
La suite, c'était juste pour répondre au premier degré à la quest ion posée.
Alors puisque l'exemple proposé en FSO n'écrit qu'une ligne :
Open "nomfichier.txt" For Output As #1
Print #1, strLigne
Close #1
"Délayé" tu dis... ben je ne m'en sortais pas avec tes explications (je manque de bases !), Donc je me suis reportée au didacticiel http://warin.developpez.com/a ccess/fichiers/#LI-B-2, et après avoir tâtonné par mal, j'ai fini par m'en sortir en utilisant : Dim a As Object Set a = oFSO.CreateTextFile("Chemin de destinationNomFichier.txt, True) a.WriteLine sTmp ' sTmp étant le résultat de l'exploration de mes répertoires... a.Close
... me permettant de créer directement le fichier là où je voulai s qu'il soit et d'y écrire ce que j'avais à y écrire...
Merci quand même et bonne journée, Sonia.
C'est aussi une possibilité, mais c'est dommage de charger une ressourc e supplémentaire (FileSystemObject), alors que VBA s'en sort très bien.
Le début de ma première réponse : ____ Open "nomfichier.txt" For Output As #1
While Not TraitementTermine Print #1, strLigne Wend
Close #1 ___
Bien sûr, à la place de TraitementTermine, il faut mettre la conditio n qui va bien. Et strLigne est la ligne à écrire dans le fichier. Si on veut écrire à la suite dans un fichier existant, on remplace For Outp ut par For Append.
La suite, c'était juste pour répondre au premier degré à la quest ion posée.
Alors puisque l'exemple proposé en FSO n'écrit qu'une ligne :
Open "nomfichier.txt" For Output As #1 Print #1, strLigne Close #1
Gloops
Gloops a écrit, le 10/04/2011 00:59 :
gauso a écrit, le 09/04/2011 12:04 :
"Délayé" tu dis... ben je ne m'en sortais pas avec tes explication s (je manque de bases !), Donc je me suis reportée au didacticiel http://warin.developpez.com/access/fichiers/#LI-B-2, et après avoir tâtonné par mal, j'ai fini par m'en sortir en utilisant : Dim a As Object Set a = oFSO.CreateTextFile("Chemin de destinationNomFichier.txt, True) a.WriteLine sTmp ' sTmp étant le résultat de l'exploration de mes répertoires... a.Close
... me permettant de créer directement le fichier là où je voula is qu'il soit et d'y écrire ce que j'avais à y écrire...
Merci quand même et bonne journée, Sonia.
C'est aussi une possibilité, mais c'est dommage de charger une ressou rce supplémentaire (FileSystemObject), alors que VBA s'en sort très bie n.
Le début de ma première réponse : ____ Open "nomfichier.txt" For Output As #1
While Not TraitementTermine Print #1, strLigne Wend
Close #1 ___
Bien sûr, à la place de TraitementTermine, il faut mettre la condit ion qui va bien. Et strLigne est la ligne à écrire dans le fichier. Si on veut écrire à la suite dans un fichier existant, on remplace For Ou tput par For Append.
La suite, c'était juste pour répondre au premier degré à la que stion posée.
Alors puisque l'exemple proposé en FSO n'écrit qu'une ligne :
Open "nomfichier.txt" For Output As #1 Print #1, strLigne Close #1
Ah ça me revient : il m'est arrivé, une fois, de faire appel à FSO, parce qu'avec la syntaxe VB que j'indique ci-dessus, je n'obtenais pas ce que je voulais dans le fichier, et avec FSO c'est passé "comme une lettre à la poste", comme on disait avant qu'on mette des majuscules au nom (en France on dit "La Poste" depuis quelques années) et des minuscules au service. Hélas, je ne me rappelle pas les détails et je suis incapable d'en dire plus. Peut-être que 3stone saura dire ?
Gloops a écrit, le 10/04/2011 00:59 :
gauso a écrit, le 09/04/2011 12:04 :
"Délayé" tu dis... ben je ne m'en sortais pas avec tes explication s
(je manque de bases !),
Donc je me suis reportée au didacticiel
http://warin.developpez.com/access/fichiers/#LI-B-2,
et après avoir tâtonné par mal, j'ai fini par m'en sortir en
utilisant :
Dim a As Object
Set a = oFSO.CreateTextFile("Chemin de destinationNomFichier.txt,
True)
a.WriteLine sTmp ' sTmp étant le résultat de l'exploration de mes
répertoires...
a.Close
... me permettant de créer directement le fichier là où je voula is
qu'il soit et d'y écrire ce que j'avais à y écrire...
Merci quand même et bonne journée,
Sonia.
C'est aussi une possibilité, mais c'est dommage de charger une ressou rce
supplémentaire (FileSystemObject), alors que VBA s'en sort très bie n.
Le début de ma première réponse :
____
Open "nomfichier.txt" For Output As #1
While Not TraitementTermine
Print #1, strLigne
Wend
Close #1
___
Bien sûr, à la place de TraitementTermine, il faut mettre la condit ion
qui va bien. Et strLigne est la ligne à écrire dans le fichier. Si on
veut écrire à la suite dans un fichier existant, on remplace For Ou tput
par For Append.
La suite, c'était juste pour répondre au premier degré à la que stion posée.
Alors puisque l'exemple proposé en FSO n'écrit qu'une ligne :
Open "nomfichier.txt" For Output As #1
Print #1, strLigne
Close #1
Ah ça me revient : il m'est arrivé, une fois, de faire appel à FSO,
parce qu'avec la syntaxe VB que j'indique ci-dessus, je n'obtenais pas
ce que je voulais dans le fichier, et avec FSO c'est passé "comme une
lettre à la poste", comme on disait avant qu'on mette des majuscules au
nom (en France on dit "La Poste" depuis quelques années) et des
minuscules au service. Hélas, je ne me rappelle pas les détails et je
suis incapable d'en dire plus. Peut-être que 3stone saura dire ?
"Délayé" tu dis... ben je ne m'en sortais pas avec tes explication s (je manque de bases !), Donc je me suis reportée au didacticiel http://warin.developpez.com/access/fichiers/#LI-B-2, et après avoir tâtonné par mal, j'ai fini par m'en sortir en utilisant : Dim a As Object Set a = oFSO.CreateTextFile("Chemin de destinationNomFichier.txt, True) a.WriteLine sTmp ' sTmp étant le résultat de l'exploration de mes répertoires... a.Close
... me permettant de créer directement le fichier là où je voula is qu'il soit et d'y écrire ce que j'avais à y écrire...
Merci quand même et bonne journée, Sonia.
C'est aussi une possibilité, mais c'est dommage de charger une ressou rce supplémentaire (FileSystemObject), alors que VBA s'en sort très bie n.
Le début de ma première réponse : ____ Open "nomfichier.txt" For Output As #1
While Not TraitementTermine Print #1, strLigne Wend
Close #1 ___
Bien sûr, à la place de TraitementTermine, il faut mettre la condit ion qui va bien. Et strLigne est la ligne à écrire dans le fichier. Si on veut écrire à la suite dans un fichier existant, on remplace For Ou tput par For Append.
La suite, c'était juste pour répondre au premier degré à la que stion posée.
Alors puisque l'exemple proposé en FSO n'écrit qu'une ligne :
Open "nomfichier.txt" For Output As #1 Print #1, strLigne Close #1
Ah ça me revient : il m'est arrivé, une fois, de faire appel à FSO, parce qu'avec la syntaxe VB que j'indique ci-dessus, je n'obtenais pas ce que je voulais dans le fichier, et avec FSO c'est passé "comme une lettre à la poste", comme on disait avant qu'on mette des majuscules au nom (en France on dit "La Poste" depuis quelques années) et des minuscules au service. Hélas, je ne me rappelle pas les détails et je suis incapable d'en dire plus. Peut-être que 3stone saura dire ?