IMPORTATION FICHIER TEXTE DANS UNE FEUILLE EXCEL

phloutz Messages postés 8 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 2 février 2009 - 27 oct. 2005 à 15:33
llance Messages postés 1 Date d'inscription dimanche 12 juin 2011 Statut Membre Dernière intervention 6 juillet 2011 - 6 juil. 2011 à 11:00
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/29597-importation-fichier-texte-dans-une-feuille-excel

llance Messages postés 1 Date d'inscription dimanche 12 juin 2011 Statut Membre Dernière intervention 6 juillet 2011
6 juil. 2011 à 11:00
Bonjour à tous,

Je dois importer un fichier texte dans une feuille excel. J'ai utilisé le code que vous proposez. Tout ce passe bien jusqu'à ce que excel lance une fenêtre de dialogue en indiquant que mon fichier.txt est actuellement modifié par un autre utilisateur. Voulez-vous l'ouvrir en lecture seule. Ensuite VBA m'indique une erreur à la ligne : waExcel.Workbooks.OpenText StrPath & StrFich, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:= _
True, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1) _
, TrailingMinusNumbers:=True

Je suis sous Excel 2003 je ne sais pas si ca peut changer quelque chose. Je vous remercie de votre aide :)
cs_chalabili Messages postés 1 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 1 juin 2009
1 juin 2009 à 22:29
salut tout le monde

alors je voudrais que vous l aidiez car ce code fonctionne a merveil sur une machine et sur d'autres non il me donne l'erreur suivante :

Une exception non gérée du type 'System.Runtime.InteropServices.COMException' s'est produite dans Microsoft.VisualBasic.dll
Informations supplémentaires : Membre introuvable. (Exception de HRESULT : 0x80020003 (DISP_E_MEMBERNOTFOUND))

en pointant sur :
waExcel.Workbooks(OpenFileDialog1.SafeFileName)
vbuser22 Messages postés 1 Date d'inscription jeudi 10 juillet 2008 Statut Membre Dernière intervention 10 juillet 2008
10 juil. 2008 à 13:14
Bonjour à tous,

J'ai un fichier de largeur fixe à consulter via Excel, à modifier puis à enregistrer au format TXT.
Mon problème est dû au fait que ce fichier comporte des espaces consécutifs (un espace dans une zone de texte n'est lui pas supprimé) pour certaines valeurs vides.


J'ai utilisé une macro Excel qui m'a permis d'ouvrir correctement mon fichier texte (une colonne de largeur fixe par colonne Excel), à ceci près que les espaces consécutifs correspondant à des valeurs vides n'ont pas été récupérés (valeur de la colonne = '' au lieu de ' ').

Voici la macro utilisée dans Excel :

==========================================================
Sub Decoupe_FixedWidth()

Const xlFixedWidth = 2
Const xlTextFormat = 2

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True

objExcel.Workbooks.OpenText "C:\Test.txt", , 3, xlFixedWidth, , , , , , , , xlTextFormat, _
Array( Array(0, xlTextFormat), Array(2, xlTextFormat), Array(10, 1), Array(20, xlTextFormat), _
Array(40, xlTextFormat) )

End Sub
==========================================================

Connaissez-vous la façon de conserver ces espaces ?

Merci d'avance,
ketchups Messages postés 24 Date d'inscription mercredi 5 septembre 2007 Statut Membre Dernière intervention 21 décembre 2007
28 sept. 2007 à 10:45
Hello j'essaye aussi d'importer un fichier texte sauf que mon séparateur est | (alt gr +7) et je sais pas du tout comment faire pour que le code soit compatible.

(c'est des serveurs qui me créer mon fichier texte ... changé de séparateur serait ... assez compliqué)
mariuskeith Messages postés 7 Date d'inscription dimanche 18 juillet 2004 Statut Membre Dernière intervention 28 mai 2007
4 juin 2007 à 14:09
Salut RENAUD,au faitr je veux exporter un fichier text en excel,mais je suis un vrai débutant,j'aimerais savoir si je vais utiliser un bouton de commande ou comment.
Envoie si possiblie un exemple de programme avec interface si possible.
merci,voici mon mai:keith2fr@yahoo.fr
reneauld Messages postés 8 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 23 octobre 2006
23 oct. 2006 à 19:30
Pas facile
en effet comme ton pseudo l'indique, c'est pas facile...

J'aimerais avoir des précisions sur ton dit fichier wordpad.
C'est un fichier .rtf?
Ou bien c'est un fichier texte normal. Si c'est le cas, alors pas de problème à utiliser le code en exemple.

Si c'est un wordpad (.rtf), bonne chance
WordPad n'est pas conçu pour créer des fichiers de données.
C'est un outil (je suis gêné d'appeller ça un outil) destiné au formatage d'un texte.
reneauld Messages postés 8 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 23 octobre 2006
23 oct. 2006 à 19:18
(Traiter en fixe)
Tableau = Array(Array(0, 1), Array(10, 1), Array(15, 1))
waExcel.Workbooks.OpenText strpath & StrFich, , , 2, , , , , , , , , Tableau

Création d'un tableau à 3 colonnes
Array(Array(0, 1), Array(10, 1), Array(15, 1))
1ere colonne
Array(0, 1), = commence au caractere 0 et 1 pour type de caractere general
2e colonne
Array(10, 1), = commence au caractere 10 et 1 pour type de caractere general
3e colonne
Array(15, 1), = commence au caractere 15 et 1 pour type de caractere general

Type de carectere
xlGeneralFormat Général : 1
xlTextFormat Texte : 2
xlMDYFormat Format de date Mois-Jour-Année : 3
xlDMYFormat Format de date Jour-Mois-Année : 4
xlYMDFormat Format de date Année-Mois-Jour : 5
xlMYDFormat Format de date Mois-Année-Jour : 6
xlDYMFormat Format de date Jour-Année-Mois : 7
xlYDMFormat Format de date Année-Jour-Mois : 8
xlEMDFormat Date EMD : 9
xlSkipColumn Non distribuée : 10
cs_pas facile Messages postés 1 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 17 octobre 2006
17 oct. 2006 à 21:37
Penses tu qu'une solution pour Wordpad existe ...!!

Je cherche a importer un fichier de Wordpad afin d'alimenter une feuille excel avec deux delimiteurs ...

SOS est-ce possible ???!!!
Je perds espoir!!!
SteelModel Messages postés 1 Date d'inscription mardi 3 octobre 2006 Statut Membre Dernière intervention 3 octobre 2006
3 oct. 2006 à 10:21
Je cherche a lire un fichier NASTRAN (.nas) ou les donnees sont groupees par blocs de 8, sans separateur. Un exemple:

GRID 9 175.0 -155.0 0.0
GRID 10 175.0 -155.0 3.955124
GRID 11 175.0 -155.0 7.910248
GRID 12 175.0 -155.0 11.86537
GRID 13 175.0 -155.0 15.8205
GRID 14 175.0 -155.0 19.77562
GRID 15 174.5596-159.17419.77695
GRID 16 173.2577-163.16419.77557
GRID 17 171.1517-166.79519.77571
GRID 18 168.3344-169.90619.77588

Le but -- a court terme -- est de pouvoir avoir ces donnees dans de braves colonnes Excel.
Je suis tres perplexe et j apprecierais grandement un aide eclairee. Merci d avance
cs_gedeon44 Messages postés 6 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 7 juillet 2006
3 mai 2006 à 18:02
Ok, merci beaucoup pour ces explications détaillées.

Bonne soirée.
reneauld Messages postés 8 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 23 octobre 2006
3 mai 2006 à 14:39
Il suffit de mettre à true le paramètre correspondant à votre séparateur Tab (tabulation), Semicolon (Points-vigule), Comma(virgule), Space (espace) ou si le sépareteur est différent
mettre true dans Other et otherChar (mettre le caractère de séparation)
reneauld Messages postés 8 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 23 octobre 2006
3 mai 2006 à 14:24
Bonjour, pour importer les fichiers avec des points-virgules

waExcel.Workbooks.OpenText StrPath & StrFich, , , 2, , , ,True , , True

Dans l'aide de VBA, lorsqu'on cherche OPENTEXT

Syntaxe

expression.OpenText(Filename, Origin, StartRow, DataType, TextQualifier, ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other, OtherChar, FieldInfo, DecimalSeparator, ThousandsSeparator)

expression Obligatoire. Expression qui renvoie un objet Workbooks.

Filename Argument de type String obligatoire. Spécifie le nom du fichier texte à ouvrir et redistribuer.

Origin Argument de type Variant facultatif. Spécifie l'origine du fichier texte. Il peut s'agir de l'une des constantes XlPlatform suivantes : xlMacintosh, xlWindows ou xlMSDOS. Si vous ne spécifiez pas cet argument, la méthode utilise le paramètre en cours de l'option Origine du fichier de l'Assistant Importation de texte.

StartRow Argument de type Variant facultatif. Numéro de la ligne à partir de laquelle commencer la redistribution du texte. La valeur par défaut est 1.

DataType Argument de type Variant facultatif. Spécifie le format de colonne des données contenues dans le fichier. Il peut s'agir de l'une des constantes XlTextParsingType suivantes : xlDelimited ou xlFixedWidth. La valeur par défaut est xlDelimited.

TextQualifier Argument de type Variant facultatif. Spécifie le qualificateur de texte. Il peut s'agir de l'une des constantes XlTextQualifier suivantes : xlTextQualifierDoubleQuote, xlTextQualifierSingleQuote ou xlTextQualifierNone. La valeur par défaut est xlTextQualifierDoubleQuote.

ConsecutiveDelimiter Argument de type Variant facultatif. Affectez-lui la valeur True pour que des séparateurs consécutifs soient considérés comme un seul séparateur. La valeur par défaut est False.

Tab Argument de type Variant facultatif. Affectez-lui la valeur True pour que le caractère de tabulation soit le séparateur (l'argument DataType doit avoir la valeur xlDelimited). La valeur par défaut est False.

Semicolon Argument de type Variant facultatif. Affectez-lui la valeur True pour que le point-virgule (;) soit le séparateur (l'argument DataType doit avoir la valeur xlDelimited). La valeur par défaut est False.

Comma Argument de type Variant facultatif. Affectez-lui la valeur True pour que la virgule soit le séparateur (l'argument DataType doit avoir la valeur xlDelimited). La valeur par défaut est False.

Space Argument de type Variant facultatif. Affectez-lui la valeur True pour que l'espace soit le séparateur (l'argument DataType doit avoir la valeur xlDelimited). La valeur par défaut est False.

Other Argument de type Variant facultatif. Affectez-lui la valeur True pour que le caractère spécifié par l'argument OtherChar soit le séparateur (l'argument DataType doit avoir la valeur xlDelimited). La valeur par défaut est False.

OtherChar Argument de type Variant facultatif (obligatoire si l'argument Other a la valeur True). Spécifie le caractère séparateur lorsque l'argument Other a la valeur True. Si vous spécifiez plusieurs caractères, seul le premier de la chaîne est utilisé et les autres sont ignorés.

FieldInfo Argument de type Variant facultatif. Tableau contenant des informations de redistribution pour les différentes colonnes de données. L'interprétation dépend de la valeur de l'argument DataType.

Quand les données sont délimitées, cet argument est un tableau composé de tableaux à deux éléments qui spécifient chacun les options de conversion pour une colonne donnée. Le premier élément correspond au numéro de colonne (commençant à 1), et le second élément est l'une des constantes xlColumnDataType répertoriées dans le tableau suivant, qui spécifient la manière dont la colonne est redistribuée.
phloutz Messages postés 8 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 2 février 2009
3 mai 2006 à 09:52
Salut, désolé je n'ai pas encore retravaillé là-dessus...
Je me suis pour l'instant contenté d'un petit manual-processing ;-)
++
cs_gedeon44 Messages postés 6 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 7 juillet 2006
3 mai 2006 à 09:18
Salut,

Si tu as trouvé la méthode pour l'adapter à des données séparées par un ";", cela m'intéresse.
Tu pourrais me faire part de ta méthode, STP ?
Merci d'avance.
phloutz Messages postés 8 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 2 février 2009
27 oct. 2005 à 15:33
C'est presque ce que je cherchais, mais en bon débutant, il va falloir que je continue à potasser un peu pour l'adapter à des données séparées par un ";" et à longueur variable ;-)
Rejoignez-nous