Copier/Coller d’ onglets sur chaque nouveau classeur + boucle

Le
stormtroopertk1230 Hors ligne
Bonjour,

J’ai un certain nombre d’onglet.
Chaque onglet est nommé.
Une liste sous l’onglet « Menu » contient le nom des onglets.
Je voudrai effectuer un Copié-collé de chaque onglet afin de créer un nouveau Classeur par onglet.
L a macro crée bien le nouveau classeur mais Beug dès qu’il fait renommer le classeur avec le Nom issu de la liste du classeur Initial « Suivi_R » d’où mon problème…
Merci de votre aide.

Var étant la liste des noms des onglets

Private Sub Création_Indiv()
Dim Var As String
Dim Mois, As Integer

For i = 11 To 28

Var = Sheets("Menu_Com").Cells(i, 4).Value
Application.ScreenUpdating = False

Sheets(Var).Select
Sheets(Var).Copy
ActiveSheets.SaveAs Filename:="I:Suivi" & Mois & "" & Var & ".xlsm"

Next i
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #24050031
bonjour stormtroopertk1230,

modifie cette ligne
ActiveSheets.SaveAs Filename:="I:Suivi"& Mois& ""& Var& ".xlsm"

par
ActiveWorkbook.SaveAs Filename:="I:Suivi" & Mois & "" & Var & ".xlsm"

--
isabelle


Le 2011-12-09 09:49, stormtroopertk1230 a écrit :
Bonjour,

J’ai un certain nombre d’onglet.
Chaque onglet est nommé.
Une liste sous l’onglet « Menu » contient le nom des onglets.
Je voudrai effectuer un Copié-collé de chaque onglet afin de créer un nouveau
Classeur par onglet.
L a macro crée bien le nouveau classeur mais Beug dès qu’il fait renommer le
classeur avec le Nom issu de la liste du classeur Initial « Suivi_R » d’où mon
problème…
Merci de votre aide.

Var étant la liste des noms des onglets

Private Sub Création_Indiv()
Dim Var As String
Dim Mois, As Integer

For i = 11 To 28

Var = Sheets("Menu_Com").Cells(i, 4).Value
Application.ScreenUpdating = False

Sheets(Var).Select
Sheets(Var).Copy
ActiveSheets.SaveAs Filename:="I:Suivi"& Mois& ""& Var& ".xlsm"

Next i
stormtroopertk1230 Hors ligne
Le #24050101
isabelle a écrit le 09/12/2011 à 15h55 :
bonjour stormtroopertk1230,

modifie cette ligne
ActiveSheets.SaveAs Filename:="I:Suivi"& Mois&
""& Var& ".xlsm"

par
ActiveWorkbook.SaveAs Filename:="I:Suivi" & Mois &
"" & Var & ".xlsm"

--
isabelle


Le 2011-12-09 09:49, stormtroopertk1230 a écrit :
Bonjour,

J’ai un certain nombre d’onglet.
Chaque onglet est nommé.
Une liste sous l’onglet « Menu » contient le nom des
onglets.
Je voudrai effectuer un Copié-collé de chaque onglet afin de
créer un nouveau
Classeur par onglet.
L a macro crée bien le nouveau classeur mais Beug dès
qu’il fait renommer le
classeur avec le Nom issu de la liste du classeur Initial « Suivi_R
» d’où mon
problème…
Merci de votre aide.

Var étant la liste des noms des onglets

Private Sub Création_Indiv()
Dim Var As String
Dim Mois, As Integer

For i = 11 To 28

Var = Sheets("Menu_Com").Cells(i, 4).Value
Application.ScreenUpdating = False

Sheets(Var).Select
Sheets(Var).Copy
ActiveSheets.SaveAs Filename:="I:Suivi"& Mois&
""& Var& ".xlsm"

Next i




Merci Isabelle, mais malheureusement, cela ne fonctionne pas :-( Erreur 1004...
Snif...
Si quelqu'un peut m'aider ? Isabelle ?

Chris.
isabelle
Le #24050121
bonjour Chris,

peut déposer ton fichier ici
http://www.cjoint.com/
et nous redonner le lien de téléchargement

--
isabelle


Le 2011-12-09 10:26, stormtroopertk1230 a écrit :

Merci Isabelle, mais malheureusement, cela ne fonctionne pas :-( Erreur
1004...
Snif...
Si quelqu'un peut m'aider ? Isabelle ?

Chris.
Charles
Le #24052611
Bonjour à tous,

Si j'ai bien compris, le problème est d'inserer des onglets et de les nommer
(en fonction d'une liste situé dans un autre onglet).

Désolé, je ne connais pas Visual Basic, mais en inserant un onglet "macro",
et en copiant ce qui suit :

¬TIVER("menu")
=SELECTIONNER("L1C1")
ÞFINIR.NOM("bof")
= TANT.QUE(bof<>"")
= INSERER.CLASSEUR()
= NOMMER.CLASSEUR(;bof)
¬TIVER("menu")
=SELECTIONNER("bof")
=SELECTIONNER("L(1)C")
ÞFINIR.NOM("bof")
=SUIVANT()


L'onglet "Menu" : liste des onglets à créer.
Dans le cas présent, la liste commence à la cellule L1C1 ou A1

Il suffit de lancer la macro en se positionnant sur ¬tiver("menu")

Les onglets se créent et se nomment très rapidement

ATTENTION :cela suppose que les onglets que l'on veut créer et nommer
n'existent pas déjà dans le classeur.
impossible de nommer un classeur si le nom existe déjà.

J'espère avoir apporté un peu d'aide

Charles



"isabelle" news:jbt9o6$ig1$
bonjour Chris,

peut déposer ton fichier ici
http://www.cjoint.com/
et nous redonner le lien de téléchargement

--
isabelle


Le 2011-12-09 10:26, stormtroopertk1230 a écrit :

Merci Isabelle, mais malheureusement, cela ne fonctionne pas :-( Erreur
1004...
Snif...
Si quelqu'un peut m'aider ? Isabelle ?

Chris.
Gloops
Le #24055111
stormtroopertk1230 a écrit, le 09/12/2011 15:49 :
Bonjour,

J’ai un certain nombre d’onglet.
Chaque onglet est nommé.
Une liste sous l’onglet « Menu » contient le nom des onglets.
Je voudrai effectuer un Copié-collé de chaque onglet afin de crée r un nouveau
Classeur par onglet.
L a macro crée bien le nouveau classeur mais Beug dès qu’il fait renommer le
classeur avec le Nom issu de la liste du classeur Initial « Suivi_R » d’où mon
problème…
Merci de votre aide.

Var étant la liste des noms des onglets

Private Sub Création_Indiv()
Dim Var As String
Dim Mois, As Integer

For i = 11 To 28

Var = Sheets("Menu_Com").Cells(i, 4).Value
Application.ScreenUpdating = False

Sheets(Var).Select
Sheets(Var).Copy
ActiveSheets.SaveAs Filename:="I:Suivi"& Mois& ""& Var& ".xlsm "

Next i



Bonjour,

Voici qui m'inspire quelques questions :
- à quoi sert Sheets(Var).Copy ?
- faut-il vraiment un s à ActiveSheets ? Pour que ça ait un sens il f aut
sélectionner plusieurs feuilles, à l'aide de la touche Ctrl pendant
qu'on les sélectionne par exemple. Syntaxe à vérifier.
- qu'y a-t-il dans la variable mois ? Où est-elle initialisée ?
Après avoir affiché le chemin complet, as-tu bien trouvé le fichier dans
l'explorateur ?

Par ailleurs, je ne me rappelle plus ce que ça donne de préférer
Sheet.Select à Sheet.Activate

J'imagine qu'un peu plus tard on n'oublie pas ScreenUpdating = True,
mais il est peu probable que ce soit le problème.
Publicité
Poster une réponse
Anonyme