tout d'abord, permettez-moi de vous dire que j'ai parcouru énormément de sujets avec un problème similaire au mien, sur ce forum et sur d'autres forums Excel, avant de poster ce message, mais aucun ne m'a permis de résoudre totalement mon problème.
J'aimerais créer une feuille dans un nouveau classeur (dans un répertoire donné) qui n'afficherait qu'une partie d'un onglet présent dans un classeur à plusieurs feuilles.
J'ai trouvé ce code sur internet, le seul qui marche totalement pour moi :
Code:
Sub ongletcopie()
Range("N2:W37").Select
Worksheets(Array("TCD ALU")).Copy
ActiveWorkbook.SaveAs "ZZZ"
End Sub
Je ne peux pas mettre le fichier en PJ, vu qu'il y a des choses assez confidentielles dessus (je travaille sur un projet professionnel), mais l'onglet "TCD ALU" est celui que je veux reproduire dans un nouveau classeur et ZZZ est le nom (provisoire ) du nouveau classeur.
Mais comme vous pouvez le voir, le nouveau classeur reproduit tout "TCD ALU" alors que je ne veux que la plage de cellules de N2 à W37. J'ai essayé de remplacer
Code:
Worksheets(Array("TCD ALU")).Copy
par
Code:
Worksheets(Array("TCD ALU").Range("N2:W37").Copy
mais cela ne fonctionne pas.
Donc ça c'est le premier problème à résoudre. Le second problème est de pouvoir créer le nouveau classeur sans avoir à ouvrir aucun des 2 fichiers. Est-ce possible ?
Ca doit être assez simple comme problème, mais je suis un débutant total sur VB et sur Excel, donc je compte sur votre précieuse et aimable aide pour m'en sortir !
Re : Créer un nouveau classeur à partir d'un onglet
bonjour Ewigrfrost
array n'est pas nécessaire
Code:
Worksheets("TCD ALU").Range("N2:W37").Copy
tu peux exécuter la macro à l'ouverture ou avant la fermeture(tu auras les dernières données)
voir évènement workbook
clic icône thisworkbook sous vbe(visual basic editor)