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 !
Cela fait plusieurs jour que j'embête tout le monde avec cette macro, voici ce que je voudrais modifier :
Cette macro marche très lorsqu'il s'agit consolider de fichier xls, mais lorsque j'essaie de consolider des fichier txt qui se trouve dans le même répertoire ci-dessous (voir macro) et qui sont pas delimité en "tab" mais en "|" cela ne fonctionne pas. Comment puis-je rendre les fichier txt "clean" afin de les importer tous dans ma feuille1 de mon fichier "Consolider fichiers.xls".
En annexe fichier txt exemple.
Sub Consolidation_old_V_4()
Dim Temp As String
Dim Ligne As Long, Ligne2 As Long
Temp = Dir("H:\David Jones\FS10n\4.7" & "\*.txt")
Application.DisplayAlerts = False
Do While Temp <> ""
If Temp <> "Consolider fichiers.xls" Then
Workbooks.Open "H:\David Jones\FS10n\4.7" & "\" & Temp
Ligne2 = Workbooks(Temp).Sheets(1).Range("A1").CurrentRegion.Rows.Count
Workbooks(Temp).Sheets(1).Range("A1").CurrentRegion.Copy
Workbooks("Consolider fichiers.xls").Sheets(1).Activate
Ligne = Sheets(1).Range("A65536").End(xlUp).Row
Range("B" & CStr(Ligne)).Select
ActiveSheet.Paste
Range("A" & CStr(Ligne), "A" & Ligne + Ligne2 - 1).Value = Temp
Workbooks(Temp).Close
End If
Temp = Dir
Loop
Range("A1").Select
Application.DisplayAlerts = True
End Sub
J'ai essayer et il me met un message d'erreur de compil ?
Sub Consolidation_old_txt_V_4()
Dim Temp As String
Dim Ligne As Long, Ligne2 As Long
Temp = Dir("H:\David Jones\FS10n\4.7" & "\*.txt")
Application.DisplayAlerts = False
Do While Temp <> ""
If Temp <> "Consolider fichiers.xls" Then
Workbooks.OpenText Filename"H:\David Jones\FS10n\4.7" & "\" & Temp, Origin:=xlWindows, StartRow _
:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False _
, Space:=False, Other:=True, OtherChar:="|", FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True
Workbooks(Temp).Sheets(1).Range("A1").CurrentRegio n.Copy
Workbooks("Consolider fichiers.xls").Sheets(1).Activate
Ligne = Sheets(1).Range("A65536").End(xlUp).Row
Range("B" & CStr(Ligne)).Select
ActiveSheet.Paste
Range("A" & CStr(Ligne), "A" & Ligne + Ligne2 - 1).Value = Temp
Workbooks(Temp).Close
End If
Temp = Dir
Loop
Range("A1").Select
Application.DisplayAlerts = True
End Sub
Bonjour,
Il me semble que :
Temp = Dir("H:\David Jones\FS10n\4.7" & "\*.txt")
et
If Temp <> "Consolider fichiers.xls"
ne vont pas ensembles
Cordialement
Re : Consolidation fichier txt. coder erreur compil
Bonjour,
Oui je sais, c'est parcque je veux ajouter du TXT dans du XLS ? Pourtant j'ai essayer avec un fichier txt propre c'est à dire avec un fichier TAB delimited en : " et cela marche mais mais lors que le fichier txt n'est pas clean cela ne marche pas. Voir fichier en annexe que je veux importer..
Merci pour votre aide.
soleil11🙂
ub Consolidation_TXT_old_V_4()
Dim Temp As String
Dim Ligne As Long, Ligne2 As Long
Temp = Dir("H:\David Jones\FS10n\4.7" & "\*.txt")
Application.DisplayAlerts = False
Do While Temp <> ""
If Temp <> "Consolider fichiers_TXT.xls" Then Workbooks.OpenText Filename"H:\David Jones\FS10n\4.7" & "\" & Temp, Origin:=xlWindows, StartRow _
:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False _
, Space:=False, Other:=True, OtherChar:="|", FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True
Ligne2 = Workbooks(Temp).Sheets(1).Range("A1").CurrentRegion.Rows.Count
Workbooks(Temp).Sheets(1).Range("A1").CurrentRegion.Copy
Workbooks("Consolider fichiers_TXT.xls").Sheets(1).Activate
Ligne = Sheets(1).Range("A65536").End(xlUp).Row
Range("B" & CStr(Ligne)).Select
ActiveSheet.Paste
Range("A" & CStr(Ligne), "A" & Ligne + Ligne2 - 1).Value = Temp
Workbooks(Temp).Close
End If
Temp = Dir
Loop
Range("A1").Select
Application.DisplayAlerts = True
Bonjour,
Il me semble que :
Temp = Dir("H:\David Jones\FS10n\4.7" & "\*.txt")
et
If Temp <> "Consolider fichiers.xls"
ne vont pas ensembles
Cordialement
Moi je ne peux pas ouvrir les zip, alors je ne sais pas à quoi ressemble ton fichier texte. Sur le principe le code devrait fonctionner, l'erreur de compil peut venir du fait que sur chaque ligne se terminant par "_" il faut un espace après.
Ensuite je supprimerais les lignes non-valide:
With Worksheets("ABH0000017364").Range("A1:A65000")
Set c = .Find("", LookIn:=xlValues)
If Not c Is Nothing Then
Do
c.EntireRow.Cells.Delete Shift = xlUp
Set c = .FindNext
Loop While Not c Is Nothing
End If
End With
Cette procédure est à répéter pour chaque caractéres différents de "|" et présent dans la colonne A
Puis suppression des colonnes A; C; E; G; I; K; M;
Après tout ça vous aurez un fichier TXT présentable pour votre traitement.
(Je pense qu'il y a plus simple. Avis aux VBistes)
Cordialement
J'ai essayé d'insérer un espace et cela ne marche pas. J'ai insérer le fichier.xls en annexe et le fichier.txt en format "Zip" de nouveau. La macro est dans le module du fichier.xls peut-être que cela vous aidera à corriger mes erreurs de code.
Moi je ne peux pas ouvrir les zip, alors je ne sais pas à quoi ressemble ton fichier texte. Sur le principe le code devrait fonctionner, l'erreur de compil peut venir du fait que sur chaque ligne se terminant par "_" il faut un espace après.
Cela marche mieux, mais il ajoute que les deux premières lignes de mon fichier txt. et je voudrait qui l'ajoute tous les fichiers txt d'un même répertoir avec un format claire sans "|" "-------".
Je vais essayer de résumer la situation, je veux ajouter tous les fichier.txt existant dans un même répertoire H:... et les consolider/cumulé dans la feuille 1 de mon classeur "Consolider fichiers_TXT.xls". Apparement ce code fonctionne bien lorsque l'on veut ajourter des fichiers.xls dans un fichier de consolidation xls en feuille 1 du fichier "Consolider fichiers_TXT.xls".
Mon problème est lorsque je veux ajouter un fichier.txt qui n'est parfaitement délimiter en tab "" (separateur de colomne). Lorsqu'il est délimiter dans un format : ----------- ou ¦¦¦¦ cela ne fonctionne pas. L'idée serait de nettoyer les fichiers txt lorsque que la macro est lancée. Peut-être que cela n'est pas possible.
Les fichiers doivent être placer l'un après l'autre avec le nom en colomne A selon l'ordre d'importation du répertoir cible en feuille 1.
Colomne A Colomne B Colomne C Colomne D
Nom fichier1 détail fichier txt détail fichier txt détail fichier txt
Nom fichier1 détail fichier txt détail fichier txt détail fichier txt
Soleil11, avez vous essayé ma proposition?
Il semble que dans le fichier TXT à "néttoyer" il y est plus que les deux premières lignes à supprimer.
Il est vrai que ma méthode n'est certainement pas la plus rapide, mais est peut-être un "début de prémice de commencement d'idée de piste" 😀
Cordialement
Je vous donne le résultat de mes recherches. Il est évident que l'on peut nettement améliorer le code, mais ça a le mérite d'exister.
Pour le traitement par lot il faut attendre un barbatruc...
En espérant que ce fichier pourra être utile... Je vais faire dormir mes yeux qui en ont bien besoin.
Cordialement
- 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