Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

enregistrer un classeur et ouvrir un autre

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

Blafi

XLDnaute Occasionnel
Bonjour à tous ,

Quelqu'un peut-il m'aider à résoudre mon pb car je ne sais quel code VBA employer :

J'ai un classeur 1 qui est ouvert et sur lequel je travaille.

A la fin de ce travail, j'ai une macro qui devrait :
1 - enregistrer ce classeur et le fermer (ça je sais faire)
2 - ouvrir un classeur 2 s'il n'est pas déja ouvert (ça je ne sais pas !)

ma question est en fait comment dire " si le classeur 2 est déja ouvert, ne rien faire; dans le cas contraire l'ouvrir et le désigner comme classeur actif"..

C'est certainement assez simple mais j'y arrive pas ..

Merci d'avance de vos réponses et à bientôt..
 
Re : enregistrer un classeur et ouvrir un autre

Salut Blafi faut-il considérer que l'emplacement du fichier à ouvrir est connu d'avance ?
Si c'est le cas alors :
Workbooks.Open Filename:= _
"Chemin\NomClasseur.xls"
Dans le code du Classeur à Fermer, l'exécution de ce code doit se faire ben entendu avant la fermeture.
Ciao
 
Dernière édition:
Re : enregistrer un classeur et ouvrir un autre

Merci Brunet pour ta réponse rapide...

J'ai pris bonne note de ton code et pour répondre à ta question : oui le chemin du fichier est connu d'avance, donc je le mettrai...

Par contre, est-ce que je ne risque pas d'avoir un blocage si le fichier en question est déja ouvert ? ( ce que l'utilisateur n'est pas sensé savoir)
c'est pourquoi je demandais la manière de dire "si le fichier est ouvert , ne rien faire..."

Merci de cette précision.
A ++
 
Re : enregistrer un classeur et ouvrir un autre

Bonsoir,

Tu peux tester si le fichier est deja ouvert comme ceci :

Sub Test()
ATester = "Test.xls"
For Each X In Workbooks
If X.Name = ATester Then Ouvert = True Else Ouvert = False
Next
If Ouvert Then Workbooks(ATester).Activate Else Workbooks.Open Filename:=ATester
End Sub
 
Re : enregistrer un classeur et ouvrir un autre

Bonjour tlm,

Ce que propose Catrice, vérifie si le classeur est ouvert sur son propre pc.

Dans le cas où l'on doit vérifier si un autre utilisateur l'a ouvert.
A condition que ce n'est pas un classeur "partagé", si un utilisateur l'a ouvert, le second utilisateur ouvrira ce classeur en lecture seule, il y a donc moyen de vérifier cette propriété.
Code:
Sub test_readonly()
Dim Wbk As Workbook

Application.ScreenUpdating = False
Set Wbk = Workbooks.Open(Filename:="D:\test.xls")

If Wbk.ReadOnly = True Then
    Wbk.Close False
    MsgBox "le fichier est déjà ouvert par un autre utilisateur"
End If
Application.ScreenUpdating = True

End Sub
 
Dernière édition:
Re : enregistrer un classeur et ouvrir un autre

Re bonjour...

Merci Catrice et ftho pour vos solutions...

Le système de Catrice me convient parfaitement car les fichiers sont sur un seul ordinateur. Je garde quand mçeme la solutions de ftho si un jour j'en ai besoin...

Encore merci et à ++ sur cet excellent forum...
 
- 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

  • Question Question
Microsoft 365 Classeur Disparu
Réponses
2
Affichages
516
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…