Code pour explorer fichier le suns àla suite des autres
loops02
Messages postés9Date d'inscriptionmercredi 16 novembre 2005StatutMembreDernière intervention24 novembre 2005
-
16 nov. 2005 à 11:37
jpleroisse
Messages postés1788Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention11 mars 2006
-
17 nov. 2005 à 10:49
Bonjour à tous,
je voudrais développé un petit script mais je ne sais pas du tout par quoi commencer.
Plusieurs fichiers sont stockés dans un repertoire et je voudrais les
ouvrir les uns à la suite des autres (une fois ouverts ils seront
fermés) jusqu'à ce tous fichiers du repertoire aient été ouverts et
fermés une fois.
yohan_titi
Messages postés37Date d'inscriptionlundi 15 mars 2004StatutMembreDernière intervention 6 décembre 2006 16 nov. 2005 à 12:14
J'ai eu besoin récemment de faire la meme chose. J'ai trouvé sur le site ce qu'il fallait que j'ai un peu adapté par rapport à ce que je devais faire. Le code ci-dessous :
Private Sub Bouton_Click()
Dim fso As New Scripting.FileSystemObject
Dim Dossier As Scripting.Folder
Dim SousDossier As Scripting.Folder
Set Dossier = fso.GetFolder("Le chemin du répertoire à parcourir")
For Each SousDossier In Dossier.SubFolders
Call SearchFile(SousDossier)
Next
End Sub
Private Sub SearchFile(ByVal StartPath As String)
Dim Search As String
Dim Filename As String
' Assure toi qu'il y est bien une barre oblique "" à la fin de StartPath
Search = Dir$(StartPath & "" & "*.txt")
If Search <> "" Then
Do
If (Search <> "." And Search <> "..") Then
' Chemin d'accès complet du fichier trouver
Filename = StartPath & "" & Search
' S'assurez que c'est bien un fichier(pas obligatoire)
If (GetAttr(Filename) And vbDirectory) <> vbDirectory Then
' Crée toi une procédure ou fonction pour traiter le fichier trouver en lui passant le fichier trouver en paramètre
Call ProcédureDeTraitement(Filename)
End If
End If
Search = Dir$() ' Recherche le prochain fichier
DoEvents
Loop Until Search = "" ' Boucle tant qu'il trouve des fichiers
jpleroisse
Messages postés1788Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention11 mars 200627 16 nov. 2005 à 15:34
Bonjour,
Un exemple pour les fichiers texte.
Place sur ta Form 2 CommandButton (cmdImporter et cmdSauvegarder), un TextBox (propriété Multiligne à True) et une ListBox.
Le bouton cmdImporter rempli la ListBox avec les fichiers texte du
répertoire que tu as choisi(ici dans l'exemple C:\Mes documents).
En cliquant sur le nom d'un fichier dans la ListBox, le TextBox charge
les données, que tu peux visionner, modifier etc..., ensuite le bouton
cmdEnregistrer sauve les données du TextBox.
Option Explicit
Private Sub cmdImporter_Click()
Dim MyName
MyName = Dir("C:\Mes documents\*.txt*", vbNormal)
While MyName <> ""
List1.AddItem MyName
MyName = Dir
Wend
End Sub
Private Sub List1_Click()
Dim texte, crlf, tout, NomChemin, NomFichier, NomRep
crlf = Chr(13) + Chr(10)
NomChemin = "C:"
NomRep = "Mes documents"
NomFichier = List1.Text
Open NomChemin + NomRep + NomFichier For Input As #1
On Error Resume Next
Line Input #1, texte
tout = texte
If Len(tout) <> 0 Then
While Not EOF(1)
Line Input #1, texte
tout = tout + crlf + texte
Wend
End If
Text1.Text = tout
Close #1
End Sub
Private Sub cmdEnregistrer_Click()
Open "C:\Mes documents" & List1.Text For Output As #1
Print #1, Text1.Text
Close #1
Text1.Text = ""
End Sub
jpleroisse
Si une réponse vous convient, cliquez Réponse Acceptée.
loops02
Messages postés9Date d'inscriptionmercredi 16 novembre 2005StatutMembreDernière intervention24 novembre 2005 17 nov. 2005 à 07:25
merci pour votre aide mais j'ai un nouveau souci (message s'adressant à jpleroisse).
Lorsque j'execute le script en mode debogage, arrivant à la 6ème ligne
"List1.AddItem MyName" j'ai un message du type "erreur d'execution 424,
objet requis". je ne vois pas d'où ça vient, j'ai selectionné toutes
les librairies dans excel et toujours rien. J'utilise Office 2000 et je
suis sur windows 2000.
loops02
Messages postés9Date d'inscriptionmercredi 16 novembre 2005StatutMembreDernière intervention24 novembre 2005 17 nov. 2005 à 09:34
je viens de lire vos scripts et j'ai l'impression que je me suis mal
expliquer ou alors que ce n'est pas possible de le faire en vba. Dejà
j'ai un problème lors de la compilation j'ai une erreur "Type défini
par l'utilisateur non defini" qui apparait lorsque je debug la ligne "Dim fso As New Scripting.FileSystemObject" du script.
Je ne sais pas d'où ça vient (J'utilise Office 2000 et Win2000).
Sinon ce que je voudrais faire est la chose suivante (c'est une macro qui s'executera en appuyant sur un bouton):
1-Ouvrir le premier fichier du dossier
2-Le fermer
3-Passer au fichier suivant du meme dossier
4-L'ouvrir
5-Le fermer etc...jusquà ce tout le dossier ait été scanné.
jpleroisse
Messages postés1788Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention11 mars 200627 17 nov. 2005 à 10:49
Bonjour,
J'avais fais le code pour VB6, en VBA sous Excel List1 devient
"ListBox1" et Text1 "TextBox1".Je vient d'essayer sous Excel et celà
fonctionne très bien.
Il n'y a aucune bibliothèque à placer.
Private Sub CommandButton1_Click()
Dim MyName
MyName = Dir("C:\Mes documents\*.txt*", vbNormal)
While MyName <> ""
ListBox1.AddItem MyName
MyName = Dir
Wend
End Sub
Private Sub ListBox1_Click()
Dim texte, crlf, tout, NomChemin, NomFichier, NomRep
crlf = Chr(13) + Chr(10)
NomChemin = "C:"
NomRep = "Mes documents"
NomFichier = ListBox1.Text
Open NomChemin + NomRep + NomFichier For Input As #1
On Error Resume Next
Line Input #1, texte
tout = texte
If Len(tout) <> 0 Then
While Not EOF(1)
Line Input #1, texte
tout = tout + crlf + texte
Wend
End If
TextBox1.Text = tout
Close #1
End Sub
jpleroisse
Si une réponse vous convient, cliquez Réponse Acceptée.