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 :

ouvrir une série de fichiers txt dans un classeur excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    cadre
    Inscrit en
    Mars 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : cadre
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2021
    Messages : 2
    Par défaut ouvrir une série de fichiers txt dans un classeur excel
    Bonjour,

    j'aimerais ouvrir à la chaîne une série de fichiers TXT (délimitation tabulation) dans un même répertoire pour les afficher sur plusieurs onglet dans le même classeur sur excel.
    J'ai essayé le code suivant, mes fichiers s'ouvrent effectivement dans des onglets différents mais le contenu n'est pas délimité correctement.

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    Sub ImporterFichierTexteFeuille()
     
    Dim chemin As String
    Dim monFichier As String
     
     
    chemin = "M:\Chalandise\Res_pop\"
    monFichier = Dir(chemin & "*.TXT", vbNormal)
    Dim Wsd, Wbs
     
    Do While monFichier <> ""
     
    ActiveWorkbook.Worksheets.Add
    With ActiveSheet.QueryTables.Add(Connection:= _
    "TEXT;" & chemin & monFichier, Destination:=Range("A1"))
    .Name = monFichier
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .TextFilePromptOnRefresh = False
    .TextFilePlatform = 850
    .TextFileStartRow = 1
    .TextFileParseType = xlFixedWidth
    .TextFileTextQualifier = xlTextQualifierDoubleQuote
    .TextFileConsecutiveDelimiter = False
    .TextFileTabDelimiter = True
    .TextFileSemicolonDelimiter = False
    .TextFileCommaDelimiter = False
    .TextFileSpaceDelimiter = False
    .TextFileColumnDataTypes = Array(5)
    .TextFileFixedColumnWidths = Array(14, 19)
    .TextFileTrailingMinusNumbers = True
    .Refresh BackgroundQuery:=False
    End With
     
    monFichier = Dir
    Loop
    End Sub
     
    sinon j'ai essayé le code suivant mais je ne sais pas comment mettre "monFichier" dans la boucle :
     
    Sub ImportTxt()
     
    'Importe tous les fichiers textes contenu dans un répertoire sur des feuilles différentes
     
    Dim chemin As String
    Dim monFichier As String
    Dim Wsd, Wbs
     
    chemin = "M:\21-Chalandise\Res_pop\"
    monFichier = Dir(chemin & "*.TXT", vbNormal)
     
     
    Do While monFichier <> ""
     
    Set Wsd = ActiveWorkbook.Sheets(1)
    Workbooks.OpenText Filename:="M:\Chalandise\Res_pop\Zones.txt", Origin _
    :=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
    xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
    Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
    TrailingMinusNumbers:=True
    Set Wbs = ActiveWorkbook
    Wbs.Sheets(1).[A1].CurrentRegion.Copy Wsd.[A1]
    Wbs.Close False
     
     
    monFichier = Dir
    Loop
    End Sub
    merci d'avance pour vos éclairages !!!

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 437
    Par défaut
    Bonjour,

    A regarder (non vérifié):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .TextFileParseType = xlDelimited
    Cordialement.

  3. #3
    Nouveau candidat au Club
    Femme Profil pro
    cadre
    Inscrit en
    Mars 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : cadre
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2021
    Messages : 2
    Par défaut
    Bonjour,

    Je vous remercie

    Finalement le pg a tourné sans cette ligne

    Cordialement,

Discussions similaires

  1. Importer successivement une série de fichiers texte dans un classeur excel
    Par ControleNonDestructi dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/03/2017, 19h06
  2. Réponses: 5
    Dernier message: 20/11/2014, 11h54
  3. Créer une série de fichiers .txt
    Par Aymeric.vie dans le forum MATLAB
    Réponses: 5
    Dernier message: 02/03/2007, 14h29
  4. [VBA-E] Ouvrir une série de fichiers à l'aide d'une boucle
    Par Tiki40 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/12/2006, 14h34
  5. [VBA-Excel] Ouvrir un lot de fichier txt dans Excel
    Par Trollakuir dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 30/06/2006, 10h02

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