XL 2010 Créer et nommer un classeur en vba

chajmi

XLDnaute Occasionnel
Bonjour au forum,
J'ai un classeur ouvert, "Classeur de JMC" avec 6 onglets (A, B, C, D, E, F)
Je voudrais faire en vba :
1/ Créer un nouveau classeur, en dupliquant les onglets B, C et F
2/ Enregistrer ce nouveau classeur dans le dossier "CLASSEURS", en le nommant avec le contenu de la cellule A1 de l'onglet A.
3/ Incrémenter le nom de cette cellule de 1, pour préparer le classeur suivant (Classeur JMC 2, 3, 4 ........)
3/ Revenir sur le classeur "Classeur de JMC" et l'enregistrer.

Merci à celui qui pourra m'aider
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

@chajmi
Tu as essayé l'enregistreur de macros (pour commencer) ?

EDITION:
Moi, oui ;)
Donc adapté de l’enregistreur de macros
VB:
Sub Test()
Dim strPath$, cpt As Range
strPath = ThisWorkbook.Path & "\"
Set cpt = ThisWorkbook.Sheets("A").Cells(1)
Sheets(Array("B", "C", "F")).Copy
ActiveWorkbook.SaveAs strPath & cpt.Text
ActiveWorkbook.Close True
cpt = cpt + 1
'ThisWorkbook.Close True
End Sub
NB: Faire les adaptations idoines au niveau de strPath pour coller à la situation réelle.
 
Dernière édition:

chajmi

XLDnaute Occasionnel
Bonjour et merci de vous pencher sur mon problème.

En fait entre temps, j'ai composé le code suivant qui fonctionne bien :
(ce n'est qu'une partie de ma macro qui comporte d'autres étapes avant et après)

Code:
  Sheets(Array("B", "C", "F")).Copy
  Sheets("A").Select
  ChDir _
  "\\chemin du dossier ou je veux enregistrer le nouveau classeur\DEVIS pdf"
  ActiveWorkbook.SaveAs Filename:=[O4].Value & ".xls"
  ActiveWorkbook.Close

O4 étant la cellule dans la feuille A, contenant le nom souhaité pour mon classeur.

Il faut que je prenne le temps d'essayer la solution de Staple 1600, même si je ne comprends pas tout (notamment qu'est ce que StrPath et cpt ?).

Merci de vos lumières
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

@Hervé (Bonjour)
salut :)

staple, j'ai rien testé mais tu renvoi pas le cpt dans le ThisWorkbook.Sheets("A").Cells(1) en fin de macro ?

a plus
Bah, lors de mes tests l'incrément se fait bien dans le fichier contenant la macro
PS: j'ai oublié de précisé que j'ai appliqué ce format personnalisé* sur la cellule A1 de la feuille A
*: "Classeur JMC "Standard

@chajmi (Bonjour)
str pour String
Path (chemin en anglais)
donc strPath est la variable pour identifier le chemin du répertoire où on doit enregistrer le classeur
Ici strPath est égal à ThisWorkBook.Path c'est le chemin du classeur actif contenant la macro.

cpt: diminutif de compteur

PS: Pourquoi on passe de A1 à O4 du message#1 au message#4 ? :rolleyes:
 

Discussions similaires

Statistiques des forums

Discussions
312 078
Messages
2 085 108
Membres
102 779
dernier inscrit
wrond