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+
 

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+
 

Pièces jointes

  • Classeur1.xls
    37 KB · Affichages: 115
  • Classeur1.xls
    37 KB · Affichages: 109
  • Classeur1.xls
    37 KB · Affichages: 111

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

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
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 924
Membres
101 841
dernier inscrit
ferid87