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:
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
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
J'ai même tenté de faire
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
sub AutoExecute()
Merci pour votre aide !!
Partager