Bonjour!!!

J'ai un petit soucis de fonctionnement :

J'ai une application créée en VB (avec Visual studio express edition) avec plusieurs champs. En cliquant sur un bouton, les données de ces champs sont exportées vers un fichier excel. Dans ce fichier excel j'ai fait une macro de calcul et j'aimerais bien quelle s'execute une fois que j'ai exporté les donnée de mon application VB.

J'ai tenté des multitudes de solution avec la méthode RunAutoMacros et rien n'y fait!!!

Est-ce qu'il existe une méthode ou fonction qui permet de lancer une macro en particulier a partir d'une application VB ?

Voici mon code qui pourras peut-être m'aider a comprendre pourquoi la macro ne se lance pas:

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
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click      
 
        Dim appExcel As Excel.Application 'Application Excel
        Dim wbExcel As Excel.Workbook 'Classeur Excel
        Dim wsExcel As Excel.Worksheet 'Feuille Excel
 
        'Ouverture de l'application
        appExcel = CreateObject("Excel.Application")
        'Ouverture d'un fichier Excel
        wbExcel = appExcel.Workbooks.Open("******.xls")
        'wsExcel correspond à la première feuille du fichier
        wsExcel = wbExcel.Worksheets(1)
        wsExcel.Visible = True
        appExcel.Visible = True
        ' ici on compte le nombre de lignes et de colonnes du datatable
        With wbExcel
            Try
                .Worksheets(1).range("A2").value = Me.TextBoxRef.Text
                .Worksheets(1).range("B2").Value = Me.TextBoxDesignation.Text
                .Worksheets(1).range("C2").Value = Me.TextBoxClient.Text
                .Worksheets(1).range("D2").Value = Me.TextBoxNumCdeClient.Text
                .Worksheets(1).range("E2").value = Me.TextBoxOF.Text
                .Worksheets(1).range("F2").value = Me.ComboBoxTypePalette.Text
                .Worksheets(1).range("G2").value = Me.TextBoxTypeCarton.Text
                .Worksheets(1).range("H2").value = Me.TextBoxQteParCarton.Text
                .Worksheets(1).range("I2").value = Me.TextBoxCartonParPalette.Text
                .Worksheets(1).range("J2").value = Me.LabelQteParPal.Text
                .Worksheets(1).range("K2").value = "1"
                .Worksheets(1).range("L2").value = Me.LabelNbPalette.Text
            Catch ex As Exception
                MsgBox("Impossible d'exporter les données" & Chr(10) & "Rapport de l'erreur : " & Chr(10) & ex.ToString)
            End Try
            .Activate()
            .RunAutoMacros(Excel.XlRunAutoMacro.xlAutoActivate)
 
        End With
    End Sub
Et le code de ma macro (placé dans un module):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Sub Main()
Dim NbPalette, i As Integer
If Worksheets(1).Range("L2").Value > 1 Then
    NbPalette = Worksheets(1).Range("L2").Value
    Worksheets(1).Rows(2).Copy
    For i = 3 To NbPalette + 1 Step 1
        ActiveSheet.Paste Destination:=Worksheets("Feuil1").Rows(i)
        Worksheets(1).Range("K" & i).Value = (Worksheets(1).Range("K" & (i - 1)).Value) + 1
    Next i
End If
End Sub
J'ai même tenté de faire
sub AutoExecute()

Merci pour votre aide !!