XL 2010 test ouverture de classeur

  • Initiateur de la discussion Initiateur de la discussion Phillip
  • 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 !

Phillip

XLDnaute Occasionnel
Bonjour,

J'essaie de faire un test d'ouverture sur un classeur.

1) s'il est déjà ouvert, je ne fais rien (ou je passe au code suivant qui fait d'autres opérations dessus)
2) s'il est fermé je l'ouvre.

or, le code du fichier excel joint
- tente de l'ouvrir une seconde fois, c'est à dire qu'il ne détecte pas le classeur déjà ouvert si le code est dans le classeur
- ne semble pas l'ouvrir une seconde fois si le code est dans personal.xlbs mais

dans tous les cas :

- ne m'affiche pas ma message box prévue
- si on fait pas à pas, passe plusieurs fois la boucle de test d'ouverture (!?).

Je ne comprends pas...

merci de vos lumières

merci

Cordialement
 

Pièces jointes

Re : test ouverture de classeur

Bonjour Phillip,

Il ne faut pas mentionner le chemin du classeur.

Essaie comme ceci:

Code:
Sub testouverture()
Dim VClasseur As Workbook

For Each VClasseur In Workbooks
If VClasseur.Name = "testouverture.xlsm" Then
MsgBox "Workbook " & VClasseur.Name & " déja ouvert"
'==============================================================================================================
     Exit For
    End If
   Next VClasseur
    If VClasseur Is Nothing Then
    '  si le fichier est fermé, je l'ouvre
        Workbooks.Open Filename:= _
        "C:\xxxx\xxxx\Desktop\testouverture.xlsm"
     End If
End Sub
A +

Cordialement.
 
Re : test ouverture de classeur

Bonjour Phillip, Papou, bonjour le forum,

D'accord avec Papou-Net ! Une autre méthode :

Code:
Public Sub Macro1()
Dim CL As Workbook 'déclare la varaible CL (CLasseur)

On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante)
Set CL = Workbooks("Le_Classeur_à_tester.xlsx") 'définit le classeur CL (génère une erreur si ce classeur n'est pas ouvert)
If Err <> 0 Then 'condition : si une erreur a été généré
    Err.Clear 'supprime l'erreur
    Workbooks.Open ("C:\xxx\xxx\xxx\Le_Classeur_à_tester.xlsx") 'ouvre le classeur
    Set CL = ActiveWorkbook 'définit le classeur CL
End I 'fin de la condition
On Error GoTo 0 'annule la gestion des erreurs
End Sub

Ensuite j'utilise la variable CL chaque fois que je veux faire appel à ce classeur...
 
- 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

Discussions similaires

Réponses
4
Affichages
198
Réponses
17
Affichages
593
Retour