Ouvrir plusieurs .txt avec excel

Résolu/Fermé
popoye - 17 avril 2008 à 11:57
 popoye - 17 avril 2008 à 15:46
Bonjour,

Je voudrais ouvrir plusieurs fichiers texte à la suite dans une page excel.
Je suis arriver à ouvrir mes fichiers dans plusieurs classeur différents mais impossible de le faire dans une seule et meme page.

Set fichcherche = Application.FileSearch
With fichcherche
    .LookIn = ActiveWorkbook.Path
    .Filename = "*.txt"
    If .Execute > 0 Then
        For I = 1 To .FoundFiles.Count
            Workbooks.OpenText Filename:=.FoundFiles(I)
            
        Next I
    Else
        MsgBox "Aucun fichier n'a été trouvé."
    End If
   
End With
A voir également:

2 réponses

LePierre Messages postés 249 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 2 août 2012 338
17 avril 2008 à 13:35
bonjour

après ouverture de ton 2ème classeur, il faut déplacer la feuille dans ton 1er classeur
voici par exemple un code obtenu avec l'enregistreur de macro :
Sheets("Feuil1").Select
Sheets("Feuil1").Move Before:=Workbooks("Classeur1.xls").Sheets(1)

à plus
0
Merci pour ta réponse.
Mais j'ai pas trop compris je dois mettre ça dans ma boucle 'For' ?
0
LePierre Messages postés 249 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 2 août 2012 338
17 avril 2008 à 14:30
je n'ai pas testé mais en mettant cette commande après "Workbooks.OpenText Filename:=.FoundFiles(I)", tu vas transférer l'onglet concerné dans ton classeur1.xls.
Il faudra ensuite refermer (voir close) ton classeur txt.
et ainsi de suite pour les autres classeurs txt puisque placé dans la boucle

Si tu rencontres des problèmes, dis le moi, je ferai un bout de programme pour tester.

à plus
0
popoye > LePierre Messages postés 249 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 2 août 2012
17 avril 2008 à 14:41
J'ai testé mais j'ai une erreur qui apparait.

Voila ce que j'ai mis:

Set fichcherche = Application.FileSearch
With fichcherche
    .LookIn = ActiveWorkbook.Path
    .Filename = "*.txt"
    If .Execute > 0 Then
        For I = 1 To .FoundFiles.Count
            Workbooks.OpenText Filename:=.FoundFiles(I)
            Sheets(.FoundFiles(I)).Select
            Sheets(.FoundFiles(I)).Move Before:=Workbooks("Cartelucent.xls").Sheets(1)
            Sheets(.FoundFiles(I)).Close
            
        Next I
    Else
        MsgBox "Aucun fichier n'a été trouvé."
    End If


Je pense que l'erreur vient de la façon dont j'appelle la feuille mais je ne vois pas comment faire autrement.
0
LePierre Messages postés 249 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 2 août 2012 338 > popoye
17 avril 2008 à 15:34
bonjour

voici le code rectifié et testé :
Sub test()
    ClasseurRéférence = ActiveWorkbook.Name
    
    Set fichcherche = Application.FileSearch
    x = fichcherche.FoundFiles.Count
    With fichcherche
        .LookIn = ActiveWorkbook.Path
        .Filename = "*.txt"
        If .Execute > 0 Then
            For i = 1 To .FoundFiles.Count
                Workbooks.OpenText Filename:=.FoundFiles(i)
                ActiveSheet.Move Before:=Workbooks(ClasseurRéférence).Sheets(1)
            Next i
        Else
            MsgBox "Aucun fichier n'a été trouvé."
        End If
    End With
End Sub

la procédure de fermeture du fichier ne servait à rien puisque le fichier txt ne contient qu'une feuille. Le fait de la transférer dans classeur1.xls ferme de fait ce fichier txt.
à plus
0
popoye > LePierre Messages postés 249 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 2 août 2012
17 avril 2008 à 15:46
ok merci beaucoup pour l'aide ça fonctionne
0