Mise en forme d'un fichier importé
Bonsoir tout le monde
j'ai un petit probleme a resoudre, ca a pourtant pas l'air compliqué mais je seche,
j'ai un fichier texte a importer dans excel, pour ca pas de probleme mais c'est apres pour la mise en forme, je joint les fichiers pour expliquer.
https://www.excel-pratique.com/~files/doc/AyHipessai.xls
https://www.excel-pratique.com/~files/doc/In9ztessai.txt
j'espers que vous voudrez bien m'aider
(il y a de petite difference dans les terme et numero mais n'y faites pas attention)
cordialement
Bonjour,
une precision, en fait en final ce que je voudrais récuperer sur chaque ligne, c'est ça:
lundi 26 août 2008********032548796523487912*******CP006*******D@@D*****ff*****qq
cordialement
Salut le forum
Maguetlolo, regarde si cette macro pourrait convenir.
La macro pourrait être améliorée.
Chemin à adapter dans Open "c:\facture\data.txt" For Input As #1
Sub OuvertureFichier()
Dim Val_Ligne As String
Dim Ligne As Integer
Dim I As Integer
Dim Texte() As String
Dim MaDate As String
On Error GoTo Ferme
Open "c:\facture\data.txt" For Input As #1
Ligne = 0
Cells.ClearContents
Do While Not EOF(1)
Line Input #1, Val_Ligne
If Len(Val_Ligne) = 0 Then GoTo Suite:
Texte = Split(Val_Ligne)
If UBound(Texte) > 30 Then GoTo Suite:
If Texte(0) = "---" Then
MaDate = ""
For I = 1 To 4
MaDate = MaDate & Texte(I) & " "
Next I
Else
Range("A1").Offset(Ligne, 0).Value = MaDate
For I = 0 To UBound(Texte)
Range("A1").Offset(Ligne, I + 1).Value = Texte(I)
Next I
End If
Ligne = Ligne + 1
Suite:
Loop
Cells.Columns.AutoFit
Ferme:
Close #1
End SubMytå
bonjour myta, bonjour le forum.
merci pour la macro, c exactement ca.
cependant, anomalie:
le numéro apres "article" doit être mis en format texte car la ca me mets un "2,31752E+17" au lieu de "231752400604798473" en colonne L. mais pas grave puisque j'ai le numéro deux fois et que l'autre est bien noté;
par contre il me manque le texte qui est a la ligne (aa,bb) et qu'il faudrais mettre a la suite de la ligne du dessus.
c'etais un de mes probleme car quand j'exportais en coupant, je coupais les deux lignes (attention, j'ai mis aa,bb... car données confidentielles mais c'est un texte qui peut être assez long) mais il faudrais juste me le mettre au bout de la ligne du dessus (en le convertissant avec un separatuer "virgule" mais ca je peut le faire)
cordialement
Re le forum
Maguetlolo, tu as mon e-mail en MP pour joindre un fichier texte complet.
Mytå
Re le forum
Chemin à adapter dans Open "c:\facture\data.txt" For Input As #1
Correction de l'affichage pour un format Texte
Sub OuvertureFichier()
Dim Val_Ligne As String
Dim Ligne As Integer
Dim I As Integer
Dim Texte() As String
Dim MaDate As String
Dim Cellule As Range
'On Error GoTo Ferme
Open "c:\facture\data.txt" For Input As #1
Ligne = 0
Cells.Delete
Cells.NumberFormat = "@"
Do While Not EOF(1)
Line Input #1, Val_Ligne
If Len(Val_Ligne) = 0 Then GoTo Suite:
Texte = Split(Val_Ligne)
If UBound(Texte) > 30 Then
Range("A1").Offset(Ligne - 1, 22).Value = Join(Texte)
GoTo Suite:
End If
If Texte(0) = "---" Then
MaDate = ""
For I = 1 To 4
MaDate = MaDate & Texte(I) & " "
Next I
Else
Range("A1").Offset(Ligne, 0).Value = MaDate
For I = 0 To UBound(Texte)
Range("A1").Offset(Ligne, I + 1).Value = Texte(I)
Next I
End If
Ligne = Ligne + 1
Suite:
Loop
Cells.Columns.AutoFit
For Each Cellule In ActiveSheet.UsedRange
Cellule = Application.WorksheetFunction.Trim(Cellule)
Next
Ferme:
Close #1
End SubMytå
re;
le top, un grand merci,
sans faire de grands discours, un seul mot : Bravo
et cela vaut pour tout ceux qui prennent de leur temps pour aider les autres sur ce site.
Cordialement