Ouvrir un Classeur depuis un autre par macro

Y compris Power BI, Power Query et toute autre question en lien avec Excel
K
KTM
Membre fidèle
Membre fidèle
Messages : 207
Appréciations reçues : 3
Inscrit le : 13 septembre 2018
Version d'Excel : 2013 FR

Message par KTM » 16 janvier 2019, 19:16

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
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 4'842
Appréciations reçues : 235
Inscrit le : 16 mars 2017
Version d'Excel : 2010 sur PC

Message par i20100 » 17 janvier 2019, 06:33

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
1 membre du forum aime ce message.
Une pensée partagée
Lorsque tu omets de marquer la question initiale comme étant résolu, tu prives les participants du forum d’une solution possible pour eux.
Merci! de faire un clic sur le bouton résolu pour nous aider à t'aider.
isabelle
K
KTM
Membre fidèle
Membre fidèle
Messages : 207
Appréciations reçues : 3
Inscrit le : 13 septembre 2018
Version d'Excel : 2013 FR

Message par KTM » 17 janvier 2019, 07:57

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?
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 4'842
Appréciations reçues : 235
Inscrit le : 16 mars 2017
Version d'Excel : 2010 sur PC

Message par i20100 » 17 janvier 2019, 14:48

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
Une pensée partagée
Lorsque tu omets de marquer la question initiale comme étant résolu, tu prives les participants du forum d’une solution possible pour eux.
Merci! de faire un clic sur le bouton résolu pour nous aider à t'aider.
isabelle
K
KTM
Membre fidèle
Membre fidèle
Messages : 207
Appréciations reçues : 3
Inscrit le : 13 septembre 2018
Version d'Excel : 2013 FR

Message par KTM » 18 janvier 2019, 18:55

Merci Chef c'est super!
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 4'842
Appréciations reçues : 235
Inscrit le : 16 mars 2017
Version d'Excel : 2010 sur PC

Message par i20100 » 18 janvier 2019, 19:04

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
résolu.png
résolu.png (8.77 Kio) Vu 56 fois
Merci!
Une pensée partagée
Lorsque tu omets de marquer la question initiale comme étant résolu, tu prives les participants du forum d’une solution possible pour eux.
Merci! de faire un clic sur le bouton résolu pour nous aider à t'aider.
isabelle
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message