[VBA] VBA et Excel

Résolu
aurelien2723 Messages postés 181 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 26 janvier 2011 - 16 mai 2007 à 09:59
aurelien2723 Messages postés 181 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 26 janvier 2011 - 16 mai 2007 à 12:01
       Bonjour!

J'ai fait une petite application en VBA sur excel 2002 sous XP avec des forms toussa.
La première chose que fait dans l'application est

Application.visible false

pour que l'on voit uniquement ma form.

Pour la fermeture, je procède comme ça puisuqe j'ai besoin de fermer sans sauvegarder :

Function quitterSansSauvegarder()
    
    Dim XlSheet As Object
    Set XlSheet = Application
    
    XlSheet.Application.DisplayAlerts = False
    Application.Workbooks.Close
    Set XlSheet = Nothing
End Function


Or, si un fichier excel était en cours d'édition avant le lancement de mon appliVBA, tout le travail sera perdu :(

Je ne sais pas trop comment m'y prendre,
mais peut t'on savoir si un travail excel est en cours?
Si je ferme seulement mon classeur, et qu'aucun autre classeur n'était ouvert avant, le processus Excel.exe sera toujours présent...

Si quelqu'un à une idée svp.

Merci :)

14 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 mai 2007 à 10:05
Salut,
Et ceci?
Function quitterSansSauvegarder()
 
   Application.DisplayAlerts = False
   ActiveWorkbook.Close (False)

End Function<hr />, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
3
tubafat Messages postés 79 Date d'inscription lundi 17 juillet 2006 Statut Membre Dernière intervention 25 septembre 2007
16 mai 2007 à 11:49
Salut, j'ai déjà eu le même problème que toi et je l'ai réglé avec le bout de code suivant:

Application.DisplayAlerts = False
'Compter le nombre de Workbooks ouverts
If Workbooks.Count = 1 Then
Application.quit
Else: ActiveWorkbook.Close
End If





Tubafat
3
aurelien2723 Messages postés 181 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 26 janvier 2011 1
16 mai 2007 à 12:00
Ca y est :)

A priori j'ai trouvé la solution, ça à l'air de bien fonctionner :)

Function quitterSansSauvegarder()
    Application.Visible = True
    Application.DisplayAlerts = False
    
    ' si un seul woorbook est ouvert, on ferme excel
    If Application.Workbooks.Count = 1 Then
        Application.Quit
    Else    'sinon on ferme que l'applciation
        ActiveWorkbook.Close False
    End If
End Function

Merci bien jrivet :)
3
aurelien2723 Messages postés 181 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 26 janvier 2011 1
16 mai 2007 à 11:09
Merci mais :
"Erreur de compilation:
Variable non définie"

ActiveWorbook.Close False

:(
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
aurelien2723 Messages postés 181 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 26 janvier 2011 1
16 mai 2007 à 11:10
oups....
quel boulet  :s

désolé, avec le "k" ça marche mieux...
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 mai 2007 à 11:11
Salut,
Tu es sur que c'est du VBA Excel?
Sino ajoute Application devant ActiveWorkBook
Application.ActiveWorkBook.Close(False)

@+: Ju£i?n
Pensez: Réponse acceptée
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 mai 2007 à 11:11
Aucun pas vu désolé post croisé.

@+: Ju£i?n
Pensez: Réponse acceptée
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 mai 2007 à 11:12
N'oublie réponse acceptée sur le ou les posts qui ont pu t'aider.

@+: Ju£i?n
Pensez: Réponse acceptée
0
aurelien2723 Messages postés 181 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 26 janvier 2011 1
16 mai 2007 à 11:13
Comme je disais, le processus Excel.exe est toujours présent, mêmesi aucun classeur excel n'était ouvert avant.

et deuxième soucis, si un classeur était ouvert, il ne réaparait pas, mais un coup de
Application.Visible True  
devrait suffir.
0
aurelien2723 Messages postés 181 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 26 janvier 2011 1
16 mai 2007 à 11:27
je penses que je vais laisser comme ça, c'est à dire que la fenetre Excel vide restera une fois l'application fermer, et si il y avait un fichier, il reviendra...

Qu'en pensez vous?
A moins qu'on peut fermer l'application s'il n'y a plus de woorbook présent?

Merci :)
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 mai 2007 à 11:28
SAlut,
Lorsque tu veux Quitter Excel
Application.Quit

Ensuite si un Classeur etait déjà present il faut l'activer avec sa methode .Activate (mais nécessite peu être de récupérer le nom du classeur avant)

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
16 mai 2007 à 11:50
C'est quoi ce "Application" ?

    Dim XlSheet As Object
    Set XlSheet = Application

MPi
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 mai 2007 à 11:56
Salut,
Application est un objet disponible dans les VBA et qui  ici représente Excel.

@+: Ju£i?n
Pensez: Réponse acceptée
0
aurelien2723 Messages postés 181 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 26 janvier 2011 1
16 mai 2007 à 12:01
a dsl j'avais pas vu les nouvelles réponses

Merci à tous :)
0
Rejoignez-nous