Ouverture de plusieurs fichiers txt et csv dans plusieurs feuilles d'un même cla

nix31 Messages postés 3 Date d'inscription lundi 1 janvier 2007 Statut Membre Dernière intervention 26 février 2009 - 25 févr. 2009 à 17:53
nix31 Messages postés 3 Date d'inscription lundi 1 janvier 2007 Statut Membre Dernière intervention 26 février 2009 - 26 févr. 2009 à 13:00
Bonjour à tous,

Etant débutant j'ai regardé les différents postes (j'ai même fais des recherches sur Goo...le) mais je n'ai pas pu trouver comment ouvrir plusieurs fichiers (une dizaine...) dans plusieurs feuilles Excel d'un même classeur, en VBA (si quelqu'un peut répondre en vbscript et ou vb).

Pour le moment j'arrive à ouvrir un fichier dans Excel (en vbs et en vba) (rien de trés compliqué dirons les pro, mais pour moi c'est déjà une belle victoir)
CODE
Dim appxl

Set appXl = CreateObject("Excel.Application")
 'Nom du fichier à ouvrir, ici "resultat.txt"
 appXl.Workbooks.Open("D:\SCRIPTS\Fichiers\resultat.txt")
appXl.Visible = True
appXl.Application.EnableEvents = True
 
 'Pour lancer une macro à partir du script, ajouter le chemin ou se trouve la macro
'appXl.run "mamacro"
 
appXl.Save "D:\SCRIPTS\Fichiers\test1.xls"
 
appXl.Application.EnableEvents = False
 
 'Pour quitter l'appli enlever le commentaire de la ligne en dessous
'appXl.Quit
 
Set appXl = Nothing

Alors si quelqu'un peut m'aider ce serait cool.
Je résume mon problème, j'aimerais "juste" ouvrir plusieurs fichiers dans plusieurs onglet d'un classeur Excel.

Merci

Debutant, tous l'ont été mais beaucoup l'ont oubliés...

4 réponses

cnt Messages postés 219 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 20 décembre 2010 1
25 févr. 2009 à 19:51
Bonsoir
Je te soumets un exemple que j'avais créer pour ouvrir un seul fichier "CSV", après l'ouverture celui-ci était copié dans le classeur actif, et refermé sans message de sauvegarde à la fermeture du classeur recevant ce dit fichier "CSV"
'-------- Ouverture du nouveau fichier de données -------------
            Workbooks.Open fichieraouvrir, 0, True
            Application.AskToUpdateLinks = False
            ActiveSheet.Copy before:=Workbooks(ClasseurActif).Sheets(1)
            ActiveWorkbook.ActiveSheet.Name = "Feuil1" ou NomFeuilles(i)
            ActiveWorkbook.ActiveSheet.Visible = False
            Workbooks(fich).Close False

Avec un bouclage sur le nombre de fichiers, cela devrait suffire
J'espère avoir été clair.
Salut
CNTJC
0
nix31 Messages postés 3 Date d'inscription lundi 1 janvier 2007 Statut Membre Dernière intervention 26 février 2009
25 févr. 2009 à 23:49
Merci pour la piste.

Je pensais bien qu'il fallait une boucle, le problème c'est que je ne sais pas "attaqué" le 2eme feuille d'Excel. Lors de mes essai cela m'ouvrait les fichiers dans un autre classeur, est c'est bien la le problème.

Debutant, tous l'ont été mais beaucoup l'ont oubliés...
0
cnt Messages postés 219 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 20 décembre 2010 1
26 févr. 2009 à 11:03
Bonjour
Je te propose cette version de copie de fichiers "CSV" dans un classeur d'accueil, à toi de l'adapter pour tes besoins.

Sub CopieCSV()
    Dim FichieraOuvrir As String, Fichier As String, monNom As String, Chemin As String
    Dim TB_Fichiers() As String, i As Byte
   
    'Mise en tableau des noms des fichiers "CSV"
    ReDim TB_Fichiers(1 To 2)
    TB_Fichiers(1) = "Fichier1.csv"
    TB_Fichiers(2) = "Fichier2.csv"
   
    Application.AskToUpdateLinks = False
    With ActiveWorkbook
        Chemin = .Path  'Chemin fichier d'accueil
        monNom = .Name  'Nom fichier d'accueil
    End With
   
    ' Bouclage sur le nombre de fichiers "CSV"
    For i = 1 To UBound(TB_Fichiers)
        Fichier = TB_Fichiers(i)
        FichieraOuvrir = Chemin & "" & Fichier
       
        Workbooks.Open FichieraOuvrir, 0, True
        ActiveSheet.Copy before:=Workbooks(monNom).Sheets(1)
        ActiveWorkbook.ActiveSheet.Name = "Feuil" & CStr(i)
        Workbooks(Fichier).Close False
    Next i
'
End Sub

Voila de quoi alimenter la machine.
Bonne journée.

CNTJC
0
nix31 Messages postés 3 Date d'inscription lundi 1 janvier 2007 Statut Membre Dernière intervention 26 février 2009
26 févr. 2009 à 13:00
Merci beaucoup,

je vais adapter et tester ton code.

Debutant, tous l'ont été mais beaucoup l'ont oubliés...
0