begin process at 2008 07 06 03:04:31
1 205 441 membres
21 nouveaux aujourd'hui
14 119 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

IMPORTATION FICHIER TEXTE DANS UNE FEUILLE EXCEL


Information sur la source

Catégorie :VBScript Niveau : Débutant Date de création : 17/02/2005 Vu : 27 574

Note :
6 / 10 - par 4 personnes
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

Description

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

  • 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
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
  • signaler à un administrateur
    Commentaire de phloutz le 27/10/2005 15:33:36

    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 ;-)

  • signaler à un administrateur
    Commentaire de gedeon44 le 03/05/2006 09:18:39

    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.

  • signaler à un administrateur
    Commentaire de phloutz le 03/05/2006 09:52:40


    Salut, désolé je n'ai pas encore retravaillé là-dessus...
    Je me suis pour l'instant contenté d'un petit manual-processing ;-)
    ++

  • signaler à un administrateur
    Commentaire de reneauld le 03/05/2006 14:24:58

    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.

  • signaler à un administrateur
    Commentaire de reneauld le 03/05/2006 14:39:52

    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)

  • signaler à un administrateur
    Commentaire de gedeon44 le 03/05/2006 18:02:01

    Ok, merci beaucoup pour ces explications détaillées.

    Bonne soirée.

  • signaler à un administrateur
    Commentaire de SteelModel le 03/10/2006 10:21:06

    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

  • signaler à un administrateur
    Commentaire de pas facile le 17/10/2006 21:37:07

    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!!!

  • signaler à un administrateur
    Commentaire de reneauld le 23/10/2006 19:18:17

    (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

  • signaler à un administrateur
    Commentaire de reneauld le 23/10/2006 19:30:43

    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.

  • signaler à un administrateur
    Commentaire de mariuskeith le 04/06/2007 14:09:11

    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

  • signaler à un administrateur
    Commentaire de ketchups le 28/09/2007 10:45:33

    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é)

Ajouter un commentaire

Pub



Appels d'offres

Plugin Dialer outlook
Budget : 2 000€
Travail graphique- ill...
Budget : 1 000€
creation de marque et ...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS