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 :

Excel VB - inserer plusieurs fichier dans un onglet


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Par défaut Excel VB - inserer plusieurs fichier dans un onglet
    Bonjour,
    Vous savez comment on fait pour insérer plusieurs fichiers texte dans un onglet excel ?
    les fichiers : hotline_01.txt, hotline_02.txt, hotline_03.txt
    Je souhaite les ouvrir dans une feuille d'Excel en VB ?

    Merci de votre aide,

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonjour,
    Je te conseille d'utiliser l'enregistreur de macro pour avoir le code de base avec les options qui corespondent a tes fichiers. Une fois que tu as ce code essaye de le comprendre et poste le on t'aidera à l'adapter pour le rendre fonctionnel.

  3. #3
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Par défaut
    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
    Sub hotline(hotline, hotline_tt)
        Workbooks.OpenText Filename:=fichier_a_importer, origin:= _
            xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
            xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
            comma:=False, Space:=False, Other:=True, OtherChar:="|", FieldInfo:= _
            Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), _
            Array(5, 1), Array(6, 1), Array(7, 1))
     
        ActiveWindow.Zoom = 75
     
        Range("B2").Select
        ActiveWindow.FreezePanes = True
        Selection.AutoFilter
        Columns("A:AE").Columns.AutoFit
        Range("B2").Select
        ActiveWorkbook.SaveAs Filename:=fichier_a_exporter, FileFormat:= _
        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
            False, CreateBackup:=False

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bien et maintenant que tu a ce code quel est ton problème? QUest ce que tu aimerai qu'il fase et qu'il ne fait pas acctuellement?

  5. #5
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Par défaut
    Dans le code, j'importe un fichier ms comment je peux faire pour aller à la fin de la première insertion et ensuite inserer le deuxième fichier ?

  6. #6
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Une solution consite a trouver la dernière ligne de ton fichier excel après importation puis de l'utiliser pour la suivante.
    Voici : une liste des possibilité
    http://www.developpez.net/forums/d45...gnees-feuille/

    Par contre ta solution impose d'ouvrir le fichier excel pourais tu s'il te plai regarder un code avec importation de donnée. Menu Données importation de donnée externe

    A mon avis cela permettra plus facilement de mettre les fichier a la suite les un des autre. Si tu ouvres chaque fichier il fudra copier les donner et les refermer.

  7. #7
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Par défaut EXCEL VB importer
    Bonjour,
    Dans un répertoire, j'ai plusieurs fichiers comme hotline_01.txt, hotline_02.txt, hotline_03.txt ...
    Je souhaite déplacer ces fichiers dans un répertoire hotline.

    Je veux un code qui permet de déplacer tt les fichiers commençant par "hotline". C'est possible ?

    J'ai commencé par ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim fichier as string
    fichier="hotline_"
    fichier_a_importer =  "/work/" + fichier + "*"
    Je ne sais pas
    Merci,

  8. #8
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Tu ne veux pas que l'on prenne les problème dans l'ordre? du genre on commence par savoir importer les fichier puis on s'occupe de la boucle (pour ce problème tu peux faire une recherche dans la faq et dans le forum il doit y avoir des dizaines d'exemples).

  9. #9
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Par défaut
    C'est good, j'ai trouvé

    Merci,

  10. #10
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Par défaut Excel VB - inserer plusieurs fichier dans un onglet
    Hello,

    Je reviens vers vs, j'ai pas trouvé la méthode pour insérer plusieurs fichiers dans une feuille.
    Mes fichiers sont : hotline_01, hotline_01 et hotline_03.

    Mon code:
    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
     
    Dim appExcel As Excel.Application 'Application Excel
    Dim wbExcel As Excel.Workbook 'Classeur Excel
    Dim wsExcel As Excel.Worksheet 'Feuille Excel
    Set appExcel = CreateObject("Excel.Application")
     
    For i = 1 To 43
            fichier_a_importer = "c:\temp\" & "dep0133_00" & i & ".txt"
     
    fichier_importer = fichier_a_importer
    Dim Resultat As String
    Resultat = Dir(fichier_importer, vbNormal)
    If Resultat <> "" Then
    fichier_importer = True
     
            Set wsExcel = appExcel.Workbooks.Open(fichier_a_exporter)
            Sheets.Add.OpenText Filename:=fichier_a_importer, origin:= _
            xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
            xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
            comma:=False, Space:=False, Other:=True, OtherChar:="|", FieldInfo:= _
            Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), _
            Array(5, 1), Array(6, 1), Array(7, 1))
     
        ActiveWindow.Zoom = 75
        derniereLigne = Range("A65536").End(xlUp).Row
        Range("B" & derniereLigne).Select
     
    Next i

  11. #11
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonjour il me semblai t'avoir donner une piste qui donne des résultats a mon avis prometteur quand on l'exploite

    Par contre ta solution impose d'ouvrir le fichier excel pourais tu s'il te plai regarder un code avec importation de donnée. Menu Données importation de donnée externe

    A mon avis cela permettra plus facilement de mettre les fichier a la suite les un des autre. Si tu ouvres chaque fichier il fudra copier les donner et les refermer.
    Tu obtiens un code du type

    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
        With ActiveSheet.QueryTables.Add(Connection:= _
            "TEXT;C:\TEST.TXT", Destination _
            :=Range("A1"))
            .Name = "T_DESCRI_1"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 1252
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = True
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileColumnDataTypes = Array(1, 1, 1)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
        End With
    Il suffit de mettre le chemin de ton fichier en variable et d'utiliser la variable denière ligen pour remplir la destinantion

    donc en reprenant ton code (s'il fonctionne je ne l'ai pas testé)

    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
    Dim appExcel As Excel.Application 'Application Excel
    Dim wbExcel As Excel.Workbook 'Classeur Excel
    Dim wsExcel As Excel.Worksheet 'Feuille Excel
    Set appExcel = CreateObject("Excel.Application")
     
    For i = 1 To 43
            fichier_a_importer = "c:\temp\" & "dep0133_00" & i & ".txt"
     
    fichier_importer = fichier_a_importer
    Dim Resultat As String
    Resultat = Dir(fichier_importer, vbNormal)
    If Resultat <> "" Then
    fichier_importer = True
     
        derniereLigne = Range("A65536").End(xlUp).Row+1
     
       With ActiveSheet.QueryTables.Add(Connection:= _
            "TEXT;" & fichier_a_importer, Destination _
            :=Range("A" & derniereLigne ))
            .Name = "T_DESCRI_1"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 1252
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = True
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileColumnDataTypes = Array(1, 1, 1)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
        End With
    Next i
    Voila je te laisse remplacer mon code d'importation par le tient car on risque fort de ne pas avoir besoin des meme options d'importation

  12. #12
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Bonjour,

    il me semble que tu ne comprends pas ce que tu fais :

    ceci
    Hello,

    Je reviens vers vs, j'ai pas trouvé la méthode pour insérer plusieurs fichiers dans une feuille.
    Mes fichiers sont : hotline_01, hotline_01 et hotline_03.
    "
    Est totalement incohérent par rapport à cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    For i = 1 To 43
            fichier_a_importer = "c:\temp\" & "dep0133_00" & i & ".txt"
    il ne suffit pas de recopier un code trouvé quelquepart pour avoir ce qu'on a espéré, sinon le monde serait bourré d'informaticiens (et totalement chiant )

Discussions similaires

  1. Réponses: 6
    Dernier message: 29/10/2014, 21h11
  2. [XL-2010] Importer des données de plusieurs fichiers dans une feuille excel en VBA
    Par Alibel dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/10/2013, 16h16
  3. [XL-2007] Onglets de plusieurs fichiers dans un classeur
    Par gramond dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/03/2012, 12h23
  4. Exporter plusieurs tableaux dans un onglet (EXCEL)
    Par Sissie dans le forum ODS et reporting
    Réponses: 3
    Dernier message: 14/08/2009, 14h49
  5. Réponses: 5
    Dernier message: 21/04/2006, 13h03

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