Ouvrir un Classeur depuis un autre par macro

Salut chers tous

J'ai trois classeurs A.Xlsm ; B.Xlsm et C.Xlsm contenus dans le même dossier

J'aimerais par macros Ouvrir depuis le classeur actif l'un des 2 Autres ou l'activer s'il est déjà ouvert

Par exemple le code suivant ouvre le classeur B :

Workbooks.Open Filename:=ThisWorkbook.Path & "\B.xlsm"

Je voudrais completer mon code de telle sorte que si le classeur B est deja ouvert qu'il soit activé

Merci et a plus

Bonjour,

à tester,

Sub test()  'auteur leroissejp
Dim fichier As String
fichier = "B.Xlsm"
    If EstDansCollection(Workbooks, fichier) = True Then
        Workbooks(fichier).Activate
    Else
        Workbooks.Open (ThisWorkbook.Path & "\" & fichier)
    End If
End Sub

Private Function EstDansCollection(Coln As Object, Item As String) As Boolean
Dim obj As Object
On Error Resume Next
Set obj = Coln(Item)
EstDansCollection = Not obj Is Nothing
End Function

Merci i20100

C'est super.

Je voudrais qu'on ajoute un autre détail a cette macro : Au cas ou le fichier n'existe pas dans le dossier on obtient un message et rien ne se produit. C'est possible?

re,

voici la modification,

Sub test()
Dim fichier As String
fichier = "B.Xlsm"
    If EstDansCollection(Workbooks, fichier) = True Then
        Workbooks(fichier).Activate
    Else
        On Error Resume Next
        Workbooks.Open (ThisWorkbook.Path & "\" & fichier)
        If Err.Number <> 0 Then Err.Clear: MsgBox "Fichier introuvable"
    End If
End Sub

Merci Chef c'est super!

Merci pour ce retour, au plaisir!

si le problème est résolu, s.v.p. clôturer le fil, par un clic sur le bouton

resolu

Merci!

Rechercher des sujets similaires à "ouvrir classeur macro"