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
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 = xlSheet.Name xlBook.Close() MsgBox(phase) End Sub End Class
l'erreur est la suivante :
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
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
Partager