Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Reunir plusieurs fichiers excel, Macro ?

2 réponses
Avatar
Help Me
Bonjour,

J'ai plusieurs fichiers excels :
- 1er cas de figure, les fichiers xls ont 1 seul onglet.
je souhaiterai avoir une macro pour les réunir en 1 seul xls avec 1 nouvel
onglet par ancien xls et que le nom du nouvel onglet porte le nom du fichier
xls (sans l'extension)

- 2eme cas de figure, les fichiers xls ont chacun plusieurs onglet
je souhaiterai avoir une macro pour les réunir en 1 seul xls et que chaque
onglet des anciens fichiers séparés soient renommé avec le nom du fichier
xls (sans l'extension) puis incrémenté avec 2, 3, 4 etc.... s'il y en a
plusieurs (onglets d'origine)

J'espère ne pas avoir été trop brouillon

Merci

2 réponses

Avatar
Patrick BASTARD
Bonjour, *Help Me*

Pour la première partie de ta question (onglets uniques) :

J'utilise cette macro, qui doit pouvoir être optimisée, pour copier les
onglets uniques (portant le même nom que chacun des classeurs 91.XLS,
92.XLS,93.XLS, 121.XLS...) après l'onglet unique du classeur "HD.XLS"
ps : les feuilles à copier résultent d'une requête, et sont enregistrées
sous format texte. Si ce n'est pas le cas, élague.
Pour info, tout est dans le même répertoire, et la macro est dans un module.
Si cela peut te dépanner...
============================================================ Sub CréeOnglets()
'
' Ouvre les requêtes , les colle sous forme d'onglets dans le classeur, et
referme les requêtes sans les modifier
' Macro enregistrée le 06/06/2005 par P. BASTARD avec l'enregistreur de
macro

Workbooks.OpenText Filename:¬tiveWorkbook.Path & "/91.XLS", Origin:= _
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:úlse,
_
Comma:úlse, Space:úlse, Other:úlse, FieldInfo:=Array(Array(1, 1),
_
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1),
Array(7, 1), Array(8, 1), _
Array(9, 1), Array(10, 1), Array(11, 1)), TrailingMinusNumbers:=True
Windows("91.XLS").Activate
Sheets("91").Select
Sheets("91").Copy After:=Workbooks("HD.xls").Sheets(1)
Windows("91.XLS").Activate
ActiveWorkbook.Close

Workbooks.OpenText Filename:¬tiveWorkbook.Path & "/92.XLS", Origin:= _
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:úlse,
_
Comma:úlse, Space:úlse, Other:úlse, FieldInfo:=Array(Array(1, 1),
_
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1),
Array(7, 1), Array(8, 1), _
Array(9, 1), Array(10, 1), Array(11, 1)), TrailingMinusNumbers:=True
Windows("92.XLS").Activate
Sheets("92").Select
Sheets("92").Copy After:=Workbooks("HD.xls").Sheets(2)
Windows("92.XLS").Activate
ActiveWorkbook.Close

Workbooks.OpenText Filename:¬tiveWorkbook.Path & "/93.XLS", Origin:= _
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:úlse,
_
Comma:úlse, Space:úlse, Other:úlse, FieldInfo:=Array(Array(1, 1),
_
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1),
Array(7, 1), Array(8, 1), _
Array(9, 1), Array(10, 1), Array(11, 1)), TrailingMinusNumbers:=True
Windows("93.XLS").Activate
Sheets("93").Select
Sheets("93").Copy After:=Workbooks("HD.xls").Sheets(3)
Windows("93.XLS").Activate
ActiveWorkbook.Close

Workbooks.OpenText Filename:¬tiveWorkbook.Path & "/121.XLS", Origin:=
_
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:úlse,
_
Comma:úlse, Space:úlse, Other:úlse, FieldInfo:=Array(Array(1, 1),
_
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1),
Array(7, 1), Array(8, 1), _
Array(9, 1), Array(10, 1), Array(11, 1)), TrailingMinusNumbers:=True
Windows("121.XLS").Activate
Sheets("121").Select
Sheets("121").Copy After:=Workbooks("HD.xls").Sheets(4)
Windows("121.XLS").Activate
ActiveWorkbook.Close
...

End Sub
=================================================
--
Bien amicordialement,
P. Bastard
Bonjour,

J'ai plusieurs fichiers excels :
- 1er cas de figure, les fichiers xls ont 1 seul onglet.
je souhaiterai avoir une macro pour les réunir en 1 seul xls avec 1
nouvel onglet par ancien xls et que le nom du nouvel onglet porte le
nom du fichier xls (sans l'extension)

- 2eme cas de figure, les fichiers xls ont chacun plusieurs onglet
je souhaiterai avoir une macro pour les réunir en 1 seul xls et que
chaque onglet des anciens fichiers séparés soient renommé avec le nom
du fichier xls (sans l'extension) puis incrémenté avec 2, 3, 4
etc.... s'il y en a plusieurs (onglets d'origine)

J'espère ne pas avoir été trop brouillon

Merci


Avatar
Help Me
bien reçu
Je teste ça...
Merci beaucoup

"Patrick BASTARD" a écrit dans le
message de news: %
Bonjour, *Help Me*

Pour la première partie de ta question (onglets uniques) :

J'utilise cette macro, qui doit pouvoir être optimisée, pour copier les
onglets uniques (portant le même nom que chacun des classeurs 91.XLS,
92.XLS,93.XLS, 121.XLS...) après l'onglet unique du classeur "HD.XLS"
ps : les feuilles à copier résultent d'une requête, et sont enregistrées
sous format texte. Si ce n'est pas le cas, élague.
Pour info, tout est dans le même répertoire, et la macro est dans un
module.
Si cela peut te dépanner...
============================================================ > Sub CréeOnglets()
'
' Ouvre les requêtes , les colle sous forme d'onglets dans le classeur, et
referme les requêtes sans les modifier
' Macro enregistrée le 06/06/2005 par P. BASTARD avec l'enregistreur de
macro

Workbooks.OpenText Filename:¬tiveWorkbook.Path & "/91.XLS", Origin:=
_
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True,
Semicolon:úlse, _
Comma:úlse, Space:úlse, Other:úlse, FieldInfo:=Array(Array(1, 1),
_
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1),
Array(7, 1), Array(8, 1), _
Array(9, 1), Array(10, 1), Array(11, 1)), TrailingMinusNumbers:=True
Windows("91.XLS").Activate
Sheets("91").Select
Sheets("91").Copy After:=Workbooks("HD.xls").Sheets(1)
Windows("91.XLS").Activate
ActiveWorkbook.Close

Workbooks.OpenText Filename:¬tiveWorkbook.Path & "/92.XLS", Origin:=
_
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True,
Semicolon:úlse, _
Comma:úlse, Space:úlse, Other:úlse, FieldInfo:=Array(Array(1, 1),
_
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1),
Array(7, 1), Array(8, 1), _
Array(9, 1), Array(10, 1), Array(11, 1)), TrailingMinusNumbers:=True
Windows("92.XLS").Activate
Sheets("92").Select
Sheets("92").Copy After:=Workbooks("HD.xls").Sheets(2)
Windows("92.XLS").Activate
ActiveWorkbook.Close

Workbooks.OpenText Filename:¬tiveWorkbook.Path & "/93.XLS", Origin:=
_
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True,
Semicolon:úlse, _
Comma:úlse, Space:úlse, Other:úlse, FieldInfo:=Array(Array(1, 1),
_
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1),
Array(7, 1), Array(8, 1), _
Array(9, 1), Array(10, 1), Array(11, 1)), TrailingMinusNumbers:=True
Windows("93.XLS").Activate
Sheets("93").Select
Sheets("93").Copy After:=Workbooks("HD.xls").Sheets(3)
Windows("93.XLS").Activate
ActiveWorkbook.Close

Workbooks.OpenText Filename:¬tiveWorkbook.Path & "/121.XLS", Origin:=
_
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True,
Semicolon:úlse, _
Comma:úlse, Space:úlse, Other:úlse, FieldInfo:=Array(Array(1, 1),
_
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1),
Array(7, 1), Array(8, 1), _
Array(9, 1), Array(10, 1), Array(11, 1)), TrailingMinusNumbers:=True
Windows("121.XLS").Activate
Sheets("121").Select
Sheets("121").Copy After:=Workbooks("HD.xls").Sheets(4)
Windows("121.XLS").Activate
ActiveWorkbook.Close
...

End Sub
================================================= >
--
Bien amicordialement,
P. Bastard
Bonjour,

J'ai plusieurs fichiers excels :
- 1er cas de figure, les fichiers xls ont 1 seul onglet.
je souhaiterai avoir une macro pour les réunir en 1 seul xls avec 1
nouvel onglet par ancien xls et que le nom du nouvel onglet porte le
nom du fichier xls (sans l'extension)

- 2eme cas de figure, les fichiers xls ont chacun plusieurs onglet
je souhaiterai avoir une macro pour les réunir en 1 seul xls et que
chaque onglet des anciens fichiers séparés soient renommé avec le nom
du fichier xls (sans l'extension) puis incrémenté avec 2, 3, 4
etc.... s'il y en a plusieurs (onglets d'origine)

J'espère ne pas avoir été trop brouillon

Merci