Bonjour à tous,
j'aimerais savoir s'il est possible d'activer un bouton contenant une macro dans excel depuis VB.net.
Merci
Bonjour à tous,
j'aimerais savoir s'il est possible d'activer un bouton contenant une macro dans excel depuis VB.net.
Merci
Salut,
Tu peux directement lancer une Macro à partir de vb.net :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Dim Excel_App As New Excel.Application Dim Excel_Wb As Excel.Workbook Excel_Wb = Excel_App.Workbooks.Open(Chemin_classeur) Excel_App.Run(Nom_Macro) '...
bonjour cela ne fonctionne pas voici mon code il me dit que le nom de la macro n'est pas déclarée
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 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim XlApp As Microsoft.Office.Interop.Excel.Application = New Microsoft.Office.Interop.Excel.Application() Dim XLDestBook As Microsoft.Office.Interop.Excel.Workbook Dim XLSheet As Microsoft.Office.Interop.Excel.Worksheet Dim XlRange As Microsoft.Office.Interop.Excel.Range XLDestBook = XlApp.Workbooks.Open("C:\Users\Asus\Desktop\Dossier final - Copie.xlsm") XLSheet = XLDestBook.Sheets(1) 'Indique le numéro de la feuille souhaitée XlRange = XLSheet.Cells(5, 2) XlRange.Value = TextBox1.Text XlRange = XLSheet.Cells(1, 1) TextBox2.Text = XlRange.Value XlApp.Run(test) '... Xlapp.DisplayAlerts = False XLDestBook.Save() XLDestBook.Close() XlApp.DisplayAlerts = True XlApp.Quit()
Que fais ta macro ?
Il serait certainement plus pertinent de faire les modifications dans ton appli.
ma macro permet de sortir la fonction de la courbe de tendance sur le graphique et de la mettre sur une cellule
voici ma 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
17
18
19 Sub test() Dim Graph As Chart, Feuille As Worksheet, Trendline Dim Equation As String Set Feuille = ActiveSheet With Feuille.ChartObjects(1).Chart .HasTitle = True .ChartTitle.Text = "Loi de weibull" '.SeriesCollection(1).Trendlines.Add With .SeriesCollection(1).Trendlines(1) Range("C1").Value = Format(Now, "dd.m.yyyy") .DisplayEquation = True .DisplayRSquared = False ActiveSheet.Cells(4, 16).Value = .DataLabel.Text End With End With End Sub
Essaye çà :
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 Dim Excel_App As New Excel.Application Dim Excel_Wb As Excel.Workbook = Excel_App.Workbooks.Open(Chemin_de_ton_fichier_Excel) Dim Excel_Ws As Excel.Worksheet = Excel_Wb.Worksheets(1) 'Indique le numéro de la feuille souhaitée ou son nom Dim Graph As Chart Dim Equation As String With Excel_Ws.ChartObjects(1).Chart .HasTitle = True .ChartTitle.Text = "Loi de weibull" With .SeriesCollection(1).Trendlines(1) Excel_Ws.Range("C1").Value = DateAndTime.Now.Day & "." & DateAndTime.Now.Month & "." & DateAndTime.Now.Year .DisplayEquation = True .DisplayRSquared = False Excel_Ws.Cells(4, 16).Value = .DataLabel.Text End With End With
Bonjour,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click With New Microsoft.Office.Interop.Excel.Application() With .Workbooks.Open(System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\Dossier final - Copie.xlsm") .Sheets(1).Cells(5, 2).Value = TextBox1.Text TextBox2.Text = .Sheets(1).Cells(1, 1).Value .application.Run("test") .application.DisplayAlerts = False .Save() .Close() .application.DisplayAlerts = True End With .Quit() End With End Sub
Dernière modification par Invité ; 28/05/2019 à 07h46.
r.morel je télécharge les interop pour tester mes fichiers mais j'aimerais savoir comment un fichier existant peut être inexistant ?
et pour ton code dysorthographie j’essaierais demain là il est tard mais je le rajouterais surement sur un second bouton.
je vous dis toute l'évolution demain matin merci pour votre précieuse aide.
Bonjour,
Ton message d'erreur parle du fichier, mais en fait l'erreur peut toucher le fichier lui-même et/ou le chemin d'accès.
Si tu peux suivre le chemin d'accès dans l'Explorateur Windows et que le fichier est bien là, cela pourrait être un problème de droits d'accès géré par Windows. C'est le genre de coup de cochon qu'une mise à jour de Windows peut provoquer.
Un petit utilitaire très bien pour copier-coller des chemins d'accès. Une fois installé, il y a deux entrées de menu contextuel pour l'utiliser.
Salut,
Une petite erreur dans le lien de clementmarcotte : https://pathcopycopy.github.io/
As-tu essayé le projet que j'ai envoyé ?
J'ai peut-être trouvé une nouvelle piste ma macro ne se lance pas peut-être car elle n'est pas enregistrée dans le classeur ou non visible mais je ne sais pas comment visualiser tout cela.
ça vous semble possible que le problème provienne de là ?
https://www.developpez.net/forums/d1...pplication-vb/
Tu mets visible en commentaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 With GetObject("Excel.Application") '.visible = True
C'est parfait ça fonctionne correctement merci beaucoup.
C'est exactement ce que je souhaitais.
Existe t'il un moyen pour que le fichier Excel ne s'ouvre qu'avec VB ?
Et une fonction qui permet que j'installe un groupe de données (fichier VB et Excel sur un autre bureau sans avoir à changer le parcours pour que VB trouve Excel ?
Bonjour Clément,
En fait si on regarde l'imprimer écran, on se rend compte que les instruction Application au niveau du classeur on fonctionnées sauf celle après close ce qui est légitime vue que par définition le classeur est fermé !
Utiliser application du classeur permet en autre que Run concerne bien une macro du classeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 .application.Run("test") .application.DisplayAlerts = False .Save() .application.DisplayAlerts = True .Close(False)
Dernière modification par Invité ; 05/06/2019 à 07h53.
dysorthographie c'est parfait ça marche mille merci par contre maintenant mon fichier Excel s'ouvre j'aimerais qu'il reste non visible si possible.
Merci beaucoup à tous pour toute l'aide apporté.
Partager