controler que le fichier ne soit pas ouvert

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
 

Laguich

XLDnaute Junior
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
 

Dranreb

XLDnaute Barbatruc
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:

Discussions similaires

Statistiques des forums

Discussions
312 484
Messages
2 088 796
Membres
103 970
dernier inscrit
pepito59