test d'ouverture d'un classeur

nberte

XLDnaute Nouveau
Bonjour à tous,

Je voudrais 1 petit coup de souris sur ma macro...

J'ai un fichier "bilan données" qui doit aller chercher dans plusieurs fichier (fichier 1, fichier 2....) des données pour faire 1 recap.

J'ouvre donc le fichier "bilan données" et lance une macro. Si le fichier 1 est fermé, pas de soucis, ca fonctionne (et encore, il faut cliquer sur "continuer" à cause des liaisons, ya moyen de zapper ca ? )

Mais si j'ai déjà ouvert le fichier 1 ca bug et si qqu'un d'autre l'a ouvert, même pb, ca bug aussi.

Je cherche donc un code de test :
. si fermé, ouvrir et continuer
. si déjà ouvert par moi, continuer
. si déjà ouvert par qqu'un d'autre, ouvrir en lecture seule et continuer

Merci !!!

nberte
 

Pièces jointes

  • Bilan données.zip
    27.4 KB · Affichages: 27

jp14

XLDnaute Barbatruc
Re : test d'ouverture d'un classeur

Bonjour

Une solution consiste à gérer les erreurs

Code:
Sub macroUPL()
Dim i As Long
Dim chemin As String
chemin = ThisWorkbook.Path & "\"
'Traitement de données Fichier 1 vers Fichier bilan données
On Error GoTo suite1

Workbooks.Open Filename:=chemin & "Bilan données1.xls"

With Workbooks("Bilan données1.xls").Sheets("Actions")
    If Err.Number <> 1004 Then
        For i = 4 To .Range("A65000").End(xlUp).Row
            If .Cells(i, 2) Like "B" Then
            Derlign = Workbooks("Bilan données.xls").Sheets("Bilan").Range("A65000").End(xlUp).Row + 1
            Workbooks("Bilan données.xls").Sheets("Bilan").Range("A" & Derlign & ":X" & Derlign).Value = .Range("A" & i & ":X" & i).Value
            End If
        Next
    End If
End With


'Fermeture Fichier 1
Workbooks("Fichier 1.xls").Close
On Error GoTo 0
Exit Sub
suite1:
' pour trouver les erreurs
MsgBox "Error " & Err.Number & " (" & Err.Description & ")"
Resume Next
End Sub


JP
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 450
Messages
2 109 730
Membres
110 553
dernier inscrit
loic55