Importation fichier texte dans une feuille excel

Soyez le premier à donner votre avis sur cette source.

Snippet vu 43 699 fois - Téléchargée 33 fois

Contenu du snippet

Le présent code importe dans une feuille Excel un fichier texte
et enregistre cette feuille au même endroit que le fichier texte.

Le code est partielement commenté.
Je n'ai pas inscrit toutes les possibilités de l'import,
mais une petite recherche dans l'aide de VB d'Excel
vous éclairera sur les diférente possibilité.

J'ai conçu le code pour fonctionner en VBScript,
mais il devrait fonctionner partout.

Vous notez une amélioration, faites moi en part !
Bonne journée !

Source / Exemple :


Dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
Dim waExcel: Set waExcel = CreateObject("Excel.Application") 'Ouverture d'Excel
    StrPath = "C:\Donnees\Rapport\" 'Chemin d'accès du fichier
    If Right(StrPath, 1) <> "\" Then StrPath = StrPath & "\" 'Ajoute \ à la fin s'il y en a pas
    StrFich = "Igli07_aout.txt" 'Nom du fichier
    If FSO.FileExists(StrPath & StrFich) Then 'Existance du fichier
        waExcel.Visible = False 'Rendre invisible Excel
        'Importe le fichier texte vers une feuille Excel de façon Largeur fixe avec délimiteur : Tabulation et Space
        waExcel.Workbooks.OpenText StrPath & StrFich, , , 2, , , True, , , True
        'Sauvegarde la feuiller importer vers le chemin d'accès de départ en motifiant l'extension et en mode partagé pour éviter des erreurs
        waExcel.Workbooks(StrFich).SaveAs StrPath & Left(StrFich, Len(StrFich) - 4) & ".xls", , , , , , 2
    End If
    'Fermeture d'Excel
    waExcel.Application.Quit

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
dimanche 12 juin 2011
Statut
Membre
Dernière intervention
6 juillet 2011

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 :)
Messages postés
1
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
1 juin 2009

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)
Messages postés
1
Date d'inscription
jeudi 10 juillet 2008
Statut
Membre
Dernière intervention
10 juillet 2008

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,
Messages postés
24
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
21 décembre 2007

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é)
Messages postés
7
Date d'inscription
dimanche 18 juillet 2004
Statut
Membre
Dernière intervention
28 mai 2007

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
Afficher les 15 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.