Bonjour,
Encore et toujours mes problèmes ^^ cette fois ci je n'arrive pas à executer une macro.

Circonstance : je l'éxecute depuis vb.net, avec quelques arguments composés de variable string et de variable workbook.
J'ouvre le fichier qui reçoit le traitement, je lance la macro, je ferme, le tout dans un boucle pour tout une série de fichier (d'où l'intérêt de l'automatisation)
La macro est normalement précédé d'un formulaire, mais je l'ai modifié en faisant en sorte que le formulaire recueille uniquement les arguments avant d’exécuter la procédure.
La macro est donc dans le code du form, dans un fichier xlam.

Voici mon code vb :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 Dim appExcel As New excel.Application
        appExcel = CType(CreateObject("Excel.Application"), excel.Application)
        Dim doc As excel.Workbook
        For Each xls In Chemins
            doc = appExcel.Workbooks.Open(xls)
            appExcel.Run("Importation", TextBox2.Text, TextBox1.Text, "X", doc, Label5.Text)
            doc.Close()
        Next
        appExcel.Quit()
Encore une fois en phase de test, je sais qu'il y a des choses à modifier pour les bonnes pratiques ^^

et voici la partie intéressante de la macro :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub CommandButton2_Click()
    Dim cycle As String
    Dim bactérie As String
    Dim recherché As String
    cycle = TextBox1.Text
    bactérie = TextBox2.Text
    recherché = "X"
    Call Importation(cycle, bactérie, recherché, excel, fichier)
    Unload UserForm2
End Sub
 
[...]
 
Sub Importation(cycle As String, bactérie As String, recherché As String, excel As Workbook, fichier As String)
   [...]
End Sub
A l'éxecution, on m'annonce la macro impossible à exécuter.