Création d'un fichier de sauvegarde sous Word

Création d'un fichier de sauvegarde sous Word - VB/VBA/VBS - Programmation

Marsh Posté le 30-07-2014 à 19:53:16    

Bonjour à tous,
 
Je suis un amateur dans le milieu du langage VBA (Macro Excel, presque exclusivement), mais je commence à me débrouiller sur ce sujet. :)
 
Je bloque avec une de mes macros :  
 
A partir de mon tableau Excel, dois :

  • Sélectionner la plage J4:M36 du tableau en feuille 3,
  • Copier la sélection
  • Ouvrir un nouveau fichier Word
  • Coller la selection dans le fichier Word
  • Sélectionner la totalité du fichier Word (Une sorte de Ctrl+A)  
  • Copier la sélection
  • Coller la sélection dans une autre feuille Excel  
  • Sauvegarder le fichier Word sous le nom "Historique date de la cellule "A2" de la feuille1
  • Fermer le fichier Word
  • Libérer l'espace que Word a pris dans la mémoire


Je ne peux pas (pour l'instant) vous fournir un exemple plus précis, mais j'ai déjà une macro qui fonctionne jusqu'au collage de la sélection dans Word (Troisième puce de la liste ci dessus.)  
Je bloque pour le reste : Je ne sais pas comment l'enregistrer sous le nom que je souhaite (A savoir que la cellule A2 de la feuille 1 de mon classeur .xls est la date que je dois faire apparaître.)
 
Je vais essayer de vous fournir la macro que j'ai réalisé jusque là, ce sera plus parlant, je pense.  
 
 
J'espère qu'une bonne âme pourra m'aider !  :ange:  

Reply

Marsh Posté le 30-07-2014 à 19:53:16   

Reply

Marsh Posté le 31-07-2014 à 20:17:34    

Bonjour,
 
J'ai réussi ! :) Voilà le code pour ceux que ça intéresse (pas grand monde visiblement x) )
 

Code :
  1. Range("J1:M1" ).Select
  2.     Range(Selection, Selection.End(xlDown)).Select
  3.     Selection.Copy
  4. Dim oWdApp As Object 'WordA.Application
  5. Dim oWdDoc As Object 'Word.Document
  6. Set oWdApp = CreateObject("Word.Application" )
  7. Set oWdDoc = oWdApp.Documents.Add
  8. oWdApp.Visible = True
  9. ActiveSheet.Range("J1:T35" ).Copy
  10. oWdApp.Selection.PasteSpecial
  11. Application.CutCopyMode = False
  12.     With oWdApp
  13.         .Selection.WholeStory
  14.         .Selection.Copy
  15.     End With
  16.     Sheets("Extraction traitée" ).Select
  17.     ActiveSheet.Range("J1" ).Select
  18.     ActiveSheet.Paste
  19. ActiveWorkbook.Save
  20.     oWdApp.Quit
  21.     Set objWord = Nothing
  22.     Application.CutCopyMode = False
  23.     ActiveWorkbook.Save


 
Ca fonctionne chez moi, pensez à ajuster le code pour votre propre utilisation.  
 
Cdlt

Reply

Sujets relatifs:

Leave a Replay

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