Activation feuille Excel avec VB.NET
Bonjour,
Je cherche une solution pour changer de feuille (passer d'une feuille à l'autre) dans un classeur Excel ouvert sous VB.NET. Voici mon code :
1) Mes déclarations au niveau d'un module :
Code:
1 2 3
| Public AppExcel2 As New Microsoft.Office.Interop.Excel.Application
Public Classeur2 As Microsoft.Office.Interop.Excel.Workbook
Public Feuil2 As Microsoft.Office.Interop.Excel.Worksheet |
2) Mon ouverture du classeur Excel au niveau procédure dans une form :
Code:
1 2
| Dim Classeur2 = AppExcel2.Workbooks.Open("C:\Users\Christian Hould\Documents\Vb9\Navigateur TSX\TSX1.xls")
Dim Feuil2 = Classeur2.Sheets("Feuil2") |
Aller jusqu'à là, tout va bien. Le classeur est ouvert par défaut sur la première feuille. Quelle est la commande pour passer d'une feuille à l'autre ? J'ai essayé à peu près tout ce qui est imaginable. Mais là je suis à bout d'imagination.
Merci de votre aide.
changer de feuille dans classeur par programme
should encore un petit detail,
La doc dit il n'a y a pas de classe Sheet malgre la presence de 2 collections Sheets et Worksheets mais seulement la classe Worksheet.
quand tu declare une feuille tu es oblige d'ecrire pour reprendre ton code :
Code:
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
|
'attention à l'imports je me suit gourre tu corriges
'imports pour MS Office Excel 2003
Imports Microsoft.Office.Interop
..............................
Dim appExcel As Excel.Application
Dim WbExcel As Excel.Workbook
Dim WsExcel As Excel.Worksheet 'c'est bon... on ne peut ecrire as Sheet
Dim XlRange As Excel.Range
appExcel = New Excel.Application
WbExcel = appExcel.Workbooks.Open(My.Settings.MonPath & "VbTraitement\EssaiNP.xls")
WsExcel = CType(WbExcel.Worksheets("Reception"), Worksheet) 'tu as utilise collection Worksheets et caste sur la classe Worksheet c'est bon...
WsExcel.Activate()
XlRange = WsExcel.UsedRange
'ici la suite je prefere revoir les 2 dernieres lignes comme suit:
WbExcel.Active()
WsExcel.Activate() 'active la feuille
XlRange = WsExcel.UsedRange
'je change de feuille avec le numero de feuille pour aller à n° 5 et
'j'utilise la collection Worksheets:
WbExcel.Worksheets(5).Activate 'active la numero 5
WbExcel.Worksheets(5).Select() 'je m'y pointe
' vigilance :attention au nom c'est celui que l'utilisateur donne à la feuille et gare aux ennuis si les gens le changent et enregistrent ca....
'au prochain demarrage ca va crasher.......
'c'est pour cela les numeros ne changent pas
' meme si l'utilisateur deplacent la feuille dans le classeur.....eh oui..... |
la tranquillite d'esprit se paye ....vois tu par la vigilance........
bon code........