Macro Word : récupérer les résultats dans un fichier Excel

isamur -  
 isamur -
Bonjour,

J'ai créé une macro dans Word et je souhaite récupérer les valeurs obtenues dans un fichier Excel (à créer). Les valeurs en question sont contenues dans deux variables, "st" et "nom", avec une boucle qui va de 1 à 100.

Voici un extrait du code :

Sub Liste()
....
Workbooks.Add
fichier = "C:\Users\Utilisateur\Desktop\LISTE.xls"
ActiveWorkbook.SaveAs fichier
For x = 1 To 100
...
ActiveSheet.Cells(x, 1).Value = st
ActiveSheet.Cells(x, 2).Value = nom
Next x
Workbooks("LISTE.xls").Save
Workbooks("LISTE.xls").Close
End Sub

Problèmes:
La macro marche, mais ensuite je ne peux pas ouvrir le fichier LISTE. Je dois aller dans le gestionnaire des tâches, rechercher le processus Excel et y mettre fin. C'est seulement ensuite que je peux ouvrir le fichier, le déplacer, etc.
Le mieux serait que la macro ouvre le fichier à la fin. J'ai essayé d'ajouter l'instruction:
Workbooks.Open ("C:\Users\Utilisateur\Desktop\LISTE.xls")
mais il ne se passe rien.
D'ailleurs, il ne serait peut-être pas nécessaire de fermer le fichier et de le rouvrir, mais il faudrait que je le voie affiché à l'écran (et que je puisse intervenir dessus), or ce n'est pas le cas.

Des solutions ?

Merci d'avance pour votre aide !

2 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    Essaie ceci:

    Option Explicit
    Sub Test()
       Dim oExcel As Object
       Dim oBook As Object
       Dim oSheet As Object
       Dim st As String
       Dim nom As String
       Dim x As Integer
       st = "essai"
       nom = "azerty"
       Set oExcel = CreateObject("Excel.Application")
       Set oBook = oExcel.Workbooks.Add
       Set oSheet = oBook.Worksheets(1)
       For x = 1 To 100
       oSheet.Cells(x, 1).Value = st
       oSheet.Cells(x, 2).Value = nom
       Next x
       oBook.SaveAs "C:\Users\LePivert\Documents\monclasseur.xlsx" 'adapter le chemin
       oExcel.Quit
       End Sub
    


    pour accéder au classeur mettre ce code

    Sub Test()
       Dim oExcel As Object
       Dim oBook As Object
       Dim oSheet As Object
       Dim st As String
       Dim nom As String
       Dim x As Integer
       st = "essai"
       nom = "azerty"
       Set oExcel = CreateObject("Excel.Application")
       oExcel.Visible = True
       Set oBook = oExcel.Workbooks.Add
       Set oSheet = oBook.Worksheets(1)
       For x = 1 To 100
       oSheet.Cells(x, 1).Value = st
       oSheet.Cells(x, 2).Value = nom
       Next x
      ' oBook.SaveAs "C:\Users\LePivert\Documents\monclasseur.xlsx" 'adapter le chemin
       oExcel.Quit
       End Sub


    1
  2. isamur
     
    ça marche ! C'est exactement ce qu'il me fallait. Et avec un code beaucoup plus "propre" que mon bidouillage.

    Merci beaucoup Le Pivert pour cette réponse ultra-rapide !
    0