Bonjour à tous,

Je rencontre un souci sur lequel je bute depuis un moment.

Le but de mon code est d'ouvrir l'application EXCEL, d'ouvrir un document précis (que j'ai paramétré) dans mon "fexcel", d'importer une donnée d'une application tierce (un code numérique) puis de lancer une macro VBA présente dans mon classeur EXCEL.

Or, dès que j'arrive à la ligne d’exécution de ma macro du fichier EXCEL, j'ai ce message d'erreur "Impossible d'exécuter la macro 'Compétences.xlsm!Feuul1.MAJClasseur'. Il est possible qu'elle ne soit pas disponible dans ce classeur ou que toutes les macros soient désactivées."

A noter que ma macro complémentaire que j'essaie de lancer avant : "Builder5.xlam" ne s’exécute pas non plus mais j'imagine que les 2 problèmes sont liés.

La ligne en question : appExcel.Run(xls.Name & "!Feuil1.MAJClasseur")

Mon code complet :
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Private Sub SimpleButton4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SimpleButton4.Click
 
        Dim appExcel As Excel.Application 'Declaration Application Excel'
        Dim xls As Excel.Workbook           'Declaraton Classeur Excel'
        Dim wsExcel As Excel.Worksheet    'Feuille Excel'
        Dim codeaidant As String
 
        appExcel = CType(CreateObject("Excel.Application"), Excel.Application)
        appExcel.AutomationSecurity = Microsoft.Office.Core.MsoAutomationSecurity.msoAutomationSecurityForceDisable
 
        Dim patht As String = appExcel.LibraryPath.Replace("LIBRARY", "XLSTART") 'copie du codeaidant'
        appExcel.Workbooks.Open(appExcel.LibraryPath & "\Builder5.xlam")      'Ouvre la macro complementaire Builder5.xlam'
        appExcel.Workbooks("Builder5.xlam").RunAutoMacros(1)
 
 
        xls = appExcel.Workbooks.Open(My.Settings.fexcel, 0, False, 5, "", "", False, Excel.XlPlatform.xlWindows, "", True, False, 0, True, False, False)
        '\\sfich01\Public\Report One\Tableaux de bords\Compétences.xlsm
        'wsExcel correspond à la première feuille du fichier
        'worksheets(1) correspond à la feuille 1 du fichier Excel'
        wsExcel = xls.Worksheets(1)
 
        If typedemande.TrimEnd = "I" Then
            codeaidant = divers.formatecode(code, divers.strtaillecodeaidant)
        Else
            codeaidant = ""
        End If
 
        'Import de données'
        appExcel.Visible = True
        xls.Worksheets(1).range("B3").Value = codeaidant
        appExcel.Run(xls.Name & "!Feuil1.MAJClasseur")
 
        'lancement de la macro dans le fichier excel ouvert'
        On Error Resume Next
        If appExcel.Version < "12.0" Then
            appExcel.Run("Builder5.xla!CustomMAJ5", "workbook")
            If Err.Number <> 0 Then
                appExcel.Run("Viewer5.xla!CustomMAJV5", "workbook")
            End If
        Else
            appExcel.Run("Builder5.xlam!CustomMAJ5", "workbook")
            If Err.Number <> 0 Then
                appExcel.Run("Viewer5.xlam!CustomMAJV5", "workbook")
            End If
        End If
 
    End Sub
Merci d'avance de votre aide !