extraire des donnée de plusieurs ficiers txt

sylv900

XLDnaute Occasionnel
salut à tous

j'ai quelques questions :
_comment ouvrir plusieurs fichiers txt en même temps, dans ce genre :
fichier = Application.GetOpenFilename(, , 'Ouvrir le fichier texte')
mais pour +sieurs fichiers
_ensuite j'aimerais réutiliser les noms des fichiers, comment mettre le nom d'un fichier texte dans une variable?


j'espère être clair, mon objectif est de scanner plusieur fihier textes à la recherche d'une valeur1 particulière et de remplir une feuille excel avec le nom du fichier où la valeur1 a été trouvé et une valeur2 correspondante...

voila, si ce n'est pas compréhensible n'hésitez pas à poser des questions.
d'avance un grand merci

ps : ca fait des semaine que je n'ai pas fait de macro j'était en manque...
ps2 : ne vous cassé pas à me fournir un programme entièrement fait les quelques codes qui me manque suffiront.
 

Hervé

XLDnaute Barbatruc
Bonjour sylv900, le forum


Ce type de code scanne le répertoire du fichier excel et renvoi en colonne A les noms des fichiers txt trouvés (a adapter)

Sub Bouton1_QuandClic()
Dim chemin As String
Dim nom As String
Dim ligne As Byte

ligne = 1
chemin = ThisWorkbook.Path & '\\\\\\\\'
nom = Dir(chemin & '*.TXT')


Do While nom <> ''
Cells(ligne, 1) = nom
ligne = ligne + 1
nom = Dir
Loop
End Sub

salut

Message édité par: hervé, à: 24/10/2005 15:18
 

Hellboy

XLDnaute Accro
Bonjour sylv900, Hervé

Une alternative àa la proposition a Hervé:


Option Explicit


Public Sub Variable_Fichiers()
&nbsp; &nbsp;
Dim strFichiers()&nbsp; &nbsp; &nbsp; &nbsp; As String, vrtFiles()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As String
&nbsp; &nbsp;
Dim fileToOpen&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As Variant
&nbsp; &nbsp;
Dim bytCount&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As Byte
&nbsp; &nbsp;
&nbsp; &nbsp;
ReDim Preserve strFichiers(bytCount)
&nbsp; &nbsp; vrtFiles = Application.GetOpenFilename('*.*, *.*', , 'Fichier de Plus de 255 Column', ,
True)
&nbsp; &nbsp; Application.ScreenUpdating =
False
&nbsp; &nbsp;
For Each fileToOpen In vrtFiles
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strFichiers(bytCount) = fileToOpen
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bytCount = bytCount + 1
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
ReDim Preserve strFichiers(bytCount)
&nbsp; &nbsp;
Next fileToOpen
&nbsp; &nbsp; Application.ScreenUpdating =
True
End Sub
 

sylv900

XLDnaute Occasionnel
merci Hellboy
mais malheureusement je n'arrive pas à faire tourner ton code
je prend un débogage sur la ligne
vrtFiles = Application.GetOpenFilename(\\'*.*, *.*\\', , \\'Fichier de Plus de 255
Column\\', , True)
avec 'incompatibilité de type), j'ai pourtant recopié texto ton code pour le testé???
 

Hellboy

XLDnaute Accro
re

Désolé, je ne l,avais pas fait rouler, et j'ai mal assigner un type de variable. Celle-ci. Et je modifie aussi la localisation de la ligne de commande pour le redimentionnement de la variable strFichiers.


vrtFiles()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As Variant



Option Explicit


Public Sub Variable_Fichiers()
&nbsp; &nbsp; &nbsp; &nbsp;
Dim strFichiers()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As String, vrtFiles()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As Variant
&nbsp; &nbsp; &nbsp; &nbsp;
Dim fileToOpen&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As Variant
&nbsp; &nbsp; &nbsp; &nbsp;
Dim bytCount&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As Byte
&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; vrtFiles = Application.GetOpenFilename('*.*, *.*', , 'Fichier de Plus de 255 Column', ,
True)
&nbsp; &nbsp; &nbsp; &nbsp; Application.ScreenUpdating =
False
&nbsp; &nbsp; &nbsp; &nbsp;
For Each fileToOpen In vrtFiles
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
ReDim Preserve strFichiers(bytCount)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strFichiers(bytCount) = fileToOpen
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bytCount = bytCount + 1
&nbsp; &nbsp; &nbsp; &nbsp;
Next fileToOpen
&nbsp; &nbsp; &nbsp; &nbsp; Application.ScreenUpdating =
True
End Sub
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir sylv900, Hervé, HellBoy,

Peut-être que le fichier que j'ai joint dans ce fil de discussion Lien supprimé pourrait également être utile. Il scanne l'ensemble des fichiers contenus dans le répertoire du classeur, mais aussi les sous-répertoires correspondants...

Pour l'adapter aux fichiers texte, il convient simplement de modifier la ligne :
If Right(Fichier.Name, 3) = 'xls' Then
à remplacer par :
If Right(Fichier.Name, 3) = 'txt' Then
Cordialement,
 

Hellboy

XLDnaute Accro
Bonjour a tous

J'ai rajouter quelques lignes qui permettent la gestion d'erreur.


Option Explicit

Public Sub Variable_Fichiers()
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Dim strFichiers()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As String, vrtFiles()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As Variant
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Dim fileToOpen&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As Variant
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Dim bytCount&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As Byte
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp;
On Error GoTo errorHandler
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; vrtFiles = Application.GetOpenFilename('*.*, *.*', , 'Fichier de Plus de 255 Column', ,
True)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Application.ScreenUpdating =
False
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
For Each fileToOpen In vrtFiles
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
ReDim Preserve strFichiers(bytCount)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strFichiers(bytCount) = fileToOpen
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bytCount = bytCount + 1
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Next fileToOpen
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Application.ScreenUpdating =
True
&nbsp; &nbsp;
On Error GoTo 0
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Exit Sub
errorHandler:
&nbsp; &nbsp; Application.ScreenUpdating =
True
&nbsp; &nbsp;
On Error GoTo 0
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 331
Membres
103 519
dernier inscrit
Thomas_grc11