VB.net et fichier excel

Résolu/Fermé
dommax Messages postés 14 Date d'inscription mardi 5 avril 2016 Statut Membre Dernière intervention 26 février 2018 - 23 sept. 2017 à 14:13
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 - 23 sept. 2017 à 15:17
Bonjour,

Je suis en train de programmer une petite application VB.Net qui vient remplir les cellule d'un fichier excel.

Un appui sur un bouton crée le fichier Excel

Ci-dessous le code :

"
private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
nom = Me.TextBox1.Text
Dim ApExcel As Object
ApExcel = CreateObject("Excel.application") 'creer un objet
ApExcel.Application.DisplayAlerts = False
ApExcel.Workbooks.Add() 'Ajoute un nouveau classeur.
ApExcel.visible = False
ApExcel.Sheets(1).Cells(1, 1).Value = "Heure"
ApExcel.Sheets(1).Cells(1, 2).Value = "Temperature"
ApExcel.ActiveWorkbook.SaveAs(Filename:=dossier & "\" & nom & ".xls")
ApExcel.ActiveWorkbook.Close()
end sub
"

Ensuite, un appui sur un autre bouton ouvre le fichier excel, ci dessous le code :

"
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim ApExcel As Object
ApExcel = CreateObject("Excel.application")
ApExcel.Visible = True
ApExcel.Workbooks.Open(Filename:=dossier & "\" & nom & ".xls")

End Sub

"

Ces deux premiers codes fonctionnent parfaitement.


Maintenant, j'aimerait creer une fonction que j'appellerai a chaque fois que je veux remplir une cellule (+/- toute les 30 secondes), voila ce que j'ai écrit :

"
Sub temperature(ByVal Valeur1 As Integer)
Dim ApExcel As Object
ApExcel = CreateObject("Excel.application")
ApExcel.ActiveWorkbook.Sheets(1).Cells(ligne, 1).Value = Valeur1
ligne = ligne + 1
End Sub
"
Je precise que toute les variables que vous voyez sont des variable de type public.

Sauf que lorsque j'appelle la fonction temperature, j'ai le message d'erreur "L'exception NullReferenceException n'a pas été gerée. Variable objet ou variable d'un bloc With non définie."

Quelqu'un connnaitrait-il la source de ce probleme ? peut etre auriez vous une proposition de code pour ma fonction temperature(valeur1) ?

Merci par avance.
Cordialement,
Maxime.



A voir également:

1 réponse

yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
23 sept. 2017 à 14:28
bonjour, j'essaierais ceci:
- ne garder qu'un seul
Dim ApExcel As Object
, et le mettre en dehors des trois routines, pour qu'il soit valable pour les trois.
- ne garder qu'un seul
ApExcel = CreateObject("Excel.application")
1
dommax Messages postés 14 Date d'inscription mardi 5 avril 2016 Statut Membre Dernière intervention 26 février 2018
Modifié le 23 sept. 2017 à 14:34
Merci de ta réponse yg_bg
Je viens de le faire en mettant un "Public ApExcel as Object" dans un module, ca fonctionne egalement mais j'ai toujours le meme soucis...
0
dommax Messages postés 14 Date d'inscription mardi 5 avril 2016 Statut Membre Dernière intervention 26 février 2018 > dommax Messages postés 14 Date d'inscription mardi 5 avril 2016 Statut Membre Dernière intervention 26 février 2018
23 sept. 2017 à 14:37
Merci beaucoup, en ne gardant que un seul "ApExcel = CreateObject("Excel.application")" a l'ouverture de mon form, cela fonctionne !
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477 > dommax Messages postés 14 Date d'inscription mardi 5 avril 2016 Statut Membre Dernière intervention 26 février 2018
23 sept. 2017 à 15:17
parfait! peux-tu alors marquer le sujet comme résolu?
0