Si le fichier est ouvert ne pas le fermer en VBA

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

Tophe2

XLDnaute Impliqué
Bonjour le forum,

Jusqu'à présent j'utilisé ce code pour faire fonctionner ma macro maintenant j'aimerai l'utiliser dans le cas inverse c'est à dire si le classeur est ouvert ne pas le fermer si il n'est pas ouvert l'ouvrir puis le fermer ??? auriez vous une solution !!!

Dim x As Workbook

On Error Resume Next
Set x= Workbooks("toto.xlsm")
On Error GoTo 0


If Not x Is Nothing Then x.Close

Merci pour votre aide
Bonne Journée
Christophe.
 
Re : Si le fichier est ouvert ne pas le fermer en VBA

Bonjour,
peut-être quelque chose dans le genre
Code:
If Not x Is Nothing Then
    'condition si classeur ouvert
Else
    x.Open 'peut-être nécessité d'indiquer le chemin complet du classeur dans Set x= Workbooks("toto.xlsm")
    MsgBox x.FullName
    x.Close
End if
Non testé
A+

Edit : bonjour Philippe
 
Re : Si le fichier est ouvert ne pas le fermer en VBA

Bonjour Tophe2, Philippe, David,

Code:
Dim chemin$, fich$, x As Workbook
chemin = ThisWorkbook.Path & "\" 'à adapter
fich = "toto.xlsm"
On Error Resume Next
Set x = Workbooks(fich)
On Error GoTo 0
If x Is Nothing Then
  Application.ScreenUpdating = False
  Workbooks.Open chemin & fich
End If
With Workbooks(fich)
  '---suite du code---
  If x Is Nothing Then .Close 'True 'pour l'enregistrer
End With
End Sub
A+
 
Re : Si le fichier est ouvert ne pas le fermer en VBA

Bonjour Job75, Philippe, David,

Merci pour vos propositions ça marche super chez moi (code de job75), petite question est ce que j'obtiens le même résultat sur des ordinateurs en réseau ou il faut modifier un bout du code ?

Bonne Journée
Christophe.
 
Re : Si le fichier est ouvert ne pas le fermer en VBA

Bonjour Tophe2,

Cela doit fonctionner aussi en réseau.

Si le fichier partagé a été ouvert par un autre utilisateur, il s'ouvre en lecture seule.

On ne peut donc pas enregistrer ses modifications (s'il y en a), donc écrire :

Code:
'-----
If x Is Nothing Then .Close False
'-----
A+
 
- 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
XL 2021 VBA excel
Réponses
4
Affichages
174
Réponses
4
Affichages
463
Retour