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 : 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
 
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 : 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
 
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 :
Nom : Capture.JPG
Affichages : 136
Taille : 38,0 Ko

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