Mettre le nom du TXT importer / excel macro

Résolu
Marco -  
 Marco -
Bonjour,

Je souhaite intégrer le nom du fichier .txt que j'ouvre grace a une macro.
Merci de bien vouloir m'aider.



A voir également:

20 réponses

lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
Rien compris... Explique !!
A+
0
Marco
 
LOL !!
Bonjour,
Alors dans une macro excel j'importe plusieurs fichiers .txt.
Une fois trier je n'arrive pas à les retrouvé. Le seul moyen que je vois c'est de les chercher par rapport à leur noms d'origine (.txt).

Je souhaite donc intégrer le nom des .txt dans ma macro d'importation.
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Une fois trier je n'arrive pas à les retrouvé. Les retrouver Où, sur le DD ?

Le seul moyen que je vois c'est de les chercher par rapport à leur noms d'origine (.txt).
Pour les noms c'est pas difficile suffit de les mettre dans un tableau, mais après..
Les rechercher Où ?
0
Marco
 
1ere étape: j'importe mes TXT grâce a une boucle (500 environ).2 versions différentes que par le nom . Le premier s'appelle toto1,2,3... et le deuxième tata1,2,3... mais on le même style mais au contenu dans leurs cellules différentes (valeurs).

2eme étape : je trie ce que je viens d'importer dans un autre onglet par éléments (tous communs mais avec des valeurs différentes).

Mon problème est que si il y a une valeur abhérente, je ne peux pas retrouvé si c'est un toto ou un tata ainsi que son numéro 1,2,3...

Ce nom et numéro se trouve dans le nom du TXT d'où mon voeux de vouloir importer le nom du TXT avec mes valeurs.
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Si j'ai bien compris !!
Dan la boucle qui importe les fichiers et les met dans une feuille, pourquoi pas mettre une colonne en plus avec le nom du fichier et étendre le tri à cette colonne ?
0

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

Posez votre question
Marco
 
Exactement !!
Le tri j'arriverais à le faire mais pour importer le nom du fichier je ne vois pas comment faire.
Merci de votre aide.
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Beh pour l'importer.... tu dois quand même connaître sont nom !!
0
Marco
 
Non pas forcément.Il me faut l'emplacement de tous les TXT.

Par contre pour en retrouver un facilement parmi 500 TXT ca serait plus simple que j'ai son nom dans le tri de la deuxième étape.
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Ont va pas tourner en rond indéfiniment...
Montre la macro qui importe tes 500 fichiers.
0
Marco
 
La voici. Elle fait que importer !!
Une autre tri tout.

Sub Test()

Dim Fichier As String, Chemin As String
Dim i As Long

'Répertoire contenant les fichiers
Chemin = "C:\Boulot Macro"
Fichier = Dir(Chemin & "\*.txt")

'Boucle sur les fichiers
Do While Fichier <> ""

i = Range("A65536").End(xlUp).Row + 1
ImportText Chemin & "\" & Fichier, Cells(i, 1)

Fichier = Dir
Loop
End Sub

Sub ImportText(NomFichier As Variant, Cible As Range)
Dim QT As QueryTable

Set QT = ActiveSheet.QueryTables.Add(Connection:="TEXT;" & _
NomFichier, Destination:=Cible)

With QT
'Définit les séparateur de colonnes dans le fichier txt
.TextFileOtherDelimiter = ";"
.TextFileSemicolonDelimiter = True
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.Refresh
End With
Columns("A:A").Select
Selection.Replace What:="/", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False


End Sub
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
    Do While fichier <> "" 
     
        i = Range("A65536").End(xlUp).Row + 1 
        ImportText Chemin & "\" & fichier, Cells(i, 1) 
'AJOUTER 
        Range(Cells(i, 1), Cells(i, Cells(i, 1).End(xlLeft).Columns)) = fichier 

        fichier = Dir 
    Loop


Je ne sais pas tester vu que j'ai pas toutes les indications.
tu dis.
.
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0
Marco
 
Alors si j'ajoute la ligne, il me dit erreur 1004 et ne boucle plus mes TXT
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Remplacer xlLeft par xlToLeft
0
Marco
 
Erreur d'excution type 13
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Décidemment c'est pas mon jour...
Faut pas de S à Column et faut mettre +1
La ligne complète..
Range(Cells(i, 1), Cells(i, Cells(i, 1).End(xlToLeft).Column + 1)) = Fichier
Cette fois-ci j'ai tester :-D

L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0
Marco
 
Alors ca me remplace la premiere donnée de mon TXT et ca me le remet sur la case à côté.
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Grrr... beh oui... c'est pas mon jour..(sorry)
Remplacer la ligne par...
Cells(i, Cells(i, 1).End(xlToRight).Column + 1) = Fichier


A+
0
Marco
 
Désolé mais erreur 1004
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Pourtant cette fois c'est la bonne formule..
essaye avec,
ActiveSheet.Cells(i, Cells(i, 1).End(xlToRight).Column + 1).value = Fichier
Si ça va pas..
Tu sélectionne cette ligne.
Tu tape F9 (la ligne va se colorer en brun.
Tu lance ta macro.
Dans la fenêtre Exécution (si elle n'est pas affichée tu l'ouvre (Ctrl+G)
Tu tape
Print ActiveSheet.name
Et voir si c'est bien le nom de l'onglet où tu copie tout.
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0
Marco
 
En effet c'est bien le nom de mon premier onglet
0
Marco
 
Trouvé !! Columns + 2 me convient très bien.
Merci beaucoup pour ton aide
0