Bonjour,

Je cherche à ouvrir dans Excel, de manière automatisée, un fichier TXT ayant 30 colonnes, chacune des colonnes ayant un nb de caractères spécifique. Bien entendu je connais le nombre de caractères alloués à chaque colonne.

Pourriez-vous me guider sur la macro à effectuer afin d'y arriver ?

Je sais pour l'instant réaliser l'inverse (de excel à texte avec nb carac délimités)
Dans cet exemple j'avais 55 colonnes :


Voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Sub XlsTOTxt()
 
Dim i As Long
 
Open "C:\Users\Julien Arnault\Desktop\texte.txt" For Output As #1
 
 
Sheets("1").Select
For i = 2 To Range("A:A").End(xlDown).Row
 
                Print #1, Left(Range("A" & i).Value, 10) & Space(10 - Len(Left(Range("A" & i).Value, 10))) & Left(Range("B" & i).Value, 14) & Space(14 - Len(Left(Range("B" & i).Value, 14))) & Left(Range("C" & i).Value, 13) & Space(13 - Len(Left(Range("C" & i).Value, 13))) & _
                    Left(Range("D" & i).Value, 9) & Space(9 - Len(Left(Range("D" & i).Value, 9))) & Left(Range("E" & i).Value, 6) & Space(6 - Len(Left(Range("E" & i).Value, 6))) & Left(Range("F" & i).Value, 30) & Space(30 - Len(Left(Range("F" & i).Value, 30))) & _
                    Left(Range("G" & i).Value, 4) & Space(4 - Len(Left(Range("G" & i).Value, 4))) & Left(Range("H" & i).Value, 1) & Space(1 - Len(Left(Range("H" & i).Value, 1))) & Left(Range("I" & i).Value, 30) & Space(30 - Len(Left(Range("I" & i).Value, 30))) & _
                    Left(Range("J" & i).Value, 20) & Space(20 - Len(Left(Range("J" & i).Value, 20))) & Left(Range("K" & i).Value, 10) & Space(10 - Len(Left(Range("K" & i).Value, 10))) & Left(Range("L" & i).Value, 13) & Space(13 - Len(Left(Range("L" & i).Value, 13))) & _
                    Left(Range("M" & i).Value, 1) & Space(1 - Len(Left(Range("M" & i).Value, 1))) & Left(Range("N" & i).Value, 2) & Space(2 - Len(Left(Range("N" & i).Value, 2))) & Left(Range("O" & i).Value, 1) & Space(1 - Len(Left(Range("O" & i).Value, 1))) & _
                    Left(Range("P" & i).Value, 1) & Space(1 - Len(Left(Range("P" & i).Value, 1))) & Left(Range("Q" & i).Value, 10) & Space(10 - Len(Left(Range("Q" & i).Value, 10))) & Left(Range("R" & i).Value, 10) & Space(10 - Len(Left(Range("R" & i).Value, 10))) & _
                    Left(Range("S" & i).Value, 1) & Space(1 - Len(Left(Range("S" & i).Value, 1))) & Left(Range("T" & i).Value, 10) & Space(10 - Len(Left(Range("T" & i).Value, 10))) & Left(Range("U" & i).Value, 10) & Space(10 - Len(Left(Range("U" & i).Value, 10))) & _
                    Left(Range("V" & i).Value, 10) & Space(10 - Len(Left(Range("V" & i).Value, 10))) & Left(Range("W" & i).Value, 10) & Space(10 - Len(Left(Range("W" & i).Value, 10))) & Left(Range("X" & i).Value, 13) & Space(13 - Len(Left(Range("X" & i).Value, 13))) & _
                    Left(Range("Y" & i).Value, 10) & Space(10 - Len(Left(Range("Y" & i).Value, 10))) & Left(Range("Z" & i).Value, 10) & Space(10 - Len(Left(Range("Z" & i).Value, 10))) & Left(Range("AA" & i).Value, 10) & Space(10 - Len(Left(Range("AA" & i).Value, 10))) & _
                    Left(Range("AB" & i).Value, 10) & Space(10 - Len(Left(Range("AB" & i).Value, 10))) & Left(Range("AC" & i).Value, 3) & Space(3 - Len(Left(Range("AC" & i).Value, 3))) & Left(Range("AD" & i).Value, 10) & Space(10 - Len(Left(Range("AD" & i).Value, 10))) & _
                    Left(Range("AE" & i).Value, 13) & Space(13 - Len(Left(Range("AE" & i).Value, 13))) & Left(Range("AF" & i).Value, 8) & Space(8 - Len(Left(Range("AF" & i).Value, 8))) & Left(Range("AG" & i).Value, 13) & Space(13 - Len(Left(Range("AG" & i).Value, 13))) & _
                    Left(Range("AH" & i).Value, 3) & Space(3 - Len(Left(Range("AH" & i).Value, 3))) & Left(Range("AI" & i).Value, 3) & Space(3 - Len(Left(Range("AI" & i).Value, 3))) & Left(Range("AJ" & i).Value, 1) & Space(1 - Len(Left(Range("AJ" & i).Value, 1))) & _
                    Left(Range("AK" & i).Value, 1) & Space(1 - Len(Left(Range("AK" & i).Value, 1))) & Left(Range("AL" & i).Value, 1) & Space(1 - Len(Left(Range("AL" & i).Value, 1))) & Left(Range("AM" & i).Value, 1) & Space(1 - Len(Left(Range("AM" & i).Value, 1))) & _
                    Left(Range("AN" & i).Value, 10) & Space(10 - Len(Left(Range("AN" & i).Value, 10))) & Left(Range("AO" & i).Value, 10) & Space(10 - Len(Left(Range("AO" & i).Value, 10))) & Left(Range("AP" & i).Value, 1) & Space(1 - Len(Left(Range("AP" & i).Value, 1))) & _
                    Left(Range("AQ" & i).Value, 11) & Space(11 - Len(Left(Range("AQ" & i).Value, 11))) & Left(Range("AR" & i).Value, 11) & Space(11 - Len(Left(Range("AR" & i).Value, 11))) & Left(Range("AS" & i).Value, 11) & Space(11 - Len(Left(Range("AS" & i).Value, 11))) & _
                    Left(Range("AT" & i).Value, 13) & Space(13 - Len(Left(Range("AT" & i).Value, 13))) & Left(Range("AU" & i).Value, 13) & Space(13 - Len(Left(Range("AU" & i).Value, 13))) & Left(Range("AV" & i).Value, 10) & Space(10 - Len(Left(Range("AV" & i).Value, 10))) & _
                    Left(Range("AW" & i).Value, 5) & Space(5 - Len(Left(Range("AW" & i).Value, 5))) & Left(Range("AX" & i).Value, 5) & Space(5 - Len(Left(Range("AX" & i).Value, 5))) & Left(Range("AY" & i).Value, 10) & Space(10 - Len(Left(Range("AY" & i).Value, 10))) & _
                    Left(Range("AZ" & i).Value, 1) & Space(1 - Len(Left(Range("AZ" & i).Value, 1))) & Left(Range("BA" & i).Value, 10) & Space(10 - Len(Left(Range("BA" & i).Value, 10))) & Left(Range("BB" & i).Value, 10) & Space(10 - Len(Left(Range("BB" & i).Value, 10))) & _
                    Left(Range("BC" & i).Value, 8) & Space(8 - Len(Left(Range("BC" & i).Value, 8)))
Next i
 
Close #1
 
End Sub
Merci à vous,

Julien