extraire des donnée de plusieurs ficiers txt

  • Initiateur de la discussion Initiateur de la discussion sylv900
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
 
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
 
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
 
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é???
 
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
 
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,
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour