Exécution macro excel depuis vb.net

Signaler
Messages postés
24
Date d'inscription
vendredi 5 octobre 2018
Statut
Membre
Dernière intervention
23 novembre 2018
-
Messages postés
7378
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 mai 2021
-
Bonjour,

Bonjour,

Aujourd'hui, j'ai réalisé une macro Excel qui permet de vérifier un fichier entier à l'aide de conditions. J'ai essayé de faire exécuter ma macro depuis vb.net. Cependant, dans mon code ci-dessous j’exécute la macro seulement sur un fichier ciblé. (C:\User\Desktop\Nomdufichier)

J'aimerais savoir si il est possible d’exécuter la macro directement sur le fichier excel ouvert sur notre PC ou bien d'ajouter une ligne de code spécifiant dans l'interface le chemin d’accès du fichier excel pour le vérifier celui-ci.

Si cela est possible j'aimerais avoir un exemple afin de m'appuyer dessus. En vous remerciant.

   
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Excel

Public Class Form1

Private Property objExcel As Object

Private Property objWorkbook As Object

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

'Ouverture du fichier excel
objExcel = CreateObject("Excel.Application")
objWorkbook = objExcel.Workbooks.Open("C:\Users\Julien\Desktop\macro\macro1.xlsm")
objExcel.Visible = True

'lancement de la macro dans le fichier excel ouvert
objExcel.run("Feuil1.macro")


End Sub
End Class

1 réponse

Messages postés
7378
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 mai 2021
122
Bonjour,

Je te donne un exemple pour ne pas utiliser cela en VB.Net et tu n'en tiens pas compte!

 objExcel = CreateObject("Excel.Application")



https://codes-sources.commentcamarche.net/source/100410-piloter-office-en-vb-net

Bon courage

Messages postés
24
Date d'inscription
vendredi 5 octobre 2018
Statut
Membre
Dernière intervention
23 novembre 2018

Mais j'ai passé ma soirée hier à réadapter mon code sur ta base pour n'arriver à rien, c'est exactement la même chose si je supprime cette ligne et que je met :

 Dim ApExcel As New Excel.Application
Dim wbExcel As New Excel.Worksheet
Messages postés
7378
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 mai 2021
122
Je ne vois pas où tu veux en venir avec cela:

'lancement de la macro dans le fichier excel ouvert
        objExcel.run("Feuil1.macro")


car il suffit de mettre le lancement de ta macro à l'ouverture de ton classeur. Cela se fait sur le classeur et tu n'as pas besoin de VB.Net. Excel est un compilateur!

Tu vas dans ThisWorkbook en haut à gauche dans l'éditeur et tu mets ce code:

Option Explicit
Private Sub Workbook_Open()
macro 'lancement de la macro
End Sub


ta macro se déclenchera à chaque ouverture du classeur.

Pourquoi faire simple quand on peut faire compliqué!!!!!!!!!!!!!
Messages postés
24
Date d'inscription
vendredi 5 octobre 2018
Statut
Membre
Dernière intervention
23 novembre 2018

Encore une fois mon but est de faire un .exe une application, quelque chose de très très simple.

Je veux que cette macro s'applique à l'ouverture d'un fichier excel quelconque, pas seulement le même !
Messages postés
7378
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 mai 2021
122
Je veux que cette macro s'applique à l'ouverture d'un fichier excel quelconque, pas seulement le même !

Les macros complémentaires sont faites pour cela dans Excel:

https://fr.wikiversity.org/wiki/Macros-commandes_VBA/Cr%C3%A9er_des_macros_compl%C3%A9mentaires

Je ne vois toujours pas l'utilité de passer par VB.Net, sinon créer une macro sur chaque classeur (pas seulement le même), là c'est pas gagné!