1 pièce(s) jointe(s)
VB NET VS2019 erreur avec Excel
Bonjour à tous(toutes),
J'ai deux petits programmes en apparence identiques, l'un fonctionne bien, l'autre envoie une erreur (voir image plus bas)
Le but est de renvoyer le nom de la dernière feuille d'un classeur xlsx (office 365)
Premier programme : qui fonctionne
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim fic As String = "d:\fichiertest.xlsx"
Dim phase As String
Dim xlApp = New Microsoft.Office.Interop.Excel.Application
Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet
xlBook = xlApp.Workbooks.Open(fic)
xlSheet = xlApp.Sheets(xlBook.Sheets.Count)
phase = xlSheet.Name
xlBook.Close()
MsgBox(phase)
End Sub
End Class |
Deuxième programme : qui renvoie l'erreur
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim fic As String = "d:\fichiertest.xlsx"
Dim phase As String
Dim xlApp = New Microsoft.Office.Interop.Excel.Application
Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet
xlBook = xlApp.Workbooks.Open(fic)
'xlSheet = xlApp.Sheets(xlBook.Sheets.Count)
phase = (xlApp.Sheets(xlBook.Sheets.Count)).name 'ligne en erreur, l'intellisense ne met d'ailleurs pas le N majuscule à "name"
xlBook.Close()
MsgBox(phase)
End Sub
End Class |
l'erreur est la suivante :
Pièce jointe 596022
Si quelqu'un pouvait m'expliquer je lui en serais très reconnaissant parce que là je ne vois pas bien la différence entre ces deux programmes si ce n'est que le premier utilise une variable de plus (xlSheet)
Merci