Ouvrir un fichier texte en format texte

Le
Laurent
Bonjour,
J'ai des problèmes de formatage lorsque j'ouver un fichier texte avec des
colonnes en standard, pour éviter ce problème je convertis toutes les
colonnes en texte.
Mon problème est le suivant : les fichiers texte que ma macro ouvre ne font
pas tous le même nombre de colonne.
Existe t-il une solution pour convertir toutes les colonnes (quelque soit le
nombre de colonne) en format texte ?

Merci d'avance de votre aide
Laurent
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
francois.forcet
Le #7036421
Salut à toi

Tu peux peut être rajouter en fin de ta macro cette ligne :

Range("A1", Range("IV1").End(xlToLeft)).EntireColumn.NumberFormat =
"@"

Qui mettra au format texte toutes les colonnes de la 1° à la dernière
utilisée (la 1° cellule de cette dernière colonne ne devra être vid e)

Celà devrait convenir

Dis moi !!!!
francois.forcet
Le #7036561
Rebonjours à toi
Autre solution qui supprime la condition de la 1° cellule de la
dernière colonne à mettre en fin de ta macro :

Range("A1",
Range(ActiveCell.SpecialCells(xlLastCell).Address)).EntireColumn.NumberForm at
= "@"

C'est peut être mieux

Dis moi
Laurent
Le #7042671
Bonjour,
Merci pour la réponse, mais elle ne répond pas à ma problématique.
ce que je voudrais c'est transformer le données en texte afin qu'elles
soient identique à celle de mon fichier texte.
Si je met le format texte après conversion, mes données se trouvent déjà
fausses sur certains postes (dates passées au format américain, perte de
séparateur décimal, etc.)

Je voudrais donc dans la fonction opentext ne pas mettre tous les array car
je ne sais pas combien de colonne je vais avoir.
Workbooks.OpenText Filename:="Fichier.txt", _
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited,
TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True,
Semicolon:=True, _
Comma:úlse, Space:úlse, Other:úlse,
FieldInfo:=Array(Array(Array(1, 2), Array(2, 2), Array(3, 2), Array....

Pour l'instant j'ai triché en mettant 50 array (je ne pense pas avoir plus
de 50 colonnes), cela fonctionne mais je ne trouve pas le code très propres.

Merci d'avance si vous avez une autre idée.
Laurent

"" a écrit :

Rebonjours à toi
Autre solution qui supprime la condition de la 1° cellule de la
dernière colonne à mettre en fin de ta macro :

Range("A1",
Range(ActiveCell.SpecialCells(xlLastCell).Address)).EntireColumn.NumberFormat
= "@"

C'est peut être mieux

Dis moi



francois.forcet
Le #7044011
Rebonjours Laurent

Tu pourrais ouvrir une première fois ton fichier text sans le
FieldInfo :

Workbooks.OpenText Filename:="Fichier.txt", _
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited,
TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True,
Semicolon:=True, _
Comma:úlse, Space:úlse, Other:úlse,


Avec ce bout de code tu repères le nombre de colonnes :

Colonne = ActiveCell.SpecialCells(xlLastCell).Column

Puis tu fermes sans l'enregistrer ce fichier :

ActiveWorkbok.Close saveChanges := False

Tu constitues ton FieldInfo avec cette donnée ainsi :

For i = 1 To Colonne
Instruction = Instruction & "Array(" & i & ", 2),"
Next
Instruction = Mid(Instruction, 1, Len(Instruction) - 1)

Tu inclus cette variable dans ton code :

Workbooks.OpenText Filename:="Fichier.txt", _
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited,
TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True,
Semicolon:=True, _
Comma:úlse, Space:úlse, Other:úlse,
FieldInfo:=Array(Array(Instruction))

Je n'ai pas testé n'ayant pas ton fichier mais à mon sens je ne vois
pas pourquoi celà ne fonctionnerait pas

Fais des testes et dis moi !!!!
Laurent
Le #7051461
Bonjour,
Efectivement ca peux répondre à mon besoin, j'y avais pensé, mais je ne
trouve pas cette solution très "propre", tant pis je vais rester sur mes 50
array.

Merci quand même

Laurent

"" a écrit :

Rebonjours Laurent

Tu pourrais ouvrir une première fois ton fichier text sans le
FieldInfo :

Workbooks.OpenText Filename:="Fichier.txt", _
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited,
TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True,
Semicolon:=True, _
Comma:úlse, Space:úlse, Other:úlse,


Avec ce bout de code tu repères le nombre de colonnes :

Colonne = ActiveCell.SpecialCells(xlLastCell).Column

Puis tu fermes sans l'enregistrer ce fichier :

ActiveWorkbok.Close saveChanges := False

Tu constitues ton FieldInfo avec cette donnée ainsi :

For i = 1 To Colonne
Instruction = Instruction & "Array(" & i & ", 2),"
Next
Instruction = Mid(Instruction, 1, Len(Instruction) - 1)

Tu inclus cette variable dans ton code :

Workbooks.OpenText Filename:="Fichier.txt", _
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited,
TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True,
Semicolon:=True, _
Comma:úlse, Space:úlse, Other:úlse,
FieldInfo:=Array(Array(Instruction))

Je n'ai pas testé n'ayant pas ton fichier mais à mon sens je ne vois
pas pourquoi celà ne fonctionnerait pas

Fais des testes et dis moi !!!!





Publicité
Poster une réponse
Anonyme