Regrouper fichiers txt sur xls
Résolu
746emilie
-
746emilie Messages postés 40 Date d'inscription Statut Membre Dernière intervention -
746emilie Messages postés 40 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'aimerais regrouper différents fichiers txt dans un classeur xls.
Les fichiers txt se trouveront tous dans le même dossier.
Les fichiers txt ont toujours la même structure, même nombre de lignes et de colonnes. Ils n'ont qu'un onglet. Attention, le nom de l'onglet est à importer aussi.
Dans excel, je voudrais: 1 seul classeur, une feuille par fichier texte. Le nom de l'onglet doit se retrouver sur la feuille (il peut pex écraser le contenu en A1 sur chacun des onglets).
Et il faudrait fonctionner par batch, qu'une petite macro me calcule tout ça sur tous les fichiers txt du dossier, par exemple...
C'est possible?
Merciii!
J'aimerais regrouper différents fichiers txt dans un classeur xls.
Les fichiers txt se trouveront tous dans le même dossier.
Les fichiers txt ont toujours la même structure, même nombre de lignes et de colonnes. Ils n'ont qu'un onglet. Attention, le nom de l'onglet est à importer aussi.
Dans excel, je voudrais: 1 seul classeur, une feuille par fichier texte. Le nom de l'onglet doit se retrouver sur la feuille (il peut pex écraser le contenu en A1 sur chacun des onglets).
Et il faudrait fonctionner par batch, qu'une petite macro me calcule tout ça sur tous les fichiers txt du dossier, par exemple...
C'est possible?
Merciii!
A voir également:
- Regrouper fichiers txt sur xls
- Comment ouvrir un fichier xls? - Guide
- Comment regrouper des applications sur android - Accueil - Guide Android
- Renommer des fichiers en masse - Guide
- Fichiers epub - Guide
- Comment regrouper des pdf - Guide
9 réponses
Bonjour,
Voir ceci pour importer des fichiers texte sur une feuille de calcul:
https://forums.commentcamarche.net/forum/affich-33039694-recuperation-donnees-avec-macro#p33039841
Par contre quand je lis ceci, j'ai un doute sur les fichiers texte (.txt)
Les fichiers txt ont toujours la même structure, même nombre de lignes et de colonnes. Ils n'ont qu'un onglet. Attention, le nom de l'onglet est à importer aussi.
Affaire a suivre!
Voir ceci pour importer des fichiers texte sur une feuille de calcul:
https://forums.commentcamarche.net/forum/affich-33039694-recuperation-donnees-avec-macro#p33039841
Par contre quand je lis ceci, j'ai un doute sur les fichiers texte (.txt)
Les fichiers txt ont toujours la même structure, même nombre de lignes et de colonnes. Ils n'ont qu'un onglet. Attention, le nom de l'onglet est à importer aussi.
Affaire a suivre!
Essaie ceci:
Sub Recup() Dim Fichier, feuille As String feuille = InputBox("Entrez le nom du nouvel onglet", "Onglet", "mafeuille") Fichier = Application.GetOpenFilename("Text Files (*.txt), *.txt") If Fichier <> False Then Sheets.Add.Name = feuille Worksheets(feuille).QueryTables.Add("TEXT;" & Fichier, [B1]).Refresh 'à adapter Else MsgBox "Pour importer des données dans Excel, vous devez choisir un fichier texte !" End If End Sub
INCROYABLE PIVERT!!!!
Ca marche !!!!
MERCI!
Y aurait-il moyen d'avoir un menu déroulant pour nommer la feuille quand il me le demande (entrer le nom du nouvel onglet--> menu déroulant ou bien il m'enverrait dans le dossier pour que je puisse choisir moi-même le nom du fichier txt en cliquant dessus)?
pour limiter le risque d'erreur à la retranscription
Ca marche !!!!
MERCI!
Y aurait-il moyen d'avoir un menu déroulant pour nommer la feuille quand il me le demande (entrer le nom du nouvel onglet--> menu déroulant ou bien il m'enverrait dans le dossier pour que je puisse choisir moi-même le nom du fichier txt en cliquant dessus)?
pour limiter le risque d'erreur à la retranscription
Ajouter une ComboBox dans l'UserForm avec ce code:
Option Explicit Private Sub CommandButton1_Click() Recup End Sub Sub Recup() Dim Fichier Fichier = Application.GetOpenFilename("Text Files (*.txt), *.txt") If Fichier <> False Then Sheets.Add.Name = ComboBox1.Text Worksheets(ComboBox1.Text).QueryTables.Add("TEXT;" & Fichier, [B1]).Refresh 'à adapter le cellule de reception Else MsgBox "Pour importer des données dans Excel, vous devez choisir un fichier texte!", vbExclamation, "Importer fichier texte" End If End Sub Private Sub UserForm_Initialize() 'adapter le nom des onglets ComboBox1.AddItem ("mafeuille_1") ComboBox1.AddItem ("mafeuille_2") ComboBox1.AddItem ("mafeuille_3") ComboBox1.AddItem ("mafeuille_4") ComboBox1.ListIndex = 0 End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Une autre chose me tracasse
je dois reprendre sur chaque onglet créé avec ta formule les data de F19 en F51: données de ce genre 4529/4557
puis, les convertir en 2 colonnes
ensuite, les additionner (en gardant les données séparées pour chaque onglet)
j'ai créé une feuille en dernier avec une macro MAIS je ne sais pas comment désigner des onglets qui VONT être créés mais ne sont pas encore existants !
je dois reprendre sur chaque onglet créé avec ta formule les data de F19 en F51: données de ce genre 4529/4557
puis, les convertir en 2 colonnes
ensuite, les additionner (en gardant les données séparées pour chaque onglet)
j'ai créé une feuille en dernier avec une macro MAIS je ne sais pas comment désigner des onglets qui VONT être créés mais ne sont pas encore existants !
On va procéder par ordre. Voici un fichier pour importer des fichiers textes dans un classeur.
http://www.cjoint.com/c/FAtnXusWBtQ
Ensuite si cela est résolu, tu fais un nouveau post avec ta nouvelle demande.
http://www.cjoint.com/c/FAtnXusWBtQ
Ensuite si cela est résolu, tu fais un nouveau post avec ta nouvelle demande.
Je comprends mieux maintenant!
Voilà le nouveau code:
Tu peux toujours garder la combobox pour naviguer dans tes onglets. si cela t’intéresse, je te donnerai le code
Voilà le nouveau code:
Option Explicit Dim onglet As Boolean Dim Fichier Dim Tableau() As String Dim pos As Integer Dim nomfichier As String Sub Recup_import() 'on recherche le fichier texte Fichier = Application.GetOpenFilename("Text Files (*.txt), *.txt") If Fichier <> False Then 'on récupere le nom du fichier texte sans son extension nomfichier = Mid(Fichier, InStrRev(Fichier, "\") + 1) pos = InStr(1, nomfichier, ".", 1) nomfichier = Left(nomfichier, pos - 1) 'on vérifie si il n'y a pas d'onglet portant le même nom onglet = True Doublons If onglet = False Then Exit Sub 'on ajoute un onglet Sheets.Add.Move After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = nomfichier 'on met le texte sur la feuille Worksheets(nomfichier).QueryTables.Add("TEXT;" & Fichier, [B1]).Refresh 'à adapter le cellule de reception Range("A1").Value = nomfichier Else MsgBox "Pour importer des données dans Excel, vous devez choisir un fichier texte!", vbExclamation, "Importer fichier texte" End If Sheets("Sommaire").Select Range("A" & Rows.Count).End(xlUp).Offset(1, 0) = nomfichier End Sub Private Sub CommandButton2_Click() Recup_import End Sub 'http://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-F Private Sub UserForm_Initialize() Dim j As Integer 'Récupère les données de la colonne A... For j = 1 To Range("A65536").End(xlUp).Row ComboBox1 = Range("A" & j) '...et filtre les doublons If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem Range("A" & j) Next j ComboBox1.ListIndex = 0 End Sub 'empecher de renommer onglet du même nom Private Sub Doublons() Dim ctr For ctr = 1 To Sheets.Count If Sheets(ctr).Name = nomfichier Then MsgBox "Un onglet porte déjà ce nom!", vbExclamation, "Ajouter onglet" onglet = False End If Next End Sub
Tu peux toujours garder la combobox pour naviguer dans tes onglets. si cela t’intéresse, je te donnerai le code
Voilà:
http://www.cjoint.com/c/FAvjNNWvQbQ
http://www.cjoint.com/c/FAvjNNWvQbQ
Voilà un exemple avec les fichiers texte dans le même dossier que le classeur. Si le dossier des fichiers texte est indépendant du classeur, il faudra changer le chemin:
http://www.cjoint.com/c/FAvlwf26MCQ
Je ne peux pas travailler sur ton classeur car je ne suis pas dans ton environnement. C'est à toi d'adapter mon exemple à ton environnement, les chemins ne sont pas les mêmes.
@+ Le Pivert
http://www.cjoint.com/c/FAvlwf26MCQ
Je ne peux pas travailler sur ton classeur car je ne suis pas dans ton environnement. C'est à toi d'adapter mon exemple à ton environnement, les chemins ne sont pas les mêmes.
@+ Le Pivert
donc on ne le retrouve pas dans le fichier en lui même
j'ai trouvé cette formule , elle marche pour mettre le nom de l'onglet en A1, ce que je ferai dans le fichier final
=STXT(CELLULE("nomfichier");TROUVE("]";CELLULE("nomfichier"))+1;32)
Pour le reste, je nage :)