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

verifier si un classeur est ouvert et le fermer

S

sony

Guest
Bonjour forum,

A partir d'un module ACCESS je dois effectuer des modifs par macro sur un classeur: "C:\F04admin\utilitaires\ResultatImport.xls"
je voudrais d'abord vérifier s'il est ouvert.
S'il est ouvert, je le ferme pour le réouvrir.
sinon je l'ouvre directement.

j'ai essayé la formule suivante qui ne marche pas:

Dim oXlWbk As Object 'Excel.Workbook
Set oXlWbk = Workbooks("ResultatImport.xls")
If Not oXlWbk Is Nothing Then
Set oXlWbk = Nothing
End If

merci.
 
W

wape

Guest
Bonsoir sony et le forum,

Essaye ceci :

Sub Ouvrir_Classeur()

Dim sWbk As String

Dim oXlApp As Object 'Excel.Application
Dim oXlWbk As Object 'Excel.Workbook

sWbk = "C:\F04admin\utilitaires\ResultatImport.xls"

'Vérifier si Excel est lancé
On Error GoTo Lancer_Excel
Set oXlApp = GetObject(, "Excel.Application")
On Error GoTo 0

'Parcourir les classeurs ouverts
For Each oXlWbk In oXlApp.Workbooks
'S'il s'agit du classeur concerné
If UCase(oXlWbk.FullName) = UCase(sWbk) Then
'Fermer le classeur (sans enregistrer les modifications)
oXlWbk.Close False 'Remplacer False par True pour enregistrer les modifications
End If
Set oXlWbk = Nothing
Next oXlWbk

'Ouvrir le classeur
Set oXlWbk = oXlApp.Workbooks.Open(sWbk)

'--> Suite du traitement

Exit Sub

Lancer_Excel:
Set oXlApp = CreateObject("Excel.Application")
oXlApp.Visible = True
Resume Next

End Sub


@+
wape
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…