OVH Cloud OVH Cloud

Transformer des classeurs existants en feuilles

7 réponses
Avatar
maxoge
Bonjour à tous,

J'ai plusieurs fichiers excels (classeurs) que je voudrais transformer en un
seul comprenant plusieures feuilles
J'ai 30 fichiers execls que je voudrais transformer en un classeur
comprenant 30 feuilles.

I would like to transform 30 excel files into only one with 30 sheets.

Merci
--
Ogier thomas

7 réponses

Avatar
michdenis
Bonjour Maxoge,

Est-ce que tes 30 classeurs contiennent le même nombre de feuilles ?
Est-ce que les données de tes feuilles ont la même structure organisationnelle ?
Est-ce que tes classeurs sont dans le même répertoire du disque dur ?

Que veux-tu obtenir ?
Seulement un nouveau classeur contenant l'ensemble des feuilles des 30 autres fichiers ?
Que fait-on avec les feuilles qui pourraient avoir le même nom ?

Tout ceci pour te dire que ta question manque de précision et qu'il ne faut pas
être trop timide quand vient le temps de décrire son environnement de travail.


Salutations!





"maxoge" a écrit dans le message de news:

Bonjour à tous,

J'ai plusieurs fichiers excels (classeurs) que je voudrais transformer en un
seul comprenant plusieures feuilles
J'ai 30 fichiers execls que je voudrais transformer en un classeur
comprenant 30 feuilles.

I would like to transform 30 excel files into only one with 30 sheets.

Merci
--
Ogier thomas
Avatar
maxoge
En fait j ai 30 classeurs qui contiennent une seule feuille nommer 1, et je
voudrais faire un classeur avec 30 feuilles. Concernant leur nom cela m est
egal. Ces feuilles contiennent quelques formules et essentiellement du texte.

J espere que maintenant vous avez assez d info pour m aider
Thomas
Avatar
michdenis
BonjourMaxoge,

Tu peux utiliser quelque chose comme ceci :

Tu dois indiquer le répertoire où sont tes fichiers :
Repertoire = "c:Atravail"

J'ai supposé que tous les fichiers .xls devaient être traités.

'--------------------------------
Sub reunirFeuilles()

Dim A As Integer
Dim Repertoire As String
Dim Fichier As String
Dim Wk As Workbook

Repertoire = "c:Atravail"
Set Wk = ThisWorkbook

Fichier = Dir(Repertoire & "*.xls")
Application.ScreenUpdating = False
Do While Fichier <> ""
Workbooks.Open Fichier
With ActiveWorkbook
.Worksheets.Copy after:=Wk.Sheets(Wk.Sheets.Count)
.Close False
End With
Fichier = Dir()
Loop
Set Wk = Nothing
End Sub
'--------------------------------


Salutations!


"maxoge" a écrit dans le message de news:

En fait j ai 30 classeurs qui contiennent une seule feuille nommer 1, et je
voudrais faire un classeur avec 30 feuilles. Concernant leur nom cela m est
egal. Ces feuilles contiennent quelques formules et essentiellement du texte.

J espere que maintenant vous avez assez d info pour m aider
Thomas
Avatar
maxoge
Je pense que ca marche, mais etant donné que les feuilles ont le meme nom ,
il les ecrase toutes. Donc a la fin je me retrouve avec une seule feuille
dans mon classeur.

Merci pour ton aide
Avatar
michdenis
Bonjour Maxoge,

Je crois que tout simplement que ton classeur dans lequel
tu copies tes feuilles est dans le même répertoire que les
autres fichiers.

Essaie plutôt ceci :
'------------------------
Sub reunirFeuilles()

Dim A As Integer
Dim Repertoire As String
Dim Fichier As String
Dim Wk As Workbook

Repertoire = "c:Atravail"
Set Wk = Workbooks.Add(xlWBATWorksheet)

Fichier = Dir(Repertoire & "*.xls")
Application.ScreenUpdating = False
Do While Fichier <> ""
Workbooks.Open Fichier
With ActiveWorkbook
.Worksheets.Copy after:=Wk.Sheets(Wk.Sheets.Count)
.Close False
End With
Fichier = Dir()
Loop
Application.DisplayAlerts = False
Wk.Sheets(1).Delete
Application.DisplayAlerts = True
End Sub
'-------------------------


Salutations!


"maxoge" a écrit dans le message de news:
Je pense que ca marche, mais etant donné que les feuilles ont le meme nom ,
il les ecrase toutes. Donc a la fin je me retrouve avec une seule feuille
dans mon classeur.

Merci pour ton aide
Avatar
maxoge
c'est plus compliqué que je pensais, tant pis si cela ne marche pas je vais
devoir faire des 100 de copier coller.
Maintenant, j ai reussi a le faire un petit peu fonctionner, seulement si je
copie mes fichiers sur la racine 'c:' , il me creait autant de feuilles que
de classeur present sur
C, mais une seule feuilles contient des données (fausses, une serie de
chiffre), et les autres feuilles sont totalement vide.

Thomas
Avatar
JB
Bonjour,

On suppose que les classeurs sont dans le même répertoire que le
classeur maître.

Sub essai()
ChDir ActiveWorkbook.Path
Set classeurMaitre = ActiveWorkbook
nf = Dir("*.xls")
Do While nf <> "" And nf <> classeurMaitre.Name
Workbooks.Open Filename:=nf
Sheets(1).Copy
After:=classeurMaitre.Sheets(classeurMaitre.Sheets.Count)
Workbooks(nf).Close False
nf = Dir
Loop
End Sub

Cordialement JB