IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-Excel] Ouvrir un lot de fichier txt dans Excel


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [VBA-Excel] Ouvrir un lot de fichier txt dans Excel
    Bonjour à tous,

    Je fais appel à vous pour un problème qui me bloque depuis deux jours.

    Je vous explique :

    j'ai un lot de n fichiers texte qui se trouvent dans un répertoire.

    Je veux les ouvrir dans excel, faire dessus quelques manipulations (pour ça je me débrouille) puis les refermer.

    J'ai bricolé le code suivant. Le problème c'est que je n'arrive qu'à ouvrir qu'un fichier à la fois (et j'ai 385 fichiers à modifier...). il me manque en fait une variable qui dirait "ouvre chaque fichier du répertoire" au lieu de ouvre tel fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     'macro pour importer dans excel des fichiers text et enregistrer le fichier xls dans le même repertoire
    Sub OuvrirfichierTxt()
    Dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
    Dim waExcel: Set waExcel = CreateObject("Excel.Application") 'Ouverture d'Excel
    StrPath = "M:\ETUDES EN COURS\2006\06E023 Fédération Collectivités de l'eau SDA SeineMaritime\Donnees technique\test excel" 'Chemin d'accès du fichier
        If Right(StrPath, 1) <> "\" Then StrPath = StrPath & "\" 'Ajoute \ à la fin s'il y en a pas
        StrFich = "AMBRUMESNIL-20-10-05" '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, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
            :=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:= _
            False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1) _
            , TrailingMinusNumbers:=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
    End Sub
    J'ai mis en rouge le nom du fichier que j'ai utilisé pour tester mon code.

    Il m'a bien créer un fichier xls dans le même répertoire mais je voudrais que la manip boucle sur chaque fichier de mon répertoire.

    J'espère avoir été assez clair dans mes explications.

    Merci d'avance pour votre aide.

    Trollakuir

    [Edit] bbil : Penser à rajouter les balises de codes, utiliser le bouton

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Pourquoi tu n'utilise pas un OpenText plutot ? en parcourant ton dossier et dès qu'il trouve un fichier txt, tu met son nom dans une variable, tu l'ouvre et tu fais tes opérations dessus, sans utuliser ce que ut met au début de ton code ?

    Tu veux faire quoi avec tes fichiers textes ? ils ont tous exactement la meme forme ?
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Merci pour l'aide Illight mais concrètement comment je procède?

    Je suis un débutant en VB. Le code du dessus, je l'ai trouvé sur le net et un peu adapté.

    Sinon, mes fichiers textes n'ont pas tous le même format mais il y a des similitudes.
    Ce que je veux, c'est extraire de ces fichiers un paragraphe qui est toujours présent (à l'aide d'un mot clé) ce que je sais faire et supprimer tout le reste du texte (ce que je sais faire aussi)

    Dans un second temps, j'importerai tout ça dans une base Access (champ mémo) mais c'est pas pour tout de suite.

    voilà,
    trollakuir

  4. #4
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Tes fichiers textes ont un nom particulier (en fonction de la date par exemple, ou autre ?)

    Regarde les propriétés de la fonctions Dir peut etre

    Je peut pas regarde j'ai une urgence la mais dès que j'ai fini le regarde
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  5. #5
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Me revla. dans un fichier Excel neutre tu met ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim fic As String
    fic = Dir("M:\ETUDES EN COURS\2006\06E023 Fédération Collectivités de l'eau SDA SeineMaritime\Donnees technique\test excel\*.txt")
    Do Until fic = ""
        workbooks.openText fic
        'la tu insère ton code pour les opérations que ut veux effectueur sur ton texte
        'a la limite tu peux meme les copier dans le classeur ouvert pour tout avoir dans le meme fichier Excel
        activeworkbook.close savechanges:=false
        fic = Dir
    Loop
    C'est un truc dans ce genre, après il faut que tu l'adapte avec ce que tu veux faire exactement, les opérations que ut veux faire sur tes fichiers textes, etc...
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour la réponse.

    bon j'ai encore un tout petit problème,

    En fait quand je lance la macro, je me suis aperçu que mon texte était importé avec des tabulations.

    Hors je voudrais importer sans séparateur. Comment dois-je procéder?

    Merci

  7. #7
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Comment ça sans séparateur tout est attaché ?
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Salut,

    Non tout n'est pas attaché. Par contre pour une raison que j'ignore, Excel me place des éléments dans les colonnes A B et C alors que lorsque je fais la manip à la main (fichier ouvrir -> texte sans séparateur etc...), j'obtiens un fichier avec tout mon texte dans la premiere colonne.

    Trollakuir

  9. #9
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Quand ut fais ton OpenText, met tous les arguments a False (qui sont des séparateurs)
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ouvrir fichier .txt dans excel avec des champs texte
    Par rom05 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/05/2008, 18h27
  2. fichier txt dans excel
    Par madjb dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/04/2008, 14h33
  3. Ouverture fichier txt dans excel date 10/01/2007 au lieu de 01/10/2007
    Par megapacman dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/10/2007, 14h14
  4. importer un fichier txt dans excel
    Par rm34000 dans le forum Excel
    Réponses: 2
    Dernier message: 03/09/2007, 09h12
  5. Réponses: 2
    Dernier message: 26/01/2007, 14h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo