OVH Cloud OVH Cloud

Copie d'onglets

17 réponses
Avatar
ONGLET
Petit problème épineux :
Je dois copier plusieurs onglets (65) et les rassembler sous un seul
classeur xls.

Problème :
Les fameux 65 onglets sont présents dans autant de fichiers xls ...

Existe-il / Est-il possible d'automatiser la copie de ses onglets ? ... car
à l'heure actuelle, je dois ouvrir chaque fichier xls, puis faire une copie
de l'onglet vers le classeur où les 65 onglets seront rassembler ... long,
très long.

10 réponses

1 2
Avatar
anonymousA
bonjour,

c'est absolument automatisable sans grande difficulté sous réserve que

1- tu connaissses le chemin exact ( donc le nom complet) des fichiers à
ouvrir
2-tu connaisses le nom des onglets à copier
3-que tu gères le changement de nom des onglets s'ils portent tous le
même nom dans chacun des fichiers
4-que tu gères les erreurs eventuelles.
5-evidemment le fichier de réception des onglets doit être ouvert et tu
dois gérer l'effacement des anciens onglets si c'est toujours le m^me
fichier de réception des données

Si tu es prêt à tout celà, pas de problème,ca roule.

A+

Petit problème épineux :
Je dois copier plusieurs onglets (65) et les rassembler sous un seul
classeur xls.

Problème :
Les fameux 65 onglets sont présents dans autant de fichiers xls ...

Existe-il / Est-il possible d'automatiser la copie de ses onglets ? ... car
à l'heure actuelle, je dois ouvrir chaque fichier xls, puis faire une copie
de l'onglet vers le classeur où les 65 onglets seront rassembler ... long,
très long.


Avatar
Vader
Bonjour,

Et oui c'est bien ce qui me semblait. Il faut passer par de la prog. ,
j'avais déjà créé une macro dans ce sens, mais il était nécessaire de rentrer
manuellement le nom et chemin d'accès de chaque fichier xls, et finalement je
ne gagnais pas beaucoup de temps ... j'espèrais qu'il existe une solution
plus souple dans l'usage (le nom des 65 fichiers change à chaque
modification, tu es donc obligé de modifier la macro à chaque fois :-(

Merci quant même.


bonjour,

c'est absolument automatisable sans grande difficulté sous réserve que

1- tu connaissses le chemin exact ( donc le nom complet) des fichiers à
ouvrir
2-tu connaisses le nom des onglets à copier
3-que tu gères le changement de nom des onglets s'ils portent tous le
même nom dans chacun des fichiers
4-que tu gères les erreurs eventuelles.
5-evidemment le fichier de réception des onglets doit être ouvert et tu
dois gérer l'effacement des anciens onglets si c'est toujours le m^me
fichier de réception des données

Si tu es prêt à tout celà, pas de problème,ca roule.

A+

Petit problème épineux :
Je dois copier plusieurs onglets (65) et les rassembler sous un seul
classeur xls.

Problème :
Les fameux 65 onglets sont présents dans autant de fichiers xls ...

Existe-il / Est-il possible d'automatiser la copie de ses onglets ? ... car
à l'heure actuelle, je dois ouvrir chaque fichier xls, puis faire une copie
de l'onglet vers le classeur où les 65 onglets seront rassembler ... long,
très long.





Avatar
michdenis
Bonjour Onglet,

Est-ce que tes feuilles possèdent toutes le même nom ? Ont-ils toutes la même structure des données... si oui quelles sont les
colonnes utilisées ? Désires-tu seulement les données ou les formules des feuilles sources si il y en a dans le fichier final ?
Où sont tes fichiers, Tous dans le même répertoire ?

Salutations!


"ONGLET" a écrit dans le message de news:
Petit problème épineux :
Je dois copier plusieurs onglets (65) et les rassembler sous un seul
classeur xls.

Problème :
Les fameux 65 onglets sont présents dans autant de fichiers xls ...

Existe-il / Est-il possible d'automatiser la copie de ses onglets ? ... car
à l'heure actuelle, je dois ouvrir chaque fichier xls, puis faire une copie
de l'onglet vers le classeur où les 65 onglets seront rassembler ... long,
très long.
Avatar
anonymousA
re,

possible d'automatiser quand même si les fichiers sont dans le même
répertoire quand bien même ils auraient des noms différents à chaque fois.
Possible aussi si ce n'est pas dans le même répertoire de laisser
l'utilisateur choisir le répertoire puis d'explorer l'intégralité du
répertoire avec des critères d'extraction sur les fichiers Excel p.e.
En gros, tout est possible sous réserve d'avoir quelques invariants qui
permettent de programmer .

A+


Bonjour,

Et oui c'est bien ce qui me semblait. Il faut passer par de la prog. ,
j'avais déjà créé une macro dans ce sens, mais il était nécessaire de rentrer
manuellement le nom et chemin d'accès de chaque fichier xls, et finalement je
ne gagnais pas beaucoup de temps ... j'espèrais qu'il existe une solution
plus souple dans l'usage (le nom des 65 fichiers change à chaque
modification, tu es donc obligé de modifier la macro à chaque fois :-(

Merci quant même.


bonjour,

c'est absolument automatisable sans grande difficulté sous réserve que

1- tu connaissses le chemin exact ( donc le nom complet) des fichiers à
ouvrir
2-tu connaisses le nom des onglets à copier
3-que tu gères le changement de nom des onglets s'ils portent tous le
même nom dans chacun des fichiers
4-que tu gères les erreurs eventuelles.
5-evidemment le fichier de réception des onglets doit être ouvert et tu
dois gérer l'effacement des anciens onglets si c'est toujours le m^me
fichier de réception des données

Si tu es prêt à tout celà, pas de problème,ca roule.

A+

Petit problème épineux :
Je dois copier plusieurs onglets (65) et les rassembler sous un seul
classeur xls.

Problème :
Les fameux 65 onglets sont présents dans autant de fichiers xls ...

Existe-il / Est-il possible d'automatiser la copie de ses onglets ? ... car
à l'heure actuelle, je dois ouvrir chaque fichier xls, puis faire une copie
de l'onglet vers le classeur où les 65 onglets seront rassembler ... long,
très long.







Avatar
Vader
re,

Il reste effectivement des invariants : le n° interne de réf. (1 different
par fichier), et ils sont toujours stockés dans le même fichier ...

Le hic s'est que je débute en prog. et donc je rame un peu. Jusqu'ici
j'avais comme idée de créer une macro qui demande de selectionner tous les
fichiers à traiter (un genre de boite de dialogue avec possibilité de faire
de la selection multiple - ex : CRTL + Selection), mais quant à faire la
chose ... mais c'est le bon moyen de me lancer dans les macros.

@+


re,

possible d'automatiser quand même si les fichiers sont dans le même
répertoire quand bien même ils auraient des noms différents à chaque fois.
Possible aussi si ce n'est pas dans le même répertoire de laisser
l'utilisateur choisir le répertoire puis d'explorer l'intégralité du
répertoire avec des critères d'extraction sur les fichiers Excel p.e.
En gros, tout est possible sous réserve d'avoir quelques invariants qui
permettent de programmer .

A+


Bonjour,

Et oui c'est bien ce qui me semblait. Il faut passer par de la prog. ,
j'avais déjà créé une macro dans ce sens, mais il était nécessaire de rentrer
manuellement le nom et chemin d'accès de chaque fichier xls, et finalement je
ne gagnais pas beaucoup de temps ... j'espèrais qu'il existe une solution
plus souple dans l'usage (le nom des 65 fichiers change à chaque
modification, tu es donc obligé de modifier la macro à chaque fois :-(

Merci quant même.


bonjour,

c'est absolument automatisable sans grande difficulté sous réserve que

1- tu connaissses le chemin exact ( donc le nom complet) des fichiers à
ouvrir
2-tu connaisses le nom des onglets à copier
3-que tu gères le changement de nom des onglets s'ils portent tous le
même nom dans chacun des fichiers
4-que tu gères les erreurs eventuelles.
5-evidemment le fichier de réception des onglets doit être ouvert et tu
dois gérer l'effacement des anciens onglets si c'est toujours le m^me
fichier de réception des données

Si tu es prêt à tout celà, pas de problème,ca roule.

A+

Petit problème épineux :
Je dois copier plusieurs onglets (65) et les rassembler sous un seul
classeur xls.

Problème :
Les fameux 65 onglets sont présents dans autant de fichiers xls ...

Existe-il / Est-il possible d'automatiser la copie de ses onglets ? ... car
à l'heure actuelle, je dois ouvrir chaque fichier xls, puis faire une copie
de l'onglet vers le classeur où les 65 onglets seront rassembler ... long,
très long.









Avatar
Vader
Bonjour,

les feuilles ont des noms différents mais avec un n° de réf interne.
La structure est toujours la même.

Le truc s'est d'obtenir un cumul des fichiers de départ dans un sens et
unique fichier (1 onglet par fichier de départ - 65 fichiers -> 65 onglets).
Les onglets doivent être copiés tels quel pour les traitements futurs.

Merci,

Vad'



Bonjour Onglet,

Est-ce que tes feuilles possèdent toutes le même nom ? Ont-ils toutes la même structure des données... si oui quelles sont les
colonnes utilisées ? Désires-tu seulement les données ou les formules des feuilles sources si il y en a dans le fichier final ?
Où sont tes fichiers, Tous dans le même répertoire ?

Salutations!


"ONGLET" a écrit dans le message de news:
Petit problème épineux :
Je dois copier plusieurs onglets (65) et les rassembler sous un seul
classeur xls.

Problème :
Les fameux 65 onglets sont présents dans autant de fichiers xls ...

Existe-il / Est-il possible d'automatiser la copie de ses onglets ? ... car
à l'heure actuelle, je dois ouvrir chaque fichier xls, puis faire une copie
de l'onglet vers le classeur où les 65 onglets seront rassembler ... long,
très long.





Avatar
michdenis
Bonjour Vader,

Voici une procédure qui fera le travail.

Tu copies ce qui suit dans un module standard


Dans cette procédure,
Function TrouverLaFeuille(Wks As Workbook)

Il y a cette ligne de code qui doit trouver le " n° de réf interne"
If Sh.CodeName = "Feuil1"
Tu dois adapter !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Il est préférable d'être clair lorsque l'on pose une question dans son énoncé. L.'expression que tu utilises : "un n° de réf
interne" , Tu dois être le seul à savoir ce que c'est. Dis comme les gens à qui tu demandes de l'aide peuvent savoir ce que cela
veut dire ?

Renseigne adéquatement le répertoire dans lequel se retrouve tous tes fichiers.

'--------------------------------------
Sub Compilation()

Dim NomFichier As String
Dim Repertoire As String
Dim Wk As Workbook, Depart As String
Repertoire = "c:Atravail" 'à déterminer
NomFichier = Dir(Repertoire & "*.xls")

Application.ScreenUpdating = False
Depart = ThisWorkbook.Name
Set Wk = Workbooks.Add
Do
OuvrirFichier NomFichier, Wk
'NomFichier = Dir()
NomFichier = ""
Loop While NomFichier <> ""
Application.DisplayAlerts = False
Worksheets(Array("Feuil1", "Feuil2", "Feuil3")).Delete
Application.DisplayAlerts = True
Workbooks(Depart).Activate

End Sub
'--------------------------------------

Sub OuvrirFichier(NomComplet As String, Wk As Workbook)
Dim Dest As Workbook, Feuille As String
Set Dest = Workbooks.Open(NomComplet)
Feuille = TrouverLaFeuille(Dest)
If Feuille <> "" Then
Dest.Worksheets(Feuille).Copy _
after:=Wk.Sheets(Wk.Sheets.Count)
Dest.Close False
Else
MsgBox "Impossible de trouver ladite feuille" & _
vbCrLf & "Pour ce classeur : " & Dest.Name & ".", _
vbInformation + vbOKOnly, "Attention"
End If

End Sub
'--------------------------------------

Function TrouverLaFeuille(Wks As Workbook)
Dim Sh As Worksheet
For Each Sh In Wks.Worksheets
If Sh.CodeName = "Feuil1" Then 'à déterminer
TrouverLaFeuille = Sh.Name
Exit Function
End If
Next
End Function
'--------------------------------------



Salutations!



"Vader" a écrit dans le message de news:
Bonjour,

les feuilles ont des noms différents mais avec un n° de réf interne.
La structure est toujours la même.

Le truc s'est d'obtenir un cumul des fichiers de départ dans un sens et
unique fichier (1 onglet par fichier de départ - 65 fichiers -> 65 onglets).
Les onglets doivent être copiés tels quel pour les traitements futurs.

Merci,

Vad'



Bonjour Onglet,

Est-ce que tes feuilles possèdent toutes le même nom ? Ont-ils toutes la même structure des données... si oui quelles sont les
colonnes utilisées ? Désires-tu seulement les données ou les formules des feuilles sources si il y en a dans le fichier final ?
Où sont tes fichiers, Tous dans le même répertoire ?

Salutations!


"ONGLET" a écrit dans le message de news:
Petit problème épineux :
Je dois copier plusieurs onglets (65) et les rassembler sous un seul
classeur xls.

Problème :
Les fameux 65 onglets sont présents dans autant de fichiers xls ...

Existe-il / Est-il possible d'automatiser la copie de ses onglets ? ... car
à l'heure actuelle, je dois ouvrir chaque fichier xls, puis faire une copie
de l'onglet vers le classeur où les 65 onglets seront rassembler ... long,
très long.





Avatar
Vader
Merci Michdenis,

Je vais essayer ça demain !

Quant à ta remarque je l'aurai à l'esprit pour la prochaine fois ;-)

Ps : Ce n° il revient dans chaque nom de fichier xls ... il prends la forme
d'un code à 6 chiffres (ex : 102010). Et cela donne des nom de fichiers xxxx
N° xxxx (ex : Lyon 102010 Retour 1).


Bonjour Vader,

Voici une procédure qui fera le travail.

Tu copies ce qui suit dans un module standard


Dans cette procédure,
Function TrouverLaFeuille(Wks As Workbook)

Il y a cette ligne de code qui doit trouver le " n° de réf interne"
If Sh.CodeName = "Feuil1"
Tu dois adapter !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Il est préférable d'être clair lorsque l'on pose une question dans son énoncé. L.'expression que tu utilises : "un n° de réf
interne" , Tu dois être le seul à savoir ce que c'est. Dis comme les gens à qui tu demandes de l'aide peuvent savoir ce que cela
veut dire ?

Renseigne adéquatement le répertoire dans lequel se retrouve tous tes fichiers.

'--------------------------------------
Sub Compilation()

Dim NomFichier As String
Dim Repertoire As String
Dim Wk As Workbook, Depart As String
Repertoire = "c:Atravail" 'à déterminer
NomFichier = Dir(Repertoire & "*.xls")

Application.ScreenUpdating = False
Depart = ThisWorkbook.Name
Set Wk = Workbooks.Add
Do
OuvrirFichier NomFichier, Wk
'NomFichier = Dir()
NomFichier = ""
Loop While NomFichier <> ""
Application.DisplayAlerts = False
Worksheets(Array("Feuil1", "Feuil2", "Feuil3")).Delete
Application.DisplayAlerts = True
Workbooks(Depart).Activate

End Sub
'--------------------------------------

Sub OuvrirFichier(NomComplet As String, Wk As Workbook)
Dim Dest As Workbook, Feuille As String
Set Dest = Workbooks.Open(NomComplet)
Feuille = TrouverLaFeuille(Dest)
If Feuille <> "" Then
Dest.Worksheets(Feuille).Copy _
after:=Wk.Sheets(Wk.Sheets.Count)
Dest.Close False
Else
MsgBox "Impossible de trouver ladite feuille" & _
vbCrLf & "Pour ce classeur : " & Dest.Name & ".", _
vbInformation + vbOKOnly, "Attention"
End If

End Sub
'--------------------------------------

Function TrouverLaFeuille(Wks As Workbook)
Dim Sh As Worksheet
For Each Sh In Wks.Worksheets
If Sh.CodeName = "Feuil1" Then 'à déterminer
TrouverLaFeuille = Sh.Name
Exit Function
End If
Next
End Function
'--------------------------------------



Salutations!



"Vader" a écrit dans le message de news:
Bonjour,

les feuilles ont des noms différents mais avec un n° de réf interne.
La structure est toujours la même.

Le truc s'est d'obtenir un cumul des fichiers de départ dans un sens et
unique fichier (1 onglet par fichier de départ - 65 fichiers -> 65 onglets).
Les onglets doivent être copiés tels quel pour les traitements futurs.

Merci,

Vad'



Bonjour Onglet,

Est-ce que tes feuilles possèdent toutes le même nom ? Ont-ils toutes la même structure des données... si oui quelles sont les
colonnes utilisées ? Désires-tu seulement les données ou les formules des feuilles sources si il y en a dans le fichier final ?
Où sont tes fichiers, Tous dans le même répertoire ?

Salutations!


"ONGLET" a écrit dans le message de news:
Petit problème épineux :
Je dois copier plusieurs onglets (65) et les rassembler sous un seul
classeur xls.

Problème :
Les fameux 65 onglets sont présents dans autant de fichiers xls ...

Existe-il / Est-il possible d'automatiser la copie de ses onglets ? ... car
à l'heure actuelle, je dois ouvrir chaque fichier xls, puis faire une copie
de l'onglet vers le classeur où les 65 onglets seront rassembler ... long,
très long.










Avatar
Vader
Bonjour,

Je viens de passer ton code dans un module, cependant il me renvoi une
erreur ...

La ligne : Set Dest = Workbooks.Open(NomComplet) // ne renvoi pas vers un
fichier ... enfin, NomComplet renvoi vers "101050 Omifpro" (le 1er fichier de
la liste), mais Dest renvoi vers "Nothing".

A noter que je travail sous un excel US ...

Merci de ton aide.

Vad'

Ps : Le code que j'ai entré :

'--------------------------------------
Sub Compilation()

Dim NomFichier As String
Dim Repertoire As String
Dim Wk As Workbook, Depart As String
Repertoire = "C:Documents and SettingsatopsentMy DocumentsCPverifier"
'à déterminer
NomFichier = Dir(Repertoire & "*.xls")

Application.ScreenUpdating = False
Depart = ThisWorkbook.Name
Set Wk = Workbooks.Add
Do
OuvrirFichier NomFichier, Wk
'NomFichier = Dir()
NomFichier = ""
Loop While NomFichier <> ""
Application.DisplayAlerts = False
Worksheets(Array("Sheet1", "Sheet2", "Sheet3")).Delete
Application.DisplayAlerts = True
Workbooks(Depart).Activate

End Sub
'--------------------------------------

Sub OuvrirFichier(NomComplet As String, Wk As Workbook)
Dim Dest As Workbook, Feuille As String
Set Dest = Workbooks.Open(NomComplet)
Feuille = TrouverLaFeuille(Dest)
If Feuille <> "" Then
Dest.Worksheets(Feuille).Copy _
after:=Wk.Sheets(Wk.Sheets.Count)
Dest.Close False
Else
MsgBox "Impossible de trouver ladite feuille" & _
vbCrLf & "Pour ce classeur : " & Dest.Name & ".", _
vbInformation + vbOKOnly, "Attention"
End If

End Sub
'--------------------------------------

Function TrouverLaFeuille(Wks As Workbook)
Dim Sh As Worksheet
For Each Sh In Wks.Worksheets
If Sh.CodeName = "101050" Then 'à déterminer
TrouverLaFeuille = Sh.Name
Exit Function
End If
Next
End Function
'--------------------------------------






Bonjour Vader,

Voici une procédure qui fera le travail.

Tu copies ce qui suit dans un module standard


Dans cette procédure,
Function TrouverLaFeuille(Wks As Workbook)

Il y a cette ligne de code qui doit trouver le " n° de réf interne"
If Sh.CodeName = "Feuil1"
Tu dois adapter !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Il est préférable d'être clair lorsque l'on pose une question dans son énoncé. L.'expression que tu utilises : "un n° de réf
interne" , Tu dois être le seul à savoir ce que c'est. Dis comme les gens à qui tu demandes de l'aide peuvent savoir ce que cela
veut dire ?

Renseigne adéquatement le répertoire dans lequel se retrouve tous tes fichiers.

'--------------------------------------
Sub Compilation()

Dim NomFichier As String
Dim Repertoire As String
Dim Wk As Workbook, Depart As String
Repertoire = "c:Atravail" 'à déterminer
NomFichier = Dir(Repertoire & "*.xls")

Application.ScreenUpdating = False
Depart = ThisWorkbook.Name
Set Wk = Workbooks.Add
Do
OuvrirFichier NomFichier, Wk
'NomFichier = Dir()
NomFichier = ""
Loop While NomFichier <> ""
Application.DisplayAlerts = False
Worksheets(Array("Feuil1", "Feuil2", "Feuil3")).Delete
Application.DisplayAlerts = True
Workbooks(Depart).Activate

End Sub
'--------------------------------------

Sub OuvrirFichier(NomComplet As String, Wk As Workbook)
Dim Dest As Workbook, Feuille As String
Set Dest = Workbooks.Open(NomComplet)
Feuille = TrouverLaFeuille(Dest)
If Feuille <> "" Then
Dest.Worksheets(Feuille).Copy _
after:=Wk.Sheets(Wk.Sheets.Count)
Dest.Close False
Else
MsgBox "Impossible de trouver ladite feuille" & _
vbCrLf & "Pour ce classeur : " & Dest.Name & ".", _
vbInformation + vbOKOnly, "Attention"
End If

End Sub
'--------------------------------------

Function TrouverLaFeuille(Wks As Workbook)
Dim Sh As Worksheet
For Each Sh In Wks.Worksheets
If Sh.CodeName = "Feuil1" Then 'à déterminer
TrouverLaFeuille = Sh.Name
Exit Function
End If
Next
End Function
'--------------------------------------



Salutations!



"Vader" a écrit dans le message de news:
Bonjour,

les feuilles ont des noms différents mais avec un n° de réf interne.
La structure est toujours la même.

Le truc s'est d'obtenir un cumul des fichiers de départ dans un sens et
unique fichier (1 onglet par fichier de départ - 65 fichiers -> 65 onglets).
Les onglets doivent être copiés tels quel pour les traitements futurs.

Merci,

Vad'



Bonjour Onglet,

Est-ce que tes feuilles possèdent toutes le même nom ? Ont-ils toutes la même structure des données... si oui quelles sont les
colonnes utilisées ? Désires-tu seulement les données ou les formules des feuilles sources si il y en a dans le fichier final ?
Où sont tes fichiers, Tous dans le même répertoire ?

Salutations!


"ONGLET" a écrit dans le message de news:
Petit problème épineux :
Je dois copier plusieurs onglets (65) et les rassembler sous un seul
classeur xls.

Problème :
Les fameux 65 onglets sont présents dans autant de fichiers xls ...

Existe-il / Est-il possible d'automatiser la copie de ses onglets ? ... car
à l'heure actuelle, je dois ouvrir chaque fichier xls, puis faire une copie
de l'onglet vers le classeur où les 65 onglets seront rassembler ... long,
très long.










Avatar
michdenis
Bonjour Vader,

Utilise cette procédure en remplacement de celle portant le même nom contenuue dans le message d'hier.


'------------------------------
Sub Compilation()

Dim NomFichier As String
Dim Repertoire As String
Dim Wk As Workbook, Depart As String
Repertoire = "c:Excel" 'à déterminer
NomFichier = Dir(Repertoire & "*.xls")

Application.ScreenUpdating = False
Depart = ThisWorkbook.Name
Set Wk = Workbooks.Add

Do While NomFichier <> ""
OuvrirFichier NomFichier, Wk
NomFichier = Dir()
Loop

Application.DisplayAlerts = False
Worksheets(Array("Feuil1", "Feuil2", "Feuil3")).Delete
Application.DisplayAlerts = True
Workbooks(Depart).Activate

End Sub
'------------------------------


Salutations!



"Vader" a écrit dans le message de news:
Bonjour,

Je viens de passer ton code dans un module, cependant il me renvoi une
erreur ...

La ligne : Set Dest = Workbooks.Open(NomComplet) // ne renvoi pas vers un
fichier ... enfin, NomComplet renvoi vers "101050 Omifpro" (le 1er fichier de
la liste), mais Dest renvoi vers "Nothing".

A noter que je travail sous un excel US ...

Merci de ton aide.

Vad'

Ps : Le code que j'ai entré :

'--------------------------------------
Sub Compilation()

Dim NomFichier As String
Dim Repertoire As String
Dim Wk As Workbook, Depart As String
Repertoire = "C:Documents and SettingsatopsentMy DocumentsCPverifier"
'à déterminer
NomFichier = Dir(Repertoire & "*.xls")

Application.ScreenUpdating = False
Depart = ThisWorkbook.Name
Set Wk = Workbooks.Add
Do
OuvrirFichier NomFichier, Wk
'NomFichier = Dir()
NomFichier = ""
Loop While NomFichier <> ""
Application.DisplayAlerts = False
Worksheets(Array("Sheet1", "Sheet2", "Sheet3")).Delete
Application.DisplayAlerts = True
Workbooks(Depart).Activate

End Sub
'--------------------------------------

Sub OuvrirFichier(NomComplet As String, Wk As Workbook)
Dim Dest As Workbook, Feuille As String
Set Dest = Workbooks.Open(NomComplet)
Feuille = TrouverLaFeuille(Dest)
If Feuille <> "" Then
Dest.Worksheets(Feuille).Copy _
after:=Wk.Sheets(Wk.Sheets.Count)
Dest.Close False
Else
MsgBox "Impossible de trouver ladite feuille" & _
vbCrLf & "Pour ce classeur : " & Dest.Name & ".", _
vbInformation + vbOKOnly, "Attention"
End If

End Sub
'--------------------------------------

Function TrouverLaFeuille(Wks As Workbook)
Dim Sh As Worksheet
For Each Sh In Wks.Worksheets
If Sh.CodeName = "101050" Then 'à déterminer
TrouverLaFeuille = Sh.Name
Exit Function
End If
Next
End Function
'--------------------------------------






Bonjour Vader,

Voici une procédure qui fera le travail.

Tu copies ce qui suit dans un module standard


Dans cette procédure,
Function TrouverLaFeuille(Wks As Workbook)

Il y a cette ligne de code qui doit trouver le " n° de réf interne"
If Sh.CodeName = "Feuil1"
Tu dois adapter !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Il est préférable d'être clair lorsque l'on pose une question dans son énoncé. L.'expression que tu utilises : "un n° de réf
interne" , Tu dois être le seul à savoir ce que c'est. Dis comme les gens à qui tu demandes de l'aide peuvent savoir ce que cela
veut dire ?

Renseigne adéquatement le répertoire dans lequel se retrouve tous tes fichiers.

'--------------------------------------
Sub Compilation()

Dim NomFichier As String
Dim Repertoire As String
Dim Wk As Workbook, Depart As String
Repertoire = "c:Atravail" 'à déterminer
NomFichier = Dir(Repertoire & "*.xls")

Application.ScreenUpdating = False
Depart = ThisWorkbook.Name
Set Wk = Workbooks.Add
Do
OuvrirFichier NomFichier, Wk
'NomFichier = Dir()
NomFichier = ""
Loop While NomFichier <> ""
Application.DisplayAlerts = False
Worksheets(Array("Feuil1", "Feuil2", "Feuil3")).Delete
Application.DisplayAlerts = True
Workbooks(Depart).Activate

End Sub
'--------------------------------------

Sub OuvrirFichier(NomComplet As String, Wk As Workbook)
Dim Dest As Workbook, Feuille As String
Set Dest = Workbooks.Open(NomComplet)
Feuille = TrouverLaFeuille(Dest)
If Feuille <> "" Then
Dest.Worksheets(Feuille).Copy _
after:=Wk.Sheets(Wk.Sheets.Count)
Dest.Close False
Else
MsgBox "Impossible de trouver ladite feuille" & _
vbCrLf & "Pour ce classeur : " & Dest.Name & ".", _
vbInformation + vbOKOnly, "Attention"
End If

End Sub
'--------------------------------------

Function TrouverLaFeuille(Wks As Workbook)
Dim Sh As Worksheet
For Each Sh In Wks.Worksheets
If Sh.CodeName = "Feuil1" Then 'à déterminer
TrouverLaFeuille = Sh.Name
Exit Function
End If
Next
End Function
'--------------------------------------



Salutations!



"Vader" a écrit dans le message de news:
Bonjour,

les feuilles ont des noms différents mais avec un n° de réf interne.
La structure est toujours la même.

Le truc s'est d'obtenir un cumul des fichiers de départ dans un sens et
unique fichier (1 onglet par fichier de départ - 65 fichiers -> 65 onglets).
Les onglets doivent être copiés tels quel pour les traitements futurs.

Merci,

Vad'



Bonjour Onglet,

Est-ce que tes feuilles possèdent toutes le même nom ? Ont-ils toutes la même structure des données... si oui quelles sont les
colonnes utilisées ? Désires-tu seulement les données ou les formules des feuilles sources si il y en a dans le fichier final ?
Où sont tes fichiers, Tous dans le même répertoire ?

Salutations!


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

Petit problème épineux :
Je dois copier plusieurs onglets (65) et les rassembler sous un seul
classeur xls.

Problème :
Les fameux 65 onglets sont présents dans autant de fichiers xls ...

Existe-il / Est-il possible d'automatiser la copie de ses onglets ? ... car
à l'heure actuelle, je dois ouvrir chaque fichier xls, puis faire une copie
de l'onglet vers le classeur où les 65 onglets seront rassembler ... long,
très long.










1 2