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

Fermé
isamur - 1 sept. 2020 à 11:24
 isamur - 1 sept. 2020 à 16:00
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 !
A voir également:

2 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
Modifié le 1 sept. 2020 à 12:14
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
ç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