OVH Cloud OVH Cloud

Fermer Excel

4 réponses
Avatar
Luc
Salut,

VBA: je voudrais contr=F4ler qu'il y a au moins un classeur=20
ouvert, n'importe lequel autre que mon classeur actif,=20
sinon je ferme mon classeur actif et je quitte excel.=20
C'est possible? Merci.

4 réponses

Avatar
isabelle
bonjour Luc

VBA: je voudrais contrôler qu'il y a au moins un classeur
ouvert, n'importe lequel autre que mon classeur actif,
sinon je ferme mon classeur actif et je quitte excel.



si le fichier perso.xls est présent et qui y a que le classeur actif
d'ouvert Workbooks.Count retourne 2 sinon si le perso.xls n'est pas
présent Workbooks.Count retourne 1

If Application.Workbooks.Count = 2 Then
ActiveWorkbook.Close
Application.Quit
End If

isabelle

Avatar
garnote
Bonjour Isabelle,

J'avais pensé à :

Sub YaQuelqun()
If Application.Workbooks.Count > 1 Then Application.Quit
End Sub

Mais comment prévoir le cas où le Perso est absent ?
I fais-tu encore frette de par che vous ?

:-)

Serge


"isabelle" a écrit dans le message de news:

bonjour Luc

VBA: je voudrais contrôler qu'il y a au moins un classeur
ouvert, n'importe lequel autre que mon classeur actif,
sinon je ferme mon classeur actif et je quitte excel.



si le fichier perso.xls est présent et qui y a que le classeur actif
d'ouvert Workbooks.Count retourne 2 sinon si le perso.xls n'est pas
présent Workbooks.Count retourne 1

If Application.Workbooks.Count = 2 Then
ActiveWorkbook.Close
Application.Quit
End If

isabelle



Avatar
garnote
Comme ça, peut-être ?

Sub OnFerme()
For Each w In Application.Workbooks
If w.Name = "PERSO.XLS" Then k = k + 1
Next
If Application.Workbooks.Count > k + 1 Then Application.Quit
End Sub

SErge

Bonjour Isabelle,

J'avais pensé à :

Sub YaQuelqun()
If Application.Workbooks.Count > 1 Then Application.Quit
End Sub

Mais comment prévoir le cas où le Perso est absent ?
I fais-tu encore frette de par che vous ?

:-)

Serge


"isabelle" a écrit dans le message de news:

bonjour Luc

VBA: je voudrais contrôler qu'il y a au moins un classeur
ouvert, n'importe lequel autre que mon classeur actif,
sinon je ferme mon classeur actif et je quitte excel.



si le fichier perso.xls est présent et qui y a que le classeur actif
d'ouvert Workbooks.Count retourne 2 sinon si le perso.xls n'est pas
présent Workbooks.Count retourne 1

If Application.Workbooks.Count = 2 Then
ActiveWorkbook.Close
Application.Quit
End If

isabelle







Avatar
isabelle
mais oui ça rend la macro plus universelle.
je ne sais pas si c'est toujours le cas, il faudrait vérifier sur
plusieurs postes et différente version d'excel, mais je crois que le
Perso est toujours le premier de la liste. si c'est vraiment le cas, on
pourrait éviter la boucle et mettre seulement :

If Application.Workbooks(1).Name = "PERSO.XLS" Then k = k + 1

isabelle


Comme ça, peut-être ?

Sub OnFerme()
For Each w In Application.Workbooks
If w.Name = "PERSO.XLS" Then k = k + 1
Next
If Application.Workbooks.Count > k + 1 Then Application.Quit
End Sub

SErge

Bonjour Isabelle,

J'avais pensé à :

Sub YaQuelqun()
If Application.Workbooks.Count > 1 Then Application.Quit
End Sub

Mais comment prévoir le cas où le Perso est absent ?
I fais-tu encore frette de par che vous ?

:-)

Serge


"isabelle" a écrit dans le message de news:

bonjour Luc

VBA: je voudrais contrôler qu'il y a au moins un classeur
ouvert, n'importe lequel autre que mon classeur actif,
sinon je ferme mon classeur actif et je quitte excel.



si le fichier perso.xls est présent et qui y a que le classeur actif
d'ouvert Workbooks.Count retourne 2 sinon si le perso.xls n'est pas
présent Workbooks.Count retourne 1

If Application.Workbooks.Count = 2 Then
ActiveWorkbook.Close
Application.Quit
End If

isabelle