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

Creer un classeur avec des onglets definis

2 réponses
Avatar
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:=False

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

2 réponses

Avatar
FFO
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 !!!!
Avatar
Jed
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 !!!!