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 Sub

Mytå

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 Sub

Mytå

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

Rechercher des sujets similaires à "mise forme fichier importe"