Mise en forme d'un fichier texte dans Excel
Bonjour,
Je suis entrain d'essayer d'importer un fichier ".txt.1" dans excel. L'importation s'effectue correctement grâce à ce code :
Private Sub Workbook_Open()
Dim Fich As Worksheet
Dim Tbl
Dim Variables
Dim Ligne As String
Dim I As Integer
Dim J As Integer
Dim FichierTemp As String
Set Fich = ThisWorkbook.Worksheets("Feuil1")
'entêtes de colonnes
Variables = Array("Code_JDE", _
"Format", _
"Indice", _
"Description", _
"Date", _
"Dessinateur")
For I = 0 To UBound(Variables)
Fich.Cells(1, I + 1) = Variables(I)
Next I
'chemin du fichier texte à lire
FichierTemp = "C:\ptc_config\config_perso_wf2\code_temp\code_temp.txt.1"
'commence à la seconde ligne pour éviter les entêtes
J = 1
'ouverture pour lecture
Open FichierTemp For Input As #1
'boucle sur toutes les lignes
Do While Not EOF(1)
'lecture de la ligne
Line Input #1, Ligne
'si pas vide
If Ligne <> "" Then
'incrémente pour la ligne suivante
J = J + 1
'splite dans un tableau, attention, le séparateur doit être adapté !
Tbl = Split(Ligne, ":")
'inscrit les valeurs dans les cellules de la feuille
For I = 0 To UBound(Tbl)
Fich.Cells(J, I + 1) = Tbl(I)
Next I
End If
Loop
'ferme le fichier
Close #1
'vide le tableau
Erase Tbl
End SubLe soucis c'est qu'il me recopie les entêtes et en plus de cela il me colle tout en colonne A alors que je souhaiterai qu'il colle la sélection de l'autre fichier en ligne 2.
Je ne comprends vraiment pas ce qui ne va pas.
Les chemins des fichier sont :
Pour le xls :
C:\ptc_config\config_perso_wf2\code_xls\code.xls
Pour le txt.1
C:\ptc_config\config_perso_wf2\code_temp\code_temp.txt
Merci.
Bonjour
Je trouve qu'il importe bien le fichier texte en 2 colonnes car chaque entrée ne comporte qu'une séparation (:)
En plus
azertym a écrit :L'importation s'effectue correctement grâce à ce code :
et après
azertym a écrit :Le soucis c'est qu'il me recopie les entêtes et en plus de cela il me colle tout en colonne A alors que je souhaiterai qu'il colle la sélection de l'autre fichier en ligne 2.
Je ne comprends vraiment pas ce qui ne va pas.
C'est bon ou ce n'est pas bon ?
azertym a écrit :alors que je souhaiterai qu'il colle la sélection de l'autre fichier en ligne 2.
Tu n'as fourni qu'un seul fichier à importer
Bonjour
Après réflexion
Essayes
Private Sub Workbook_Open()
Dim Fich As Worksheet
Dim Tbl
Dim Variables
Dim Ligne As String
Dim I As Integer
Dim J As Integer
Dim FichierTemp As String
Set Fich = ThisWorkbook.Worksheets("Feuil1")
'entêtes de colonnes
Variables = Array("Code_JDE", _
"Format", _
"Indice", _
"Description", _
"Date", _
"Dessinateur")
Fich.Cells.ClearContents
For I = 0 To UBound(Variables)
Fich.Cells(1, I + 1) = Variables(I)
Next I
'chemin du fichier texte à lire
FichierTemp = "C:\ptc_config\config_perso_wf2\code_temp\code_temp.txt.1"
'commence à la seconde ligne pour éviter les entêtes
J = 2
'ouverture pour lecture
Open FichierTemp For Input As #1
I = 1 ' On commence à la colonne 1
'boucle sur toutes les lignes
Do While Not EOF(1)
'lecture de la ligne
Line Input #1, Ligne
'si pas vide
If Ligne <> "" Then
'splite dans un tableau, attention, le séparateur doit être adapté !
Tbl = Split(Ligne, ":")
'inscrit la valeur en fonction de l'entête de la colonne
Fich.Cells(J, I) = Tbl(UBound(Tbl))
' colonne suivante
I = I + 1
End If
Loop
'ferme le fichier
Close #1
'vide le tableau
Erase Tbl
End SubFonctionne très bien avec le fichier fourni
Merci Banzai, ca marche parfaitement !