OVH Cloud OVH Cloud

VBA : enregistrer chaque onglet.

16 réponses
Avatar
Patrick BASTARD
Bonjour, vous.

Je bute sur un problème sans doute simple à résoudre, mais à ma connaissance
pas documenté...
j'ai besoin de vos lumières, ou d'un lien que je n'aurais pas trouvé :

Un classeur avec x onglets.
Comment transformer chacune des onglets de ce classeur en un classeur mono
onglet , en conservant pour chacun de ces nouveaux classeurs le nom de l'
onglet correspondant ?

Le but :
J'ai paramétré des infos qui doivent être importées sur une appli interne,
et lors de l'import, cette appli me demande le nom du fichier à importer,
pas le nom de l'onglet.
En manuel, je sais faire mais c'est fastidieux...

Merci par avance pour vos propositions zéclairées.

Win XP,
Excel 2000 - SP3

--
Bien cordialement,
P. Bastard

10 réponses

1 2
Avatar
Philippe.R
Bonjour Patrick,

Ceci :

'MPFE le 14/05/2005 par Philippe Raulet
Dim leNom As String
For x = 1 To Sheets.Count
Sheets(x).Copy
leNom = Sheets(1).Name
ChDir "C:Documents and SettingsDonnéesChiffresEssais"
ActiveWorkbook.SaveAs Filename:= _
"C:Documents and SettingsDonnéesChiffresEssais" & leNom & ".xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse
ThisWorkbook.Activate
Next x
End Sub

convient il ?
--
Amicales Salutations
XL 97 / 2000 / 2002

"Patrick BASTARD" a écrit dans le message de news:
%
Bonjour, vous.

Je bute sur un problème sans doute simple à résoudre, mais à ma connaissance pas documenté...
j'ai besoin de vos lumières, ou d'un lien que je n'aurais pas trouvé :

Un classeur avec x onglets.
Comment transformer chacune des onglets de ce classeur en un classeur mono onglet , en conservant pour
chacun de ces nouveaux classeurs le nom de l' onglet correspondant ?

Le but :
J'ai paramétré des infos qui doivent être importées sur une appli interne, et lors de l'import, cette
appli me demande le nom du fichier à importer, pas le nom de l'onglet.
En manuel, je sais faire mais c'est fastidieux...

Merci par avance pour vos propositions zéclairées.

Win XP,
Excel 2000 - SP3

--
Bien cordialement,
P. Bastard




Avatar
LSteph
Bonjour

Sub deploie()
Dim sh As Worksheet
For Each sh In ThisWorkbook.Sheets
sh.Copy
ActiveWorkbook.SaveAs sh.Name
Next
End Sub

'lSteph

"Patrick BASTARD" a écrit dans le
message de news: %
Bonjour, vous.

Je bute sur un problème sans doute simple à résoudre, mais à ma
connaissance pas documenté...
j'ai besoin de vos lumières, ou d'un lien que je n'aurais pas trouvé :

Un classeur avec x onglets.
Comment transformer chacune des onglets de ce classeur en un classeur mono
onglet , en conservant pour chacun de ces nouveaux classeurs le nom de l'
onglet correspondant ?

Le but :
J'ai paramétré des infos qui doivent être importées sur une appli interne,
et lors de l'import, cette appli me demande le nom du fichier à importer,
pas le nom de l'onglet.
En manuel, je sais faire mais c'est fastidieux...

Merci par avance pour vos propositions zéclairées.

Win XP,
Excel 2000 - SP3

--
Bien cordialement,
P. Bastard



Avatar
Patrick BASTARD
Merci à vous, Philippe et LSteph

Résultats :

'MPFE le 14/05/2005 par Philippe Raulet
Sub sauveonglet()

Dim leNom As String
For x = 1 To Sheets.Count
*Sheets(x).Copy*
leNom = Sheets(1).Name
ChDir "C:Documents and SettingsPatrickMes documents1PB1Projet
GESTPLAN"
ActiveWorkbook.SaveAs Filename:= _
"C:Documents and SettingsPatrickMes documents1PB1Projet
GESTPLAN" & leNom & ".xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse
ThisWorkbook.Activate
Next x
End Sub

me renvoie une erreur 1004 : La méthode copy de la classe Worksheet a
échoué.
======================================================================
Sub deploie()
'LSteph
Dim sh As Worksheet
For Each sh In ThisWorkbook.Sheets
*sh.Copy*
ActiveWorkbook.SaveAs sh.Name
Next
End Sub
me renvoie une erreur 1004 : La méthode copy de l'objet Worshhet a échoué.


J'ai essayé avec l'enregistreur, mais sans succcès.
(select et move, mais pour renommer ?)

Merci à vous deux pour votre aide (passée et à venir).


--
Bien cordialement,
P. Bastard



Comment transformer chacune des onglets de ce classeur en un classeur
mono onglet , en conservant pour chacun de ces nouveaux classeurs le
nom de l' onglet correspondant ?

Win XP,
Excel 2000 - SP3


Avatar
Philippe.R
Re Patrick,
La procédure est bien dans un module ordinaire ?
Quels sont ces astérisques qui encadrent Sheets(x).Copy ?
--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Patrick BASTARD" a écrit dans le message de news:

Merci à vous, Philippe et LSteph

Résultats :

'MPFE le 14/05/2005 par Philippe Raulet
Sub sauveonglet()

Dim leNom As String
For x = 1 To Sheets.Count
*Sheets(x).Copy*
leNom = Sheets(1).Name
ChDir "C:Documents and SettingsPatrickMes documents1PB1Projet GESTPLAN"
ActiveWorkbook.SaveAs Filename:= _
"C:Documents and SettingsPatrickMes documents1PB1Projet GESTPLAN" & leNom & ".xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse
ThisWorkbook.Activate
Next x
End Sub

me renvoie une erreur 1004 : La méthode copy de la classe Worksheet a échoué.
====================================================================== >
Sub deploie()
'LSteph
Dim sh As Worksheet
For Each sh In ThisWorkbook.Sheets
*sh.Copy*
ActiveWorkbook.SaveAs sh.Name
Next
End Sub
me renvoie une erreur 1004 : La méthode copy de l'objet Worshhet a échoué.


J'ai essayé avec l'enregistreur, mais sans succcès.
(select et move, mais pour renommer ?)

Merci à vous deux pour votre aide (passée et à venir).


--
Bien cordialement,
P. Bastard



Comment transformer chacune des onglets de ce classeur en un classeur
mono onglet , en conservant pour chacun de ces nouveaux classeurs le
nom de l' onglet correspondant ?

Win XP,
Excel 2000 - SP3






Avatar
Patrick BASTARD
Bonjour, *Philippe.R*


La procédure est bien dans un module ordinaire ?
Oui.


Quels sont ces astérisques qui encadrent Sheets(x).Copy ?
Juste pour mettre en gras la ligne qui provoque l'erreur : pas d'astérisque

dans le code.

Pour info, le nom des onglets est du type : aaaaxx (ex : LUCP12)
J'ai bien ôté option explicit, n'auant pas défini le x

Merci de ton aide.


--
Bien cordialement,
P. Bastard





'MPFE le 14/05/2005 par Philippe Raulet
Sub sauveonglet()

Dim leNom As String
For x = 1 To Sheets.Count
*Sheets(x).Copy*
leNom = Sheets(1).Name
ChDir "C:Documents and SettingsPatrickMes
documents1PB1Projet GESTPLAN" ActiveWorkbook.SaveAs Filename: >> _ "C:Documents and SettingsPatrickMes
documents1PB1Projet GESTPLAN" & leNom & ".xls" _ ,
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse ThisWorkbook.Activate
Next x
End Sub

me renvoie une erreur 1004 : La méthode copy de la classe Worksheet
a échoué.
====================================================================== >>
Sub deploie()
'LSteph
Dim sh As Worksheet
For Each sh In ThisWorkbook.Sheets
*sh.Copy*
ActiveWorkbook.SaveAs sh.Name
Next
End Sub
me renvoie une erreur 1004 : La méthode copy de l'objet Worshhet a
échoué. J'ai essayé avec l'enregistreur, mais sans succcès.
(select et move, mais pour renommer ?)

Merci à vous deux pour votre aide (passée et à venir).


--
Bien cordialement,
P. Bastard



Comment transformer chacune des onglets de ce classeur en un
classeur mono onglet , en conservant pour chacun de ces nouveaux
classeurs le nom de l' onglet correspondant ?

Win XP,
Excel 2000 - SP3






Avatar
Philippe.R
Encore une précision, c'est bien dans un module du classeur dont les onglets sont à copier que se trouve
la procédure ?
--
Amicales Salutations
XL 97 / 2000 / 2002

"Patrick BASTARD" a écrit dans le message de news:
eR%
Bonjour, *Philippe.R*


La procédure est bien dans un module ordinaire ?
Oui.


Quels sont ces astérisques qui encadrent Sheets(x).Copy ?
Juste pour mettre en gras la ligne qui provoque l'erreur : pas d'astérisque dans le code.


Pour info, le nom des onglets est du type : aaaaxx (ex : LUCP12)
J'ai bien ôté option explicit, n'auant pas défini le x

Merci de ton aide.


--
Bien cordialement,
P. Bastard





'MPFE le 14/05/2005 par Philippe Raulet
Sub sauveonglet()

Dim leNom As String
For x = 1 To Sheets.Count
*Sheets(x).Copy*
leNom = Sheets(1).Name
ChDir "C:Documents and SettingsPatrickMes
documents1PB1Projet GESTPLAN" ActiveWorkbook.SaveAs Filename: >>> _ "C:Documents and SettingsPatrickMes
documents1PB1Projet GESTPLAN" & leNom & ".xls" _ ,
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse ThisWorkbook.Activate
Next x
End Sub

me renvoie une erreur 1004 : La méthode copy de la classe Worksheet
a échoué.
====================================================================== >>>
Sub deploie()
'LSteph
Dim sh As Worksheet
For Each sh In ThisWorkbook.Sheets
*sh.Copy*
ActiveWorkbook.SaveAs sh.Name
Next
End Sub
me renvoie une erreur 1004 : La méthode copy de l'objet Worshhet a
échoué. J'ai essayé avec l'enregistreur, mais sans succcès.
(select et move, mais pour renommer ?)

Merci à vous deux pour votre aide (passée et à venir).


--
Bien cordialement,
P. Bastard



Comment transformer chacune des onglets de ce classeur en un
classeur mono onglet , en conservant pour chacun de ces nouveaux
classeurs le nom de l' onglet correspondant ?

Win XP,
Excel 2000 - SP3










Avatar
LSteph
Curieux , chez moi aucune des deux sub ne génère de 1004
Y aurait'il un nom déjà utilisé ou autre?
Tu mets bien cela dans un module standard de ton classeur à transformer?

lSteph


"Patrick BASTARD" a écrit dans le
message de news: eR%
Bonjour, *Philippe.R*


La procédure est bien dans un module ordinaire ?
Oui.


Quels sont ces astérisques qui encadrent Sheets(x).Copy ?
Juste pour mettre en gras la ligne qui provoque l'erreur : pas

d'astérisque dans le code.

Pour info, le nom des onglets est du type : aaaaxx (ex : LUCP12)
J'ai bien ôté option explicit, n'auant pas défini le x

Merci de ton aide.


--
Bien cordialement,
P. Bastard





'MPFE le 14/05/2005 par Philippe Raulet
Sub sauveonglet()

Dim leNom As String
For x = 1 To Sheets.Count
*Sheets(x).Copy*
leNom = Sheets(1).Name
ChDir "C:Documents and SettingsPatrickMes
documents1PB1Projet GESTPLAN" ActiveWorkbook.SaveAs Filename: >>> _ "C:Documents and SettingsPatrickMes
documents1PB1Projet GESTPLAN" & leNom & ".xls" _ ,
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse ThisWorkbook.Activate
Next x
End Sub

me renvoie une erreur 1004 : La méthode copy de la classe Worksheet
a échoué.
====================================================================== >>>
Sub deploie()
'LSteph
Dim sh As Worksheet
For Each sh In ThisWorkbook.Sheets
*sh.Copy*
ActiveWorkbook.SaveAs sh.Name
Next
End Sub
me renvoie une erreur 1004 : La méthode copy de l'objet Worshhet a
échoué. J'ai essayé avec l'enregistreur, mais sans succcès.
(select et move, mais pour renommer ?)

Merci à vous deux pour votre aide (passée et à venir).


--
Bien cordialement,
P. Bastard



Comment transformer chacune des onglets de ce classeur en un
classeur mono onglet , en conservant pour chacun de ces nouveaux
classeurs le nom de l' onglet correspondant ?

Win XP,
Excel 2000 - SP3










Avatar
Patrick BASTARD
Re, *Philippe*

La procédure est bien dans le classseur d'origine contenant les onglets à
copier, les classeurs à venir ne sont pas encore créés.


--
Bien cordialement,
P. Bastard


Encore une précision, c'est bien dans un module du classeur dont les
onglets sont à copier que se trouve la procédure ?

"Patrick BASTARD" a écrit dans
le message de news: eR%
Bonjour, *Philippe.R*


La procédure est bien dans un module ordinaire ?
Oui.


Quels sont ces astérisques qui encadrent Sheets(x).Copy ?
Juste pour mettre en gras la ligne qui provoque l'erreur : pas

d'astérisque dans le code. Pour info, le nom des onglets est du type :
aaaaxx (ex : LUCP12)
J'ai bien ôté option explicit, n'auant pas défini le x

Merci de ton aide.


--
Bien cordialement,
P. Bastard





'MPFE le 14/05/2005 par Philippe Raulet
Sub sauveonglet()

Dim leNom As String
For x = 1 To Sheets.Count
*Sheets(x).Copy*
leNom = Sheets(1).Name
ChDir "C:Documents and SettingsPatrickMes
documents1PB1Projet GESTPLAN" ActiveWorkbook.SaveAs
Filename:= _ "C:Documents and SettingsPatrickMes
documents1PB1Projet GESTPLAN" & leNom & ".xls" _ ,
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse
ThisWorkbook.Activate Next x
End Sub

me renvoie une erreur 1004 : La méthode copy de la classe Worksheet
a échoué.
====================================================================== >>>>
Sub deploie()
'LSteph
Dim sh As Worksheet
For Each sh In ThisWorkbook.Sheets
*sh.Copy*
ActiveWorkbook.SaveAs sh.Name
Next
End Sub
me renvoie une erreur 1004 : La méthode copy de l'objet Worshhet a
échoué. J'ai essayé avec l'enregistreur, mais sans succcès.
(select et move, mais pour renommer ?)

Merci à vous deux pour votre aide (passée et à venir).


--
Bien cordialement,
P. Bastard



Comment transformer chacune des onglets de ce classeur en un
classeur mono onglet , en conservant pour chacun de ces nouveaux
classeurs le nom de l' onglet correspondant ?

Win XP,
Excel 2000 - SP3










Avatar
Patrick BASTARD
Re, *LSteph*


La procédure est bien dans un module standard du classseur d'origine
contenant les onglets à copier, les classeurs à venir ne sont pas encore
créés.
Aucun nom n'est défini dans ce classeur.
Seul ce classeur est ouvert.



--
Bien cordialement,
P. Bastard

Curieux , chez moi aucune des deux sub ne génère de 1004
Y aurait'il un nom déjà utilisé ou autre?
Tu mets bien cela dans un module standard de ton classeur à
transformer?
lSteph


"Patrick BASTARD" a écrit dans le
message de news: eR%
Bonjour, *Philippe.R*


La procédure est bien dans un module ordinaire ?
Oui.


Quels sont ces astérisques qui encadrent Sheets(x).Copy ?
Juste pour mettre en gras la ligne qui provoque l'erreur : pas

d'astérisque dans le code.

Pour info, le nom des onglets est du type : aaaaxx (ex : LUCP12)
J'ai bien ôté option explicit, n'auant pas défini le x

Merci de ton aide.


--
Bien cordialement,
P. Bastard





'MPFE le 14/05/2005 par Philippe Raulet
Sub sauveonglet()

Dim leNom As String
For x = 1 To Sheets.Count
*Sheets(x).Copy*
leNom = Sheets(1).Name
ChDir "C:Documents and SettingsPatrickMes
documents1PB1Projet GESTPLAN" ActiveWorkbook.SaveAs
Filename:= _ "C:Documents and SettingsPatrickMes
documents1PB1Projet GESTPLAN" & leNom & ".xls" _ ,
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse
ThisWorkbook.Activate Next x
End Sub

me renvoie une erreur 1004 : La méthode copy de la classe Worksheet
a échoué.
====================================================================== >>>>
Sub deploie()
'LSteph
Dim sh As Worksheet
For Each sh In ThisWorkbook.Sheets
*sh.Copy*
ActiveWorkbook.SaveAs sh.Name
Next
End Sub
me renvoie une erreur 1004 : La méthode copy de l'objet Worshhet a
échoué. J'ai essayé avec l'enregistreur, mais sans succcès.
(select et move, mais pour renommer ?)

Merci à vous deux pour votre aide (passée et à venir).


--
Bien cordialement,
P. Bastard



Comment transformer chacune des onglets de ce classeur en un
classeur mono onglet , en conservant pour chacun de ces nouveaux
classeurs le nom de l' onglet correspondant ?

Win XP,
Excel 2000 - SP3










Avatar
LSteph
Oui j'ai réussi un 1004 en masquant une feuille

lSteph
"Patrick BASTARD" a écrit dans le
message de news:
Merci à vous, Philippe et LSteph

Résultats :

'MPFE le 14/05/2005 par Philippe Raulet
Sub sauveonglet()

Dim leNom As String
For x = 1 To Sheets.Count
*Sheets(x).Copy*
leNom = Sheets(1).Name
ChDir "C:Documents and SettingsPatrickMes documents1PB1Projet
GESTPLAN"
ActiveWorkbook.SaveAs Filename:= _
"C:Documents and SettingsPatrickMes documents1PB1Projet
GESTPLAN" & leNom & ".xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse
ThisWorkbook.Activate
Next x
End Sub

me renvoie une erreur 1004 : La méthode copy de la classe Worksheet a
échoué.
====================================================================== >
Sub deploie()
'LSteph
Dim sh As Worksheet
For Each sh In ThisWorkbook.Sheets
*sh.Copy*
ActiveWorkbook.SaveAs sh.Name
Next
End Sub
me renvoie une erreur 1004 : La méthode copy de l'objet Worshhet a échoué.


J'ai essayé avec l'enregistreur, mais sans succcès.
(select et move, mais pour renommer ?)

Merci à vous deux pour votre aide (passée et à venir).


--
Bien cordialement,
P. Bastard



Comment transformer chacune des onglets de ce classeur en un classeur
mono onglet , en conservant pour chacun de ces nouveaux classeurs le
nom de l' onglet correspondant ?

Win XP,
Excel 2000 - SP3






1 2