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

Signaler
Messages postés
3
Date d'inscription
lundi 1 janvier 2007
Statut
Membre
Dernière intervention
26 février 2009
-
Messages postés
3
Date d'inscription
lundi 1 janvier 2007
Statut
Membre
Dernière intervention
26 février 2009
-
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

Messages postés
219
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
20 décembre 2010

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
Messages postés
3
Date d'inscription
lundi 1 janvier 2007
Statut
Membre
Dernière intervention
26 février 2009

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...
Messages postés
219
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
20 décembre 2010

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
Messages postés
3
Date d'inscription
lundi 1 janvier 2007
Statut
Membre
Dernière intervention
26 février 2009

Merci beaucoup,

je vais adapter et tester ton code.

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