Creer un classeur avec des onglets definis

Le
Jed
Bonjour,

J'aimerai enregistrer a partir du classeur actif contenant les macros, un
autre classeur avec certains onglets mais sans les macros!!

En plus clair :

De mon classeur, j'ai plein de macros qui me font des calculs et crée des
onglets.
A la fermeture j'aimerai créer un nouveau classeur et sauvegarder les
onglets crée mais sans les macros pour les utilisateurs.

Avec mon code :

'

Private Sub CmdQuitter_Click()


Set NewBook = Workbooks.Add

Do

fName = Application.GetSaveAsFilename

Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:úlse

Loop Until fName <> False

NewBook.SaveAs Filename:=fName

End

End Sub

'==

fonctionne plus ou moins mais le classeur sauvegardé contient les liaisons
alors du coup certaines valeurs ne sont pas affichées et pas de mise en forme
non plus.

Et je ne sais faire une selection sur certains onglets seulement??

Un conseil ou un bout de code serai le bienvenue.

Cdlt
Jed
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
FFO
Le #16715551
Salut à toi

Si tu peux ramener le nom de tes onglets créés dans une feuille appelé
"Création" en modifiant tes macros en colonne A par exemple tu peux utiliser
ce bout de code :

Nouveau = Workbooks.Add.Name
For each c in worksheets("Création").Range("A1", "A" &
Sheets("Création").Range("A65535").End(xlup).Row)
Workbooks("Classeur Actif.xls").Sheets(c).Cells.Copy
Workbooks(Nouveau).Sheets.Add.Cells
Workbooks(Nouveau).Activesheet.Name = c
Next

Les groupes de 2 lignes :

For each c in worksheets("Création").Range("A1", "A" &
Sheets("Création").Range("A65535").End(xlup).Row)

Workbooks("Classeur Actif.xls").Sheets(c).Cells.Copy
Workbooks(Nouveau).Sheets.Add.Cells

doivent être mis bout à bout

Celà devrait faire

Dis moi !!!!
Jed
Le #16715631
Merci FFO,

Je vais adapter ton code et le tester.
Je reviendrai te dire la suite.

Merci pour ton aide... je vois déja mieux ce qu'il faut faire.

Cdlt

Jed

"FFO" a écrit :

Salut à toi

Si tu peux ramener le nom de tes onglets créés dans une feuille appelé
"Création" en modifiant tes macros en colonne A par exemple tu peux utiliser
ce bout de code :

Nouveau = Workbooks.Add.Name
For each c in worksheets("Création").Range("A1", "A" &
Sheets("Création").Range("A65535").End(xlup).Row)
Workbooks("Classeur Actif.xls").Sheets(c).Cells.Copy
Workbooks(Nouveau).Sheets.Add.Cells
Workbooks(Nouveau).Activesheet.Name = c
Next

Les groupes de 2 lignes :

For each c in worksheets("Création").Range("A1", "A" &
Sheets("Création").Range("A65535").End(xlup).Row)

Workbooks("Classeur Actif.xls").Sheets(c).Cells.Copy
Workbooks(Nouveau).Sheets.Add.Cells

doivent être mis bout à bout

Celà devrait faire

Dis moi !!!!



Publicité
Poster une réponse
Anonyme