• Initiateur de la discussion Initiateur de la discussion janot
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

janot

Guest
St le forum,

Juste une toute petite question qui va vous sembler ridicule mais comment determiner qu'un fichier est ouvert ?

Je m'explique, j'ai un programme qui ouvre plusieurs fichiers selon critères mais mon problème est que je ne connais pas la ligne de commande pour lui dire : si le classeur("untel") est déjà ouvert, alors....
voilà, question très bête mais quand on ne sait pas, on ne sait pas...

A bientot
 
Re: Test si Classeur Ouvert : Test par Boucle sur WB ou Gestion de l'Erreur

Bonsoir Janot, le Forum

La première réaction (logique) serait de boucler sur la collection de WorkBooks de la sorte :

Sub BoucleSurWBCollection()
Dim Fichier As String
Dim WB As Workbook
Dim i As Byte

Fichier = "TestFichier.xls" '<<<<< récupérer ta variable fichier...

For Each WB In Workbooks
If WB.Name = Fichier Then
i = i + 1
MsgBox "le fichier : " & Fichier & " est déjà ouvert...."
Exit For
End If
Next
If i = 0 Then MsgBox "le fichier : " & Fichier & " n'est PAS ouvert...."
End Sub



Mais il y a bien plus simple et rapide en gérant l'erreur de WorkBooks(x).Activate

Sub TestErreurWBActivate()
Dim Fichier As String

Fichier = "TestFichier.xls"

On Error Resume Next
Workbooks(Fichier).Activate
If Err = 0 Then
MsgBox "le fichier : " & Fichier & " est déjà ouvert...."
Else
MsgBox "le fichier : " & Fichier & " n'est PAS ouvert...."
End If

End Sub

Bonne soirée
@+Thierry
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
210
Retour