A voir également:
- Fusionner txt
- Comment fusionner des pdf sans logiciel - Guide
- Fusionner mp3 - Télécharger - Audio & Musique
- Fusionner deux cellules excel - Guide
- Fusionner deux tableaux excel - Guide
- Fusionner calendrier outlook et gmail - Guide
5 réponses
Voilà.
A copier dans un module :
A copier dans un module :
Option Explicit Sub Copier_Plusieurs_Fichiers_Txt() Dim NomFich, Wbk As Workbook, i As Integer, mavar As Variant, DL_Sh1 As Long, DL As Long Application.ScreenUpdating = False Set Wbk = ThisWorkbook NomFich = Application.GetOpenFilename(FileFilter:="Fichier texte(*.txt),*.txt", Title:="Sélectionner les fichiers", ButtonText:=mavar, MultiSelect:=True) If IsArray(NomFich) Then For i = LBound(NomFich, 1) To UBound(NomFich, 1) If NomFich(i) <> "Faux" Then 'ouverture fichiers txt Workbooks.OpenText Filename:=NomFich(i), Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, Semicolon:=True, DecimalSeparator:="." DoEvents 'traitement With Wbk Sheets(1).Copy After:=.Sheets(.Sheets.Count) DoEvents If WorksheetFunction.CountA(.Sheets(1).Columns(1)) = 0 Then DL_Sh1 = 1 Else DL_Sh1 = .Sheets(1).Columns(1).Find("*", , , , , xlPrevious).Row End If DL = .Sheets(.Sheets.Count).Columns(1).Find("*", , , , , xlPrevious).Row .Sheets(.Sheets.Count).Range("A1:Z" & DL).Copy .Sheets(1).Range("A" & DL_Sh1) Application.DisplayAlerts = False .Sheets(.Sheets.Count).Delete Application.DisplayAlerts = True End With 'fermeture fichiers txt NomFich(i) = Split(NomFich(i), "\")(UBound(Split(NomFich(i), "\"))) With Workbooks(NomFich(i)) .Close False End With DoEvents End If 'suivant Next i Else MsgBox "Aucun fichier sélectionné." End If 'FIN Sheets(1).Select End Sub
Bonjour,
1- comment sont construits les fichiers txt? Plusieurs colonnes? Structurés? etc... Décris les au mieux.
2- Montre nous le bout de code que tu as tenté qui ne fonctionne pas.
1- comment sont construits les fichiers txt? Plusieurs colonnes? Structurés? etc... Décris les au mieux.
2- Montre nous le bout de code que tu as tenté qui ne fonctionne pas.
Merci de répondre.
Les fichiers txt sont destructurés a la base sont des fichiers pdf mais qu'un entreprise envois également en txt, mais c'est pas beau a voir. Malheuresement c'est des données confidentielles je ne peux pas faire voir.
Désolé c'est pas chez moi la suis à l'entreprise je vais essayé avec BO
Les fichiers txt sont destructurés a la base sont des fichiers pdf mais qu'un entreprise envois également en txt, mais c'est pas beau a voir. Malheuresement c'est des données confidentielles je ne peux pas faire voir.
Désolé c'est pas chez moi la suis à l'entreprise je vais essayé avec BO
Bonjour,
Essayez cette procédure sur 1 fichier txt et dites moi le résultat :
1- ouvrir un nouveau classeur Excel
2- Alt+F11
3- Insertion/Module
4- copier/coller ce code dans un module
5- fermer la fenêtre VBA
6- Taper Alt + F8
7- Choisir : Copier_1_Fichier_Txt
8- Cliquer sur Exécuter
9- sélectionner 1 fichier txt
10- revenir me dire ce qu'il en est.
Essayez cette procédure sur 1 fichier txt et dites moi le résultat :
1- ouvrir un nouveau classeur Excel
2- Alt+F11
3- Insertion/Module
4- copier/coller ce code dans un module
Sub Copier_1_Fichier_Txt() Dim NomFich, Wbk As Workbook Set Wbk = ThisWorkbook NomFich = Application.GetOpenFilename _ (FileFilter:="Fichier texte(*.txt),*.txt", Title:="Sélectionner le fichier") If NomFich = False Then MsgBox "Aucun fichier sélectionné." Exit Sub End If Workbooks.OpenText Filename:=NomFich, Origin:=xlWindows, _ StartRow:=1, DataType:=xlDelimited, Semicolon:=True, DecimalSeparator:="." DoEvents With Wbk Sheets(1).Copy After:=.Sheets(.Sheets.Count) DoEvents End With NomFich = Split(NomFich, "\")(UBound(Split(NomFich, "\"))) With Workbooks(NomFich) .Close False End With DoEvents End Sub
5- fermer la fenêtre VBA
6- Taper Alt + F8
7- Choisir : Copier_1_Fichier_Txt
8- Cliquer sur Exécuter
9- sélectionner 1 fichier txt
10- revenir me dire ce qu'il en est.
mais c'est pas encore tres déstructurés
Faut m'expliquer clairement ce qu'il convient de faire pour les "structurer"...
Sinon, en attendant, essaye ceci avec 3-4 fichiers txt :
Faut m'expliquer clairement ce qu'il convient de faire pour les "structurer"...
Sinon, en attendant, essaye ceci avec 3-4 fichiers txt :
Sub Copier_Plusieurs_Fichiers_Txt() Dim NomFich, Wbk As Workbook, i As Integer, mavar As Variant, DL_Sh1 As Long, DL As Long Set Wbk = ThisWorkbook NomFich = Application.GetOpenFilename(FileFilter:="Fichier texte(*.txt),*.txt", Title:="Sélectionner les fichiers", ButtonText:=mavar, MultiSelect:=True) If IsArray(NomFich) Then For i = LBound(NomFich, 1) To UBound(NomFich, 1) If NomFich(i) <> "Faux" Then Workbooks.OpenText Filename:=NomFich(i), Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, Semicolon:=True, DecimalSeparator:="." DoEvents With Wbk Sheets(1).Copy After:=.Sheets(.Sheets.Count) DoEvents If WorksheetFunction.CountA(.Sheets(1).Columns(1)) = 0 Then DL_Sh1 = 1 Else DL_Sh1 = .Sheets(1).Columns(1).Find("*", , , , , xlPrevious).Row End If DL = .Sheets(.Sheets.Count).Columns(1).Find("*", , , , , xlPrevious).Row .Sheets(.Sheets.Count).Range("A1:Z" & DL).Copy .Sheets(1).Range("A" & DL_Sh1) Application.DisplayAlerts = False .Sheets(.Sheets.Count).Delete Application.DisplayAlerts = True End With NomFich(i) = Split(NomFich(i), "\")(UBound(Split(NomFich(i), "\"))) With Workbooks(NomFich(i)) .Close False End With DoEvents End If Next i Else MsgBox "Aucun fichier sélectionné." End If End Sub
Je te prépare une nouvelle mouture avec deux trois améliorations, dont la sélection de la feuil1 en fin de macro...
Dans 5 minutes.
--
Dans 5 minutes.
--
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tout d'abord, voici un nouveau fichier qui te permet de ne pas recopier systématiquement les entêtes :
https://www.cjoint.com/c/FDhmBtJpNwE
Ensuite, que souhaites tu faire?
Ne garder que les lignes dont la colonne H se termine par 333?
Autre chose?
N'hésite pas...
https://www.cjoint.com/c/FDhmBtJpNwE
Ensuite, que souhaites tu faire?
Ne garder que les lignes dont la colonne H se termine par 333?
Autre chose?
N'hésite pas...
Si c'est résolu, on peut passer à ton autre souci.