Déplacer plusieurs feuilles de plusieurs fichiers dans 1 fichier

G vincent

XLDnaute Nouveau
Slt au forum,

Voilà, j'ai besoin de faire une macro. Qui permet d'ouvrir plusieurs fichiers textes. Puis pour chacun d'entre eux de copier toutes les feuilles qu'ils contiennent dans un nouveau fichier.A noter que je ne connaît ni le nom des fichiers ni le nom des feuilles. Mais je n'y arrive pas, car il va me cherher des feuilles qui nexiste pas. Et voilà le code que j'ai écrit pour savoir ce qui passe:

Sub ouvre_fichier()
Application.Dialogs(xlDialogOpen).Show

End Sub
Sub générale()
Dim c As Workbook
Dim f As Worksheet

Application.Run "ouvre_fichier"
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="C:\mesure\essai.xls", FileFormat:=xlNormal
For Each c In Workbooks
MsgBox c.Name
For Each f In Worksheets
MsgBox f.Name
Next
Next
End Sub

Résultat, dans chaque fichier il trouve feuil1,2,3 alors qu'il y en a qu'1 ou même si elles n'ont pas ces noms.

Merci d'avance au forum et à tous ce qui m'auront aidé,
cordialement G vincent.
 

mromain

XLDnaute Barbatruc
Re : Déplacer plusieurs feuilles de plusieurs fichiers dans 1 fichier

Slt au forum,

Voilà, j'ai besoin de faire une macro. Qui permet d'ouvrir plusieurs fichiers textes. Puis pour chacun d'entre eux de copier toutes les feuilles qu'ils contiennent dans un nouveau fichier.A noter que je ne connaît ni le nom des fichiers ni le nom des feuilles. Mais je n'y arrive pas, car il va me cherher des feuilles qui nexiste pas. Et voilà le code que j'ai écrit pour savoir ce qui passe:

......
bonjour G vincent,

comment sont structurés tes fichiers textes ?
comment peuvent-ils avoir plusieurs feuilles ?

a+
 

G vincent

XLDnaute Nouveau
Re : Déplacer plusieurs feuilles de plusieurs fichiers dans 1 fichier

Bonjour Mromain,

Effectivement les fichiers textes non qu'une seule feuille. Et ces fichiers sont de fichiers ASCII.
 

mromain

XLDnaute Barbatruc
Re : Déplacer plusieurs feuilles de plusieurs fichiers dans 1 fichier

re bonjour,

les données sont séparées avec des , ou des ; ?
les fichiers textes sont-ils tous dans le même répertoire ?
(et enfin :)) Si oui, est-ce que le répertoire en question ne contient que ces fichiers ?

à te relire

a+
 

G vincent

XLDnaute Nouveau
Re : Déplacer plusieurs feuilles de plusieurs fichiers dans 1 fichier

Les fichiers ont tous pour séparateur ,

Ils ne sont pas tous nécessairement dans le même répertoire et les répertoires ou ils se trouvent ne contiennent pas que ces fichiers la.
 

mromain

XLDnaute Barbatruc
Re : Déplacer plusieurs feuilles de plusieurs fichiers dans 1 fichier

re,

voici un exemple, qui ouvre une boite de dialogue pour chaque fichier à récupérer.
fermer cette boite de dialogue pour stopper l'import.

a+
 

Fichiers joints

G vincent

XLDnaute Nouveau
Re : Déplacer plusieurs feuilles de plusieurs fichiers dans 1 fichier

Merci beaucoup pour ta solution mromain mais l'extension n'est la bonne. Mon fextension est .lay
 

mromain

XLDnaute Barbatruc
Re : Déplacer plusieurs feuilles de plusieurs fichiers dans 1 fichier

re,

dans la macro, tu remplaces la ligne
Code:
textFileName = Application.GetOpenFilename(filefilter:="[B][COLOR=Red]Fichier CSV, *.csv;*.txt[/COLOR][/B]")
par
Code:
textFileName = Application.GetOpenFilename(filefilter:="[COLOR=Red][B]Fichier, *.*[/B][/COLOR]")
a+
 
Dernière édition:

G vincent

XLDnaute Nouveau
Re : Déplacer plusieurs feuilles de plusieurs fichiers dans 1 fichier

Merci beaucoup pour ton aide mromain, je viens de faire la modif, sa à l'air de marcher.Je me pencherai sur le code plutard.Merci encore.

A+
 

G vincent

XLDnaute Nouveau
Re : Déplacer plusieurs feuilles de plusieurs fichiers dans 1 fichier

Bonjour Mromaim,

Ton code marche très bien, mais ne serait-il pas possible de pouvoir sélectionner plusieurs fichiers à la fois et de les récupérer tous en même temps?

Cordialement Gvincent.
 

mromain

XLDnaute Barbatruc
Re : Déplacer plusieurs feuilles de plusieurs fichiers dans 1 fichier

bonjour G vincent,

essaye en remplaçant la macro "import" avec celle-là
Code:
Sub import()
Dim lesFichiers, i As Integer
lesFichiers = Application.GetOpenFilename("Fichier, *.*", , , , True)
For i = LBound(lesFichiers) To UBound(lesFichiers)
    ThisWorkbook.Sheets.Add after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    rep = CsvToXls(ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count), lesFichiers(i))
Next i
End Sub
a+
 

G vincent

XLDnaute Nouveau
Re : Déplacer plusieurs feuilles de plusieurs fichiers dans 1 fichier

slt,

J'ai remplacé la Sub import par la nouvelle, et lorsque je la lance il me surligne
LesFichiers dans la ligne rep= et la boîte d'erreur dit erreur de compilation, Type d'argument ByRef incompatible.

Cordialement G vincent,
 

mromain

XLDnaute Barbatruc
Re : Déplacer plusieurs feuilles de plusieurs fichiers dans 1 fichier

re,

essaye avec ça :
Code:
Sub import()
Dim lesFichiers, i As Integer
lesFichiers = Application.GetOpenFilename("Fichier, *.*", , , , True)
For i = LBound(lesFichiers) To UBound(lesFichiers)
    ThisWorkbook.Sheets.Add after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    rep = CsvToXls(ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count), [COLOR=Red][B]CStr([/B][/COLOR]lesFichiers(i)[B][COLOR=Red][B])[/B][/COLOR][/B]
)
Next i
a+
End Sub
 

G vincent

XLDnaute Nouveau
Re : Déplacer plusieurs feuilles de plusieurs fichiers dans 1 fichier

:) super c'est nickel:) ! Merci, merci et encore merci pour ton aide.

Cordialemnt G vincent.

A+
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas