Exécution macro excel depuis vb.net

Elhyra Messages postés 24 Date d'inscription vendredi 5 octobre 2018 Statut Membre Dernière intervention 23 novembre 2018 - 23 nov. 2018 à 10:45
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 23 nov. 2018 à 11:58
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

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
23 nov. 2018 à 11:04
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

0
Elhyra Messages postés 24 Date d'inscription vendredi 5 octobre 2018 Statut Membre Dernière intervention 23 novembre 2018
23 nov. 2018 à 11:09
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
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
23 nov. 2018 à 11:35
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é!!!!!!!!!!!!!
0
Elhyra Messages postés 24 Date d'inscription vendredi 5 octobre 2018 Statut Membre Dernière intervention 23 novembre 2018
23 nov. 2018 à 11:43
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 !
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
23 nov. 2018 à 11:58
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é!
0
Rejoignez-nous