OVH Cloud OVH Cloud

Fermeture d'appli

2 réponses
Avatar
Henri
Salut =E0 tous,

Une fois de plus j'abuse de votre temps, mais je suis=20
vraiment bloqu=E9 et mon manque d'exp=E9rience de vb me fait=20
cruellement d=E9faut.=20

Le code que j'execute (ci apr=E8s), me permet d'ouvrir un=20
document excel en m=EAme temps que j'ouvre un formulaire=20
(form_load), j'affecte les variables wbk et sht=20
(globales) =E0 ce moment l=E0.
La proc=E9dure ajouttournee me permet en cliquant sur un=20
bouton de travailler sur la feuille excel.=20
La proc=E9dure fermer doit me permettre de fermer en m=EAme=20
temps le formulaire et la feuille excel.

Si j'ouvre mon formulaire, la feuille xl s'ouvre=20
=E9galement. Si je ferme aussit=F4t mon form, la feuille xl=20
se ferme =E9galement, et le processus xl est bien inactif.=20

Par contre, si avant de fermer j'execute la proc=E9dure=20
ajout.., les donn=E9es sur xl sont bien modifi=E9es, mais=20
lorsque je ferme le formulaire, xl disparait mais le=20
processus xl reste actif, et je ne peux pas recommencer=20
apr=E8s, sauf en quittant mon appli.=20

J'ai honte de vous envoyer tout =E7a, mais si quelqu'un se=20
sent l'=E2me d'un prof d'informatique..........


Option Compare Database

Option Explicit

Dim oApp As Excel.Application
Dim wbk As Excel.Workbook
Dim sht As Excel.Worksheet
*********************************************************
Private Sub Ajouttourn=E9e_Click()

ligne =3D 9
Cells(9, 3).Select
ActiveCell.FormulaR1C1 =3D Now()

End Sub
*********************************************************
Private Sub Fermer_Click()
=20
wbk.Save
wbk.Close
oApp.Quit
=20
Set sht =3D Nothing
Set wbk =3D Nothing
Set oApp =3D Nothing
=20
DoCmd.Close

End Sub
**********************************************************
Private Sub Form_Load()

Set oApp =3D CreateObject("Excel.Application")
=20
With oApp
=20
.Visible =3D True
On Error Resume Next
.UserControl =3D True
=20
strChemin =3D "D:\TRACABILITE\...." =20
Set wbk =3D oApp.Workbooks.Open(strChemin)
Set sht =3D wbk.ActiveSheet(1)
=20
End With

End Sub
**********************************************************

2 réponses

Avatar
Raymond
Bonjour.

J'ai monté tes fonctions sur 2000 et 2002 et je ne trouve rien d'anormal, la
cellule est bien modifiée et l'application est bien fermée normalement. je
peux la lancer à l'infini. j'ai seulement modifié la fonction ajout qui m'a
paru bizarre mais sans influence sur le déroulement du process. Tu peux
aussi supprimer le usercontrol dans ton cas.
Regarde ailleurs dans ton code, il est possible que tu ne passes pas dans
Fermer_Click.

voici ce que j'ai lancé sans problème:

Option Compare Database
Option Explicit

Dim oApp As Excel.Application
Dim wbk As Excel.Workbook
Dim sht As Excel.Worksheet

Private Sub Ajouttournée_Click()
oApp.Cells(9, 3).Select
oApp.ActiveCell.FormulaR1C1 = Now()
End Sub

Private Sub Fermer_Click()
wbk.Save
wbk.Close
oApp.Quit
Set sht = Nothing
Set wbk = Nothing
Set oApp = Nothing

DoCmd.Close

End Sub

Private Sub Form_Load()
Set oApp = CreateObject("Excel.Application")
With oApp
.Visible = True
On Error Resume Next
Set wbk = oApp.Workbooks.Open("c:classeur1.xls")
Set sht = wbk.ActiveSheet(1)
End With
Ajouttournée_Click
Fermer_Click
End Sub



--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Henri" a écrit dans le message de
news:057201c3671a$00c02970$
Salut à tous,

Une fois de plus j'abuse de votre temps, mais je suis
vraiment bloqué et mon manque d'expérience de vb me fait
cruellement défaut.

Le code que j'execute (ci après), me permet d'ouvrir un
document excel en même temps que j'ouvre un formulaire
(form_load), j'affecte les variables wbk et sht
(globales) à ce moment là.
La procédure ajouttournee me permet en cliquant sur un
bouton de travailler sur la feuille excel.
La procédure fermer doit me permettre de fermer en même
temps le formulaire et la feuille excel.

Si j'ouvre mon formulaire, la feuille xl s'ouvre
également. Si je ferme aussitôt mon form, la feuille xl
se ferme également, et le processus xl est bien inactif.

Par contre, si avant de fermer j'execute la procédure
ajout.., les données sur xl sont bien modifiées, mais
lorsque je ferme le formulaire, xl disparait mais le
processus xl reste actif, et je ne peux pas recommencer
après, sauf en quittant mon appli.

J'ai honte de vous envoyer tout ça, mais si quelqu'un se
sent l'âme d'un prof d'informatique..........


Option Compare Database

Option Explicit

Dim oApp As Excel.Application
Dim wbk As Excel.Workbook
Dim sht As Excel.Worksheet
*********************************************************
Private Sub Ajouttournée_Click()

ligne = 9
Cells(9, 3).Select
ActiveCell.FormulaR1C1 = Now()

End Sub
*********************************************************
Private Sub Fermer_Click()

wbk.Save
wbk.Close
oApp.Quit

Set sht = Nothing
Set wbk = Nothing
Set oApp = Nothing

DoCmd.Close

End Sub
**********************************************************
Private Sub Form_Load()

Set oApp = CreateObject("Excel.Application")

With oApp

.Visible = True
On Error Resume Next
.UserControl = True

strChemin = "D:TRACABILITE...."
Set wbk = oApp.Workbooks.Open(strChemin)
Set sht = wbk.ActiveSheet(1)

End With

End Sub
**********************************************************
Avatar
Raymond
.../...

En réfléchissant, je pense que ton ajout aurait dû t'indiquer une erreur. La
modif que j'ai fait est simpliste et il faut l'ajuster sur ton wbk ou ton
sht.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.