Importer plusieurs fichiers excel

Résolu
pipoune755 - 27 juin 2013 à 15:35
 pipoune755 - 3 juil. 2013 à 14:46
Bonjour,

J'aimerais importer une quantité de fichiers texte aléatoire (qui varie selon les mois ) dans une seule feuille excel, à la suite.
Je me heurte évidemment à la question du nombre et des noms.
Serait-il possible d'importer tous les fichiers textes contenus dans un dossier ( par exemple dossier FichiersTexte1 dans répertoire C:)

Quelqu'un pourrait-il me conseiller svp ?

10 réponses

Bonjour,

J'ai finalement trouvé le code suivant qui fonctionne.

Merci de votre aide .

Sub Test()
    Dim Fichier As String, Chemin As String
    Dim i As Long
    
    'Répertoire contenant les fichiers
    Chemin = "H:\\TRAVAUX STAGIAIRE\test2"
    Fichier = Dir(Chemin & "\*.*")
    
    'Boucle sur les fichiers
    Do While Fichier <> ""
        
        i = Range("A65536").End(xlUp).Row + 1
        ImportText Chemin & "" & Fichier, Cells(i, 1)
        
        Fichier = Dir
    Loop
End Sub
 


Sub ImportText(NomFichier As Variant, Cible As Range)
    Dim QT As QueryTable
    
    Set QT = ActiveSheet.QueryTables.Add(Connection:="TEXT;" & _
        NomFichier, Destination:=Cible)
    
    With QT
        'Définit les séparateur de colonnes dans le fichier txt
        .TextFileOtherDelimiter = ";"
        .TextFileSemicolonDelimiter = True
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .Refresh
    End With
End Sub
 
 




3
MarcPL Messages postés 172 Date d'inscription jeudi 8 décembre 2011 Statut Membre Dernière intervention 21 juillet 2013 2
27 juin 2013 à 17:04
Bonjour,

consulter l'aide de la fonction Dir ...

___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !
0
Bonjour,

Merci MarcPL, j'ai donc trouvé cette fameuse fonction Dir qui m'a permis d'importer tous mes fichiers textes dans des feuilles Excel différentes.
Sub ImportText()

'l'instruction ChDir permet de se positionner
'sur un répertoire précis
ChDir "***" '*** remplaçant le repertoire où je vais chercher tous mes fichiers textes
monfichier = Dir("*.*")

While monfichier <> ""
    Workbooks.Open monfichier
    monfichier = Dir()
Wend

End Sub


Maintenant, j'aimerais les ouvrir toutes dans la même feuille.
Aurais-tu une autre fonction utile en stock ? :p

Merci de ton aide
0
J'ai testé le code ci-dessus plusieurs fois et maintenant il ne marche plus... Alors que les lignes sont rigoureusement identiques et que le chemin proposé est le même ( copié collé pour ne pas avoir d'erreur).
Il va me cherche les fichiers dans 'mes documents'...
Je ne comprends plus.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 juin 2013 à 11:41
Bonjour,
- monfichier est le nom du fichier et non son chemin complet !
- assure-toi par ailleurs de ne pas ouvrir un fichier déjà ouvert


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 juin 2013 à 11:43
et ceci :
monfichier = Dir("*.*")

reste à espérer que ce dossier ne contient que des classeurs Excel !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Son chemin complet est renseigné ici(si j'ai bien compris ) : 

ChDir "C:\***" '*** correspond au repertoire où je vais chercher tous mes fichiers textes

Et dans ce répertoire, il n'y a que des fichiers texte que je souhaite ouvrir dans une seule feuille Excel ( Désolé si je n'ai pas été suffisamment clair ).
Et donc le code :
monfichier = Dir("*.*")
correspond à tous les fichiers qu'il va ouvrir à partir de mon répertoire que je lui ais indiqué ?
0
edit : Il n'y aurait que des fichiers textes à importer dans une feuille Excel ( et non des fichiers excel ).

Personne pour me renseigner ?
0
edit 2 : Sans explication aucune sauf plusieurs coups de pied dans l'unité centrale, j'ai réussi à ouvrir tous mes fichiers textes dans des feuilles excel. J'aimerai maintenant les ouvrir tous à la suite dans Une feuille EXcel. Quelqu'un peut-il m'aider svp ?
' Code Visual Basic anglais
Sub ouvrir_fichiers()
'l'instruction ChDir permet de se positionner
'sur un répertoire précis
ChDir "C:\TRAVAUX STAGIAIRE\autom rappro\test2"
monfichier = Dir("*.*")
While monfichier <> ""
Workbooks.Open monfichier
monfichier = Dir()
Wend
End Sub
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
2 juil. 2013 à 17:21
Bonjour,

Dans ta boucle While, tu dois ouvrir le fichier, déterminer la première ligne vide et y copier ton fichier. Par contre, dans ton code, on ne voit pas ce que tu fais de tes fichiers que tu ouvres... et ne fermes pas...

Si tu travailles avec des fichiers texte, regarde l'aide sur DataObject
Et utilise Open plutôt que workbooks.open

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
Rejoignez-nous