Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

controler que le fichier ne soit pas 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 !

Laguich

XLDnaute Junior
Bonjour à tous,
J'ai une macro de sauvegarde qui marche très bien, mais je voudrais y intégrer :
si le fichier 'wkdest" déjà ouvert, on le ferme et lance la procedure si pas ouvert on lance direct la procédure.

Voici la macro:
Code:
Sub Macro17()
Dim Wb As Excel.Workbook
Dim wkDest As Workbook ' Classeur destinataire
Set wkDest = Application.Workbooks.Open("D:\COMMANDE BASE\Chérré\SAUVEGARDE FAX M.xlsm")
     
Workbooks("cdefaxCHERRE").Activate
Dim temps As Date
Dim wC As Worksheet
temps = Workbooks("cdefaxCHERRE").Sheets("données").Range("a1").Value
    For Each wC In ThisWorkbook.Sheets
    If wC.Name <> "Données" And wC.Name <> "Accueil" And wC.Range("B2") <> "" Then
    wC.Select
    wC.Copy after:=wkDest.Sheets(1)
    wkDest.ActiveSheet.Name = wC.Name & " " & Format(temps, "dd-mm-yy")
    
     wkDest.ActiveSheet.Unprotect
    wkDest.ActiveSheet.Shapes.Range(Array("Button 15", "Button 1", "Button 2", _
        "Button 14", "Button 4", "Button 3", "Button 5", "Button 6", "Button 13", _
        "Button 12", "Button 11", "Button 10", "Button 9", "Button 7", "Button 8")). _
        Select
    Selection.Delete
    wkDest.ActiveSheet.Range("B15").Select
    ActiveCell.FormulaR1C1 = "Recap"
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        "Recap!A1", TextToDisplay:="Recap"
    
    Windows("cdefaxCHERRE.xlsm").Activate
    End If
    Next
    wkDest.Save
   wkDest.Close True
   
End Sub

Merci d'avance
 
Re : controler que le fichier ne soit pas ouvert

Merci pour ta réponse
Mais étant donné que wkdest est déclaré via le "set" et donc le fichier est ouvert avant de faire ton controle.
Comment dois je faire?
Code:
Sub Macro17()
Dim Wb As Excel.Workbook
Dim wkDest As Workbook ' Classeur destinataire
Set wkDest = Application.Workbooks.Open("D:\COMMANDE BASE\Chérré\SAUVEGARDE FAX M.xlsm")
     [B]IF ESTOUVERT("wkdest") THEN[/B]
Workbooks("cdefaxCHERRE").Activate
temps = Workbooks
 
Re : controler que le fichier ne soit pas ouvert

Bonjour.
Voyons voir. S'il est ouvert avant de faire le contrôle, vous voulez contrôler quoi, au juste, que vous ne savez déjà ?
N'est ce pas bel et bien avant de l'ouvrir que vous voulez faire ça :
VB:
On Error Resume Next
Workbooks("SAUVEGARDE FAX M.xlsm").Close
On Error GoTo 0
?

Notez que s'il est déjà ouvert je ferais éventuellement un .Save et ne le réouvrirais pas…
Si toutefois son Path est le bon.

De toutes façon ça commence par :
VB:
On Error Resume Next
Set WkDest = Workbooks("SAUVEGARDE FAX M.xlsm")
If Err Then …
 
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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…