Problème sur macro pour afficher/ouvrir un fichier prédéfini

Bonjour le Forum !

Je prolonge un de mes anciens sujets

https://forum.excel-pratique.com/excel/afficher-1-fichier-et-l-ouvrir-s-il-est-pas-encore-ouvert-t36523.html

Grâce à l’aide que j’ai trouvée sur le Forum, je dispose d’une macro qui permet d’afficher un fichier prédéfini (ou de l’ouvrir s’il n’est pas déjà ouvert) en cliquant sur un bouton.

Sub Fichier_Ouvrir_fichier_test()
Dim I As Integer

  For I = 1 To Workbooks.Count
    If Workbooks(I).Name = "fichier_test.xls" Then
      Windows("fichier_test.xls").Activate
      Exit For
    End If
  Next I
  If I > Workbooks.Count Then
    Workbooks.Open "D:\FICHIERS\fichier_test.xls"
  End If
End Sub

J’ai installé cette macro qui fonctionnait bien sur un 2ème ordi, mais maintenant, si le fichier souhaité est déjà ouvert (mais pas affiché parce qu’un autre classeur est actif), j’obtiens le message suivant :

fichier_test.xls est déjà ouvert. Si vous l’ouvrez à nouveau, toutes vos modifications seront perdues. Voulez-vous rouvrir fichier_test ?

Quelqu'un sait-il ce qu'il faut faire pour éviter ça ?

Merci !!!

Bonjour Gloub, bonjour le forum,

Peut-être comme ça :

Sub Fichier_Ouvrir_fichier_test()
Dim CL As Workbook 'déclare la variable CL (CLasseur)

On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante)
Set CL = Workbooks("fichier_test.xls") '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é déclenchée
    Err.Clear 'supprime l'erreur
    Workbooks.Open "D:\FICHIERS\fichier_test.xls" 'ouvre le classeur
    Set CL = ActiveWorkbook 'définit le classeur CL
End If 'fin de la condition
CL.Activate 'active le classeur CL
'tu pourras par la suite utiliser [CL] a la place de [Workbooks("fichier_test.xls")] dans le code
End Sub

Yes !!!

Merci

Rechercher des sujets similaires à "probleme macro afficher ouvrir fichier predefini"