Macro pour sauver la feuille courante dans un nouveau classeur

Macro pour sauver la feuille courante dans un nouveau classeur - VB/VBA/VBS - Programmation

Marsh Posté le 28-01-2014 à 10:03:19    

Hello hello,

 

J'ai un classeur divisé en 54 feuilles correspondants chacune à un set d'instruction que je dois passer chaque semaine un interlocuteur.
Je me suis dis que je suis feignant et que j'ai la flemme de remplir mon tableau, de le copier/coller dans une nouvelle feuille que je vais Sauvegarder dans un nouveau document. Alors je pourrais faire une macro qui le fait à ma place.

 

En cherchant un peu, j'ai trouvé ceci

 
Code :
  1. Sub Macro2()
  2.    
  3.     For Each feuille In ActiveWorkbook.Sheets
  4.     feuille.Copy
  5.     With ActiveWorkbook
  6.     .Title = feuille.Name
  7.     .Subject = feuille.Name
  8.     .SaveAs Filename:="animation_HP" + feuille.Name + ".xls"
  9.     End With
  10.    
  11.     Next
  12.     End Sub
 

Cette macro marche plutôt bien, même très bien, voire trop bien dans mon cas et applique ça à l'ensemble de mon classeur. Résultat, ça crée et ouvre tout seul 54 documents dans lesquels je retrouve mes instructions (j'ai testé et Excel 2010 a commencé à pleurer, true story  [:fail] )
J'ai jamais réellement écrit du VBA, mais j'ai compris qu'une partie du problème se trouve dans la boucle For Each feuille In ActiveWorkbook.Sheets.

 

Dont en une phrase, quelle est la syntaxe VBA pour ne sélectionner que la page courante au lieu de lancer une boucle sur l'ensemble de mon classeur?

 

Merci à qui prendra le temps de me lire  :jap:


Message édité par M-V le 28-01-2014 à 10:23:02
Reply

Marsh Posté le 28-01-2014 à 10:03:19   

Reply

Marsh Posté le 28-01-2014 à 11:04:11    

Pas testé mais je ne vois pas pourquoi ça ne fonctionnerait pas :
 

Code :
  1. Sub Macro1()
  2.      
  3.     ActiveSheet.Copy
  4.     With ActiveWorkbook
  5.      .Title = ActiveSheet.Name
  6.      .Subject = ActiveSheet.Name
  7.      .SaveAs Filename:="animation_HP" + ActiveSheet.Name + ".xls"
  8.     End With
  9.      
  10. End Sub


 
Par contre Excel 2010 c'est .xlsx je crois.

Reply

Marsh Posté le 31-01-2014 à 11:20:24    

Salut, et merci pour le coup de main :)
 
Ta fonction fait bien ce que je veux, mais elle sauvegarde le nouveau fichiers dans le répertoire Mes Documents.
 
Comment est-ce que je peux faire pour que, quel que soit l'endroit ou se trouve mon classeur original (en local ou sur un serveur de partage), la nouvelle feuille extraite soit sauvegardée au même endroit?
 
Merci d'avance pour ta réponse :jap:

Reply

Marsh Posté le 31-01-2014 à 11:33:22    

Code :
  1. Sub Macro1()
  2.     chemin = ActiveWorkbook.Path
  3.     ActiveSheet.Copy
  4.     With ActiveWorkbook
  5.      .Title = ActiveSheet.Name
  6.      .Subject = ActiveSheet.Name
  7.      .SaveAs Filename:=chemin + "\animation_HP" + ActiveSheet.Name + ".xls"
  8.     End With
  9. End Sub

Reply

Marsh Posté le 31-01-2014 à 11:55:25    

Super, merci beaucoup :)
 
J'avais vu la variable ActiveWorkbook.Path mais je savais pas vraiment comment l'intégrer au bouzin :jap:
 
Bonne journée

Reply

Sujets relatifs:

Leave a Replay

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