[VBA] créer fichier excel à partir d'onglet

créer fichier excel à partir d'onglet [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 12-07-2009 à 23:29:06    

Bon voila,j ai pas trouvé de sujet répondant à ma question
 
En fait je cherche a créer un programme qui a partir d une liste dans excel  
-la dispache en differents onglets selon la valeur en première colonne renommé en fonction de cette première colonne
(exemple j ai la liste " 1 patrick lulu"
                           " 2 roger    lolo"
                           " 2 mikie    lolo"
                           " 3 pat      lili"
le programme la duplique en 3 onglet appellé 1,2,3 avec les differentes lignes classés dans les onglets correspondants)
-crée ensuite un fichier excel regroupant les onglets 5 par 5
(exemple j ai 11 onglets 1,3,5,7,9,11,13,15,17,19,21,j aurais 3 fichier excel,le premier avec les onglets 1,3,5,7,9 le second avec etc...)
 
 
J ai reussi a faire la première partie du programme mais j ai du mal pour la deuxième :hello:  
 
j arrive a créer un nouveau fichier à partir de certain onglets (voir proc en dessous) mais des que je change la procedure en indiquant au debut le nom des fichier(avec les byref),ca ne fonctionne plus et donc impossible de faire une boucle :(  
 
Sub SauvOngletFichier()
'copie les onglets de nom X Y et les sauvegarde dans un nouveau fichier excel appellé ZZZ
Worksheets(Array("X", "Y" )).Copy
ActiveWorkbook.SaveAs "ZZZ"
End Sub

 
Donc voila je suppose qu'il y a une reponse a mon problème mais étant donné que j'ai pas fait beaucoup de programmation objet j 'ai un peu de mal :(

Reply

Marsh Posté le 12-07-2009 à 23:29:06   

Reply

Marsh Posté le 13-07-2009 à 09:57:16    

Je connais Excel, mais je n'ai jamais fait cela. Je vais quand même essayer de faire avancer le schmilblick.

Citation :

je change la procedure en indiquant au debut le nom des fichier(avec les byref)

Un exemple, SVP, pour qu'on se rende mieux compte ?
 
Le problème semble être au niveau de l'analyse plutôt qu'à celui de la programmation.
 
Quand on fait ActiveWorkbook.SaveAs, cela change le nom du fichier en cours, et c'est sans doute cela qui est gênant. Car après, pour revenir dans le fichier d'origine, cela n'est pas évident, parce qu'il doit surement falloir fermer le workbook en cours, et réouvrir le précédent. Mais les macros sont souvent liées à un workbook, et c'est peut-être là le problème. Il faudrait peut-être les déporter dans des "modules" indépendants des workbooks.
Ce serait sans doute plus simple s'il ne fallait mettre qu'une feuille par classeur, car alors on utiliserait ActiveSheet.SaveAs au lieu de ActiveWorkbook.SaveAs
 
Ensuite, au lieu de SaveAs, il y a peut-être d'autres moyens interessants.
Voir par exemple, http://www.vbforums.com/archive/in [...] 51820.html , où un nouveau Workbook est créé par Set wbk_New = Workbooks.Add puis une feuille est mise dedans par aSheet.Copy Before:=wbk_New.Worksheets(wbk_New.Worksheets.Count)
 
 
 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed