|
|
|
|
Bonjour,
J’utilise actuellement VB pour faire des opérations dans un classeur Excel.
J’ai donc un menu principal avec plusieurs boutons, chacun relié à une autre feuille de type Form dans VB.
Dès que je clique sur un bouton, une autre fenêtre (Form) s’ouvre donc.
Avec dans le form load de cette autre feuille :
Set appExcel = CreateObject("Excel.application")
Set wbExcel = appExcel.workbooks.open("chemin vers mon classeur excel")
Et dans le (Général) :
Dim appExcel as Excel.application
Dim wbExcel as Excel.workbook
Dim wsExcel as Excel.worksheet
Il y a également dans cette feuille un bouton « retour au menu principal » :
Private Sub cmdretour_Click()
wbExcel.close
appExcel.quit
set appExcel = nothing
set wbExcel = nothing
set wsExcel = nothing
feuille1.visible = false
menuprincipal.visible = true
Jusque là tt va bien, au menu principal je clique sur le bouton me menant à cette feuille, je fais les opérations dans le fichier, tt marche a merveille jusqu’à ce que je retourne au menu principal, le fichier excel se ferme alors et lorsque je clique de nouveau sur le bouton me menant à cette feuille, le fichier excel ne s’ouvre plus.
Je cherche donc une solution à ce problème car c’est plus que gênant si je suis obligé de fermer et relancer tte mon application a chaque fois que je veux retourner sur cette feuille.
Si vous voulez des précisions demandez-les moi, j’ignore si c’est très clair présenté comme ça.
Merci pour vos réponses !
Configuration: Windows XP Internet Explorer 8.0
Bonjour,
|
Salut et merci pour ta réponse.
|
Bonjour,
|
Eh bien voila, pour tout te dire, ce que tu m'as envoyé ce n'est pas vraiment ce que je recherche, mon problème n'a pas grand chose à voire avec le changement de page comme tu me l'a proposé.
|
Re,
Option Explicit Global appExcel As Excel.application Global wbExcel As Excel.workbook Global wsExcel As Excel.worksheet Sub main() Form1.Show 1 End Sub Ajuste le nom de la feuille à afficher, dans mon exemple c'est Form1 A l'execution, la procedure main affiche Form1 Sur la Form1 j'ai mis un bouton avec ce code Private Sub Command1_Click() Me.Visible = False Form2.Show 1 Me.Visible = True End Sub L'appui sur ce bouton affiche le Form2, il faudra faire la même chose pour chaque bouton de ta feuille Dans le code de la Form2 j'ai mis ce code: Private Sub Form_Load()
Set appExcel = CreateObject("Excel.application")
appExcel.Visible = True
Set wbExcel = appExcel.workbooks.open("Mon_Fichier.xls")
End Sub
La Form2 s'ouvre et lance Excel avec le fichier spécifié. Dans le code de Form2 j'ai mis aussi Private Sub Form_Unload(Cancel As Integer) appExcel.Quit Set appExcel = Nothing Set wbExcel = Nothing Set wsExcel = Nothing End Sub Cette procedure s'execute quand on appuie sur le ControlButton de fermeture de la fenetre ( la petite croix en haut à droite), Excel se ferme. Un nouvel appui sur le bouton de Form1 relance Excel. Il y a surement moyen de faire plus propre, mais je n'ai pas trouvé. Fermer la fenetre avec un bouton (Retour) ne marche pas, je ne sais pas pourquoi. Je continue de chercher. A+. |
Eureka! j'ai trouvé
Public appExcel As Excel.application Public wbExcel As Excel.workbook Public wsExcel As Excel.worksheet L'ouverture d'Excel se fait en appuyant sur les boutons de feuille principale Private Sub Command1_Click()
Dim Mon_Fichier As String
'ajuster le nom du fichier à ouvrir
Mon_Fichier = "D:\Mes documents\Mes tableaux\salaires2006.xls"
Me.Visible = False
Set appExcel = CreateObject("Excel.application")
appExcel.Visible = True
Set wbExcel = appExcel.workbooks.open(Mon_Fichier)
Form2.Show 1
Me.Visible = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
End
End Sub
La fermeture d'Excel se fait en appuyant sur le bouton retour de la feuille 2 Private Sub Retour_Click() appExcel.Quit Set appExcel = Nothing Set wbExcel = Nothing Set wsExcel = Nothing Me.Hide End Sub Private Sub Form_Unload(Cancel As Integer) appExcel.Quit Set appExcel = Nothing Set wbExcel = Nothing Set wsExcel = Nothing End Sub A+ |