OVH Cloud OVH Cloud

verifier si un classeur est ouvert et le fermer

3 réponses
Avatar
sony
Bonjour forum,

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

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

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

merci.

3 réponses

Avatar
Ellimac
Bonjour,

On error GoTo Suite
Open
....
suite:...

Camille

-----Message d'origine-----
Bonjour forum,

A partir d'un module ACCESS je dois effectuer des modifs
par macro sur un
classeur: "C:F04adminutilitairesResultatImport.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.
.



Avatar
sony
j'ai pas compris ce que tu as voulu dire;
j'ai essayé d'ouvrir le fichier en mettant une procédure
de gestion des erreurs mais l'éxécution plante en me
surlignant:
Set oXlWbk = Workbooks("ResultatImport.xls")
merci d'avoir essayé.

sony
-----Message d'origine-----
Bonjour,

On error GoTo Suite
Open
.....
suite:...

Camille

-----Message d'origine-----
Bonjour forum,

A partir d'un module ACCESS je dois effectuer des
modifs


par macro sur un
classeur: "C:F04adminutilitairesResultatImport.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.
.

.





Avatar
Frédéric Sigonneau
Bonjour,

Si tu essayes d'exécuter ce code depuis Access, il me parait plus sûr de
récupérer en premier lieu une instance d'Excel. Par exemple (légèrement testé) :

Dim oXl
Dim oXLWbk

On Error Resume Next
Set oXl = GetObject(, "Excel.Application")
On Error GoTo 0
If oXl Is Nothing Then
Set oXl = CreateObject("Excel.Application")
End If
On Error Resume Next
Set oXLWbk = oXl.Workbooks("ResultatImport.xls")
If Err = 0 Then
oXLWbk.Close
Err.Clear
End If
oXl.Workbooks.Open "C:F04adminutilitairesResultatImport.xls"

etc.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour forum,

A partir d'un module ACCESS je dois effectuer des modifs
par macro sur un
classeur: "C:F04adminutilitairesResultatImport.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.