Verifier si fichier ouvert

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 !

CelluleVide

XLDnaute Occasionnel
Bonjour,
Je souhaite récupérer des données d'un autre classeur.
Si ce classeur est ouvert on selectionne et on copie sinon on ouvre d'abord.

Apres recherche j'ai adapté ce bout de code mais il me semble qu'il ouvre plusieurs fois le classeur.
A Mon avis le "for Each" n'est pas correct.

Code:
'OUVRIR LE TABLEAU DE BORD MM:
WOuvert = False
' Parcours des classeurs ouverts
For Each wkb In Workbooks
If wkb.Name = "TOTO" Then WOuvert = True
Next wkb
' Si ouvert copier la feuille "statistiques"
If WOuvert = True Then
Sheets("Statistiques").Copy After:=Workbooks(Nomfichier).Sheets(1)
For Each wkb In Workbooks
If wkb.Name = "TOTO" Then Workbooks.Close
Exit For
Next wkb

Le mieux serait de récupérer les données dans le classeur fermé mais ça dépasse mes compétences.
Merci
 
Re : Verifier si fichier ouvert

bonjour,

Pour lire dans un fichier fermé :
Tu précises le nom du fichier au lieu indiqué
tu remplaces msgbox par la collecte des données

Sub test()
Dim Wb As Workbook
Set Wb = GetObject("Répertoire et nom de ton fichier ")
MsgBox Wb.Sheets(1).[C2].Value
Wb.Close
End Sub
 
Re : Verifier si fichier ouvert

Bonjour CelluleVide, bonjour le forum,

Peut-être comme ça :
Code:
Sub Macro1()
Dim cs As Workbook 'déclare la variable cs (Classeur Source)
Dim cc As Workbook 'déclare la variable cc (Classeur Cible)
Dim ca As String 'déclare la variable ca (Chemin d'Accès)

Set cs = ThisWorkbook 'définit la variable cs (à adapter)
ca = cs.Path & "\" 'définit le chemin d'accès au classeur cible
On Error Resume Next 'gestion des erreurs (en cas d'ereur passe à la ligne suivante)
Set cc = Workbooks("Toto.xls") 'définit le classeur cible (génère une erreur si le classeur n'est pas ouvert)
If Err <> 0 Then 'condition : si une erreur a éé générée
    Err = 0 'annule l'erreur
    Workbooks.Open (ca & "Toto.xls") 'ouvre le classeur (chemin à adapter si nécessaire)
    Set cc = ActiveWorkbook 'définit le classeur cible
End If 'fin de la condition
On Error GoTo 0 'annule la gestion des erreurs
cc.Sheets("Statistiques").Copy After:=cs.Sheets(1) 'copie l'onglet "Statistiques" du classeur cible après le premier onglet du classeur source
cc.Close 'ferme le classeur cible
End Sub

[Édition]
Bonjour Chalet on s'est croisé... Je teste ta proposition...

[Édition 2]
Ouais... En fait ça ouvre le fichier mais il reste masqué...
 
Dernière édition:
- 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 Excel VBA
Réponses
5
Affichages
575
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
449
Retour