Comment faire une liste de fichier sous ecxel

Résolu
morvion Messages postés 17 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 18 octobre 2010 - 28 mars 2007 à 21:23
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 29 mars 2007 à 21:10
Bonjour

J'aimerais faire une liste de fichier contenu dans un dossier et en faire un fichier texte

Merci de votre aide.

23 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 mars 2007 à 22:44
Là, tu vois, ... jamais moi à ce genre de jeu-là... désolé....
Un autre, peut-être ?
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 mars 2007 à 21:27
Bonsoir,

en utilisant la fonction Dir

Je te suggère de lire dans ton aide en ligne ce qu'elle peut faire (nombreux exemples d'accompagnement).

Pour en faure un fichier texte, ensuite, : A chaque fichier trouvé :===>> écriture.

Pour écrire dans un fichier texte ? Open .... for  output ou Append (à ton choix)  (aide en ligne et nombreux exemples et sources sur ce forum)...

A quel niveau serait encore ta difficulté ? S'il en reste une, viens nous l'exposer...
0
morvion Messages postés 17 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 18 octobre 2010
28 mars 2007 à 21:37
Tu aurais un exemple?
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 mars 2007 à 21:40
Oui, bien évidemment : celui même que tu trouveras dans ton aide en ligne pour lister les fichiers d'un répertoire.
L'as-tu au moins essayé ?
Si tu as ensuite une difficulté pour écrire dans un fichier texte (à raison d'un par ligne) les fichiers trouvés, on en reparle... d'accord ?
0

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

Posez votre question
morvion Messages postés 17 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 18 octobre 2010
28 mars 2007 à 21:41
tu aurais un exemple?
0
morvion Messages postés 17 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 18 octobre 2010
28 mars 2007 à 21:42
Elle se trouve ou? car j'ai juste une aide que j'arrive pas à faire marcher

dsl mais je suis mauvais
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 mars 2007 à 21:46
Il arrive que certains répondent qu'ils n'ont pas "installé" MSDN sous B6. Mais toi, tu n'as pas cette excude ... tu es sous VBA Excel et tu l'as forcément, cette aide en ligne... et tu as aussi F1...après avioir frappé le mot Dir...
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 mars 2007 à 21:47
Ry n'arrive pas à la faire marcher ?
Réinstalle vite Office, alors ....
0
morvion Messages postés 17 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 18 octobre 2010
28 mars 2007 à 22:14
En faite j'ai trouvé des trucs mais je trouve pas où écrire cette fonction?
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 mars 2007 à 22:26
Quels "trucs" as-tu trouvés, donc ?

Où l'écrire ? Ben, ... ma foi... (ta question est on ne peut plus sirprenante !) où tu le souhaites... et tu es bien seul à le savoir...


Montres-nous donc ce que tu écrirais dans l'événement click d'un bouton de commande, tiens, par exemple ...


Il faut bien que tu commences à te jeter à l'eau, non ?
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 mars 2007 à 22:28
Euh...
Je suis un peu inquiet après avoir lu ceci :
http://www.vbfrance.com/infomsg_IMPORT-LISTE-FICHIER-SOUS-ECXEL_911566.aspx

As-tu au moins commencé à te servir de VBA ?
Sais-tu ce qu'est un UserForm ? Comment on écrit une macro ?...
J'ai un présentiment, là ....
0
morvion Messages postés 17 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 18 octobre 2010
28 mars 2007 à 22:31
j'ai rien compris lol

myfile = Dir("c:Documents and Settings\sophie\Bureau\GARREAU ROLAND")

dans VBA feuille 1

mais je suis sur qu'il manque plein de truc

et oui j'ai besoin d'une formation complete
0
morvion Messages postés 17 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 18 octobre 2010
28 mars 2007 à 22:31
j'ai rien compris lol

myfile = Dir("c:Documents and Settings\sophie\Bureau\GARREAU ROLAND")

dans VBA feuille 1

mais je suis sur qu'il manque plein de truc

et oui j'ai besoin d'une formation complete
0
morvion Messages postés 17 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 18 octobre 2010
28 mars 2007 à 22:34
en fait j'ai juste fait des changement sur des truc existant enfin ... changer des repertoires quoi

donc non
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 mars 2007 à 22:39
Ce ne sont pas des "trucs" qui te manquent, morvion, mais TOUT !
Commence par :
1) par lire ton aide en ligne pour connaître le fonctionnement de VBA
2) exerce-toi à créer des petites macros, même sans but, juste pour comprendre ce qu'est une macro. Exécute-les... vois...
3) vois ce que sont les userforms, les contrôles, les événements, etc...
4) fais de tous petits projets pour t'exercer

Aide-toi, pour mieux comprendre, de l'enregistreur de macros... mets-le en route... fais 2 ou 3 gestes... enregistre... rouvre la macro écrite et regarde...

Tu ne peux certes pas avancer sous VBA si tu n'es pas déjà passé par ces petits gestes indispensables...
Il te faut bien comprendre la différence entre EXCEL tout seul et VBA pour Excel (et son utilisation)

Bonne étude
0
morvion Messages postés 17 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 18 octobre 2010
28 mars 2007 à 22:42
tu n'aurais pas un petit fichier tous fait pour ce dont j'ai besoin car c'est assez urgent et je commencerais mon étude avec ce petit dossier

merci pour tous
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
28 mars 2007 à 23:19
Salut,

tu peux aussi fouiller mes Snippets (fonctions, bouts de code). 80 % de mes snippets traitent exclusivement Excel (via VBA).
Il y en a bien une qui fera ton bonheur, et comme jmfmarques le dit, cela te fera un entrainement.

(ps : regarde le lien en rouge)

25/03/2007 - Arrêter ou redémarrer la machine
[ Voir VB6, VBA seulement]

06/03/2007 - Tester l'existance d'un répertoire
[ Voir VB6, VBA seulement]

04/03/2007 - Créer le raccourci de l'application sur le bureau
[ Voir VB6 seulement]

04/03/2007 - Lister la Police d'ecriture
[ Voir VB6 seulement]

04/03/2007 - Résolution de l'écran
[ Voir VB6, VBA seulement]

04/03/2007 - Savoir si les cellules sélectionnées (Excel) sont en gras et italiques
[ Voir VBA seulement]

04/03/2007 - Savoir si le nom d'une plage a été définie (Excel)
[ Voir VBA seulement]

04/03/2007 - Lister la Police d'ecriture
[ Voir VBA seulement]

04/03/2007 - Récupérer les infos (propriétés) d'un classeur Excel
[ Voir VBA seulement]

04/03/2007 - Fermer TOUS les classeurs Excel, avec paramètres d'enregitrement (True / False)
[ Voir VBA seulement]

04/03/2007 - Déterminer le type de la cellule Excel donnée en paramètre
[ Voir VBA seulement]

03/03/2007 - Supprimer sur place les doublons d'une colonne
[ Voir VBA seulement]

01/03/2007 - Convertit en jours / heures / minutes le temps entre 2 dates & heures
[ Voir VB6, VBA seulement]

28/02/2007 - Convertit en jours / heures / minutes le temps entre 2 dates & heures
[ Voir VB6, VBA seulement]

24/02/2007 - Arrondir un nombre à n décimal
[ Voir VB6, VBA seulement]

24/02/2007 - Ouvrir un fichier Word ou Excel, s'il est ouvert, une copie en lecture seule s'ouvre
[ Voir VB6, VBA seulement]

17/02/2007 - Effacer tous les TextBox d'un UserForm
[ Voir VBA seulement]

08/12/2006 - Identifier la position d'une colonne excel depuis son header, et vice versa
[ Voir VBA seulement]

25/11/2006 - Trier les données d'un tableau (Liste() As String)
[ Voir VB6, VBA seulement]

23/11/2006 - Protéger et Deprotéger une feuille excel
[ Voir VBA seulement]

16/11/2006 - Modifier le séparateur de décimale (options régionales et linguistiques)
[ Voir VB6 seulement]

16/11/2006 - Modifier le séparateur de décimale (options régionales et linguistiques)
[ Voir VBA seulement]

01/11/2006 - Rechercher les adresses des cellules (excel) contenant un mot clé
[ Voir VB6 seulement]

31/10/2006 - Afficher la date du jour
[ Voir VB6, VBA seulement]

31/10/2006 - Supprimer la croix d'un UserForm (VBA)
[ Voir VBA seulement]

30/10/2006 - Déterminer le handle (hwnd) d'un UserForm, en VBA
[ Voir VBA seulement]

30/10/2006 - Rechercher les adresses des cellules (excel) contenant un mot clé
[ Voir VBA seulement]

20/10/2006 - Calculer le numero de semaine d'une date
[ Voir VB6, VBA seulement]

19/10/2006 - Determiner si une année est bissextile
[ Voir VB6, VBA seulement]

17/10/2006 - Calcul d'un montant Hors Taxes et Toutes Taxes Comprises
[ Voir VB6, VBA seulement]

15/10/2006 - Savoir si la date déterminée est un jour de Week-End
[ Voir VB6, VBA seulement]

13/10/2006 - Renommer une feuille d'un classeur excel
[ Voir VB6, VBA seulement]

11/10/2006 - Compter le nombre d'occurrence d'une chaine dans une autre
[ Voir VB6, VBA seulement]

07/09/2006 - Remplacement de doublon dans une chaine
[ Voir VB6, VBA seulement]

27/08/2006 - Lister tous les fichiers d'un repertoire
[ Voir VBA seulement]

26/08/2006 - Rechercher la première ligne ou colonne vide, à partir d'une cellule, avec paramètres
[ Voir VBA seulement]

26/08/2006 - Rechercher la Ligne Vide dans Excel
[ Voir VBA seulement]

25/08/2006 - Déterminer si une plage est contenue dans une autre
[ Voir VBA seulement]

25/08/2006 - Supprimer les lignes vides d'un classeur
[ Voir VBA seulement]

24/08/2006 - Comment ouvrir un classeur Excel Vierge depuis VB6
[ Voir VBA seulement]

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
0
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
28 mars 2007 à 23:55
Salut,
Du concret pas de moi non plus mais bon ......
'CODE A METTRE DANS UN MODULE
'Liste des fichiers d'un répertoire et de ses sous répertoire
'(option pour empêcher l'examen des sous répertoires)



Sub TousLesFichiers(LeDossier As String, Idx As Long, Optional SousFldr = True)
'pour empêcher l'examen des ss/répertoires, affecter False à SousFldr
Dim fso As Object, Dossier As Object
Dim sousRep As Object, Fich As Object



  Set fso = CreateObject("Scripting.FileSystemObject")
  Set Dossier = fso.GetFolder(LeDossier)
   
  'examen du dossier courant
  For Each Fich In Dossier.Files
      Idx = Idx + 1
      'Ici on enregistre dans un fichier
      Dim MyFile
      MyFile = FreeFile
     'Ici tu choisi le chemin et le nom de ton fichier 
      Open "C:\liste fichier.txt" For Append As #MyFile
      Print #MyFile, Fich.Name
      Close #MyFile
  Next
 
  If Not SousFldr Then Exit Sub  'sans les sous dossiers
 
  'traitement récursif des sous dossiers
  For Each sousRep In Dossier.subfolders
    TousLesFichiers sousRep.Path, Idx
  Next sousRep



End Sub


Pour le test tu crée un bouton et dans le code de celui-ci tu tappe

TousLesFichiers "C:", 0, False

Bonne prog

Cordialement, Jean-Paul  
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
29 mars 2007 à 11:40
Tu es gentil, Jean-Paul...
Mais laisse-moi t'exprimer ici mon étonnement !


Morvion est très manifestement en train de "commencer à commencer" (la lecture de ce qui précède montre même qu'il n'a pas encore vraiment commencé avec VBA)
Il ne sait pas ce qu'est un module.


Tu le diriges sans sourciller vers FSO qui, en plus, n'est pas nécessaire, est une notion qu'il ne connaît pas du tout... et qui est un "tremplin" supplémentaire qui viendra alourdir bien inutilement VB ...


- tu n'hésites pas, à insérer dans ta boucle l'ouverture et la fermeture d'un fichier texte (bien maladroit... ma foi)


Alors : Morvion ne veut pas lister autre chose que les fichiers d'un répertoire et n'a donc pas besoin de récursivité (comment, d'ailleurs, penser qu'à son niveau il ait une idée de la récursivité ?...)


VB lui offre la possibilité, toute simple et toute bête, de faire ce qu'il veut avec seulement l'apprentissage de Dir et de Open... for...


Si tu veux l'aider : d'accord, mais avec ce que je viens de dire là et qui est très facile... pas avec cet étalage qui ne sert qu'à le noyer complètement, s'il te plait !
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
29 mars 2007 à 12:03
Voilà...
Si tu veux vraiment l'aider :
1) explique-lui ce qu'est une macro (il ne le sait pas encore vraiment), ce que sont les contrpoles, les événements, etc...

2) commente lui ce tout petit bout de code qui fait ce qu'il veut sans passer par des "tremplins"...

Private Sub Command1_Click()
  Open "d:\monoutil\voyons.txt" For Output As #1
   chemin = "d:"
   filtre = "*"
   fichiers = Dir(chemin & filtre)
   Do While fichiers <> ""
     Print #1, fichiers
     fichiers = Dir
   Loop
   Close #1
End Sub

Je demeure persuadé de ce que je viens de faiblir et que je n'aurais pas dû... Morvion a vraiment besoin de regarder sérieusement ce qu'est VBA et comment on s'en sert, avant de se lancer... mais bon ....
0
Rejoignez-nous