Exporter une feuille dans un autre classeur selon le nom de la feuille

Exporter une feuille dans un autre classeur selon le nom de la feuille - VB/VBA/VBS - Programmation

Marsh Posté le 16-04-2010 à 14:24:22    

Bonjour,
 
voila petit débutant dans le monde du VisualBasic, et pour ces débuts plus particulièrement du VBA, je me lance dans les macros afin d'optimiser et automatiser mes données/tableaux Excel de stage.
 
Jusque là j'arrive à me dépatouiller en farfouillant la toile, cependant je me trouve face à un mur que je n'arrive aps à franchir.
 
(rentrons dans le sujet)
 
Je dispose d'un classeur excel comprenant une feuille "data" dont j'extrait pour chaque ligne (produit) un certains nombres de variables que je référence dans une nouvelle feuille (par produit) sous un tableau. J'ai réussi à crééer une maccro pour automatiser tout ca et ca marche plutot bien (même si un "puriste" serait surement un peu dégouté de mon code" ).
 
Mon problème étant qu'à présent j'aimerais enregistrer(ou copier) chaque feuille dans un autre classeur, et ce selon une cellule de cette feuille (à savoir le type de produit). Pour se faire je me suis dis que j'allais nommer chaque feuille (lors de la création) selon leur type, ainsi j'obtiens un certains nombre de feuille selon ce schéma :
SPOT1, SPOT2, SPOT3...
WALL1, WALL2, WALL3...
ACC1, ACC2, ACC3...
 
Cependant je n'ai pas encore trouvé comment exporter une feuille d'un classeur à un autre, et je ne sais pas non plus comment sélectionner une partie du nom de la feuille afin de différencier les feuilles dans des classeurs différents... (ceci étant dis je m'y prend peut être mal dans ma méthode).
 
Si quelqu'un pouvais m'éclairer sur :  
-l'exportation d'une feuille vers un autre classeur
-la sélection d'une feuille selon une partie de son nom
 
Merci beaucoup d'avoir pris connaissance de mon problème, et merci encore plus si une aide m'est proposé.
 
Peace.

Reply

Marsh Posté le 16-04-2010 à 14:24:22   

Reply

Marsh Posté le 16-04-2010 à 15:12:18    

Bonjour,
 
  Un bout de solution, pour copier une feuille d'un classeur à l'autre. Les 2 classeurs sont ouverts dans Excel.

Code :
  1. Sub test()
  2. Dim objWbk As Workbook
  3. Dim objSht1 As Worksheet, objSht2 As Worksheet
  4.     ' Selection de la feuille source du classeur actif par son nom.
  5.     ' (feuille à copier)
  6.     Set objSht1 = ThisWorkbook.Worksheets("Data1" )
  7.    
  8.     ' Classeur destination
  9.      Set objWbk = Application.Workbooks("Classeur2.xls" )
  10.    
  11.     ' Feuille destination
  12.     Set objSht2 = objWbk.Worksheets("Data2" )
  13.    
  14.     ' Copie de la feuille.
  15.     objSht1.Copy before:=objSht2
  16. End Sub


 
Pour la sélection d'une feuille par une partie de son nom, voilà une ébauche de solution à adapter:

Code :
  1. For Each objSht1 In Worksheets
  2.         If InStr(1, objSht1.Name, "SPOT", vbTextCompare) > 0 Then
  3.             ' Je suis sur une feuille dont le nom commence par SPOT
  4.             ......
  5.         End If
  6.     Next objSht1


 
 
Et moi, je suis en vacances pour une semaine. :bounce:  
 

Reply

Marsh Posté le 16-04-2010 à 15:31:25    

Merci beaucoup, j'vais regarder ça =)
 
Bonne vacance, je t'envie... Rien pour moi avant le 26 juin xD

Reply

Sujets relatifs:

Leave a Replay

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