Bonjour
Je voudrais ouvrir, et travailler avec un fichier Excel.
Quelqu'un peut-il m'aider SVP
J'utilise VS2017
Merci de votre réponse
Bonjour
Je voudrais ouvrir, et travailler avec un fichier Excel.
Quelqu'un peut-il m'aider SVP
J'utilise VS2017
Merci de votre réponse
Bonjour,
Ceci devrait t'aider (attention, ne pas oublier d'ajouter la référence Microsoft.Office.Interop.Excel) :
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 Imports Excel = Microsoft.Office.Interop.Excel Public Class FBase 'La feuille Excel n'est pas ouverte (si déjà ouverte, alors approche un peu différente Private Sub BExcel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BExcel.Click XLSAPP = New Excel.Application XLSAPP.Visible = True XLSAPP.Workbooks.Open("D:\Tmp\ProbExcel\Test.xls") 'ouvir le fichier XLS ' Il est possible de programmer en VB ce qu'on ferait en Macro XLSAPP.Range("C4").Select() 'sélectionner une cellule XLSAPP.ActiveCell.FormulaR1C1 = "127" 'y placer la valeur 127 'Il est aussi possible de lancer une macro du fichier XLS ' XLSAPP.Run("MaMacro") 'exécuter la macro MaMacro sans argument 'XLSAPP.Run("UneMacro", "Coucou") ' appel de la macro UneMacro avec arguments .... ' ... ... ...
Bonne soirée,
Bonjour Phil Rob
Merci de ton aide
VS2017 m'a obligé de rajouter certains aménagements, mais cela semble fonctionner.
Il reste un petit problème et une interrogation
Petit problème : à l’instruction [XLSAPP.Visible = True], une page EXCEL vierge s'ouvre,
et ensuite à l'instruction [XLSAPP.Workbooks.Open("E:\Bureau\Nouvel Anniversaire\Anniversaires.xlsm")] le bon fichier s'ouvre par dessus.
Seulement à l'instruction [XLSAPP.Workbooks.Close] le bon fichier se ferme mais le précédent reste ouvert et je dois le fermer manuellement
Une interrogation : je n'ai pas trouvé la bonne instruction pour sélectionner une feuille particulière ( cela ne me gène pas pour l'instant mais j'aimerais le savoir)
Voici le début du programme
Merci de ta réponse
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 Imports Microsoft.Office.Interop Imports Microsoft.Office.Interop.Excel Module Module1 Public Property XLSAPP As Object Public i, R, NbrLignes As Integer Public DateJour, JourAnniv, JourVeille As Integer Public Nom As String Public DateAnniv, DateVeille As Date Public Sub Main() XLSAPP = New Excel.Application XLSAPP.Visible = True XLSAPP.Workbooks.Open("E:\Bureau\Nouvel Anniversaire\Anniversaires.xlsm") 'XLSAPP.WorkSheet.Select = "Feuil1" For i = 2 To 100 Nom = XLSAPP.Cells(i, 2).Value If Nom = "" Then Exit For End If NbrLignes = i - 1 Next For i = 2 To NbrLignes + 1 DateAnniv = XLSAPP.Cells(i, 3).Value DateVeille = DateAdd(DateInterval.Day, -1, DateAnniv) DateJour = Microsoft.VisualBasic.DateAndTime.Day(Now) JourAnniv = Microsoft.VisualBasic.DateAndTime.Day(DateAnniv) JourVeille = Microsoft.VisualBasic.DateAndTime.Day(DateVeille) If Month(DateAnniv) = Month(Today) And JourAnniv = DateJour Then End If Next XLSAPP.Workbooks.Close End Sub End Module
Bonjour,
Je n'ai pas le problème que tu relates avec le Visible = True et si on l'enlève, Excel ne fonctionne pas.
Je t'envoie le fichier ProbExcel.zip qui est un petit programme de tests. Le fichier Excel Test.Xls s'y trouve aussi, il faudra probablement quer tu modifies le chemin d'accès dans le code (ce n'est probablement pas D:\Tmp\ ... sur ton ordi). Attention, tu devras sans doute aussi retirer la référence Microsoft.Office.Interop.Excel et la rajouter aussitôt.
Tu pourras examiner comment je déclare ce dont j'ai besoin en Excel, (je te signale au passage que Public Property XLSAPP As Object est un non sens, Property ne sert pas à cela et en plus, pourquoi Object alors que tu sais très bien que c'est d'Excel qu'il s'agit).
Tu constateras aussi que les codes diffèrent selon qu'on veut faire une première ouverture d'Excel, ou d’accéder à une feuille déjà ouverte par ton programme, ou encore d’accéder à une feuille déjà ouverte mais,par un autre programme. Un résumé des trois situations se trouve dans le fichier CodeOK.TXT.
Pour ce qui est des codes "Excel" écrits dans mon code, il s'agit de VBA Excel. Ainsi, si tu veux savoir comment faire telle ou telle chose sous Excel, le plus simple, et sans connaissance particulière, est d'enregistrer sous Excel la macro qui fait ce travail et puis, de regarder la macro et de reporter ses codes dans VB, ou mieux (peut-être) puisque mes exemples l'illustrent, appeler cette macro à partir de VB.
Bon travail,
Bonjour,
Pour zigonner un fichier Excel en .net, même sans avoir Excel
https://github.com/closedxml/closedxml
EPPlus
NPOI
Règles du forum + Comment utiliser Developpez.com =
Découvrez le magazine gratuit de Developpez.com
Si vous développez en .NET, la FAQ, les tutos et l'aide MSDN sont vos amis !!!
Dvp.NET, la librairie .NET open source de Developpez.com
Bonjour,
À vrai dire, je ne les connais pas assez pour donner un avis crédible. J'ai plutôt joué directement avec Le SDK OpenXML. sur lequel ils sont basés.
Merci. J'essaierai d'y jeter un oeil un de ces jour pour voir s'il permet de le faire car c'est assez embêtant pour les utilisateurs qui reçoivent les Excel par emails, ils sont obligé de les ouvrir pour que le tableau s'affiche. Ca ne passe pas en aperçu.
Règles du forum + Comment utiliser Developpez.com =
Découvrez le magazine gratuit de Developpez.com
Si vous développez en .NET, la FAQ, les tutos et l'aide MSDN sont vos amis !!!
Dvp.NET, la librairie .NET open source de Developpez.com
Partager