OVH Cloud OVH Cloud

test d'ouverture de classeur

4 réponses
Avatar
Daniel
Bonjour à tous!

Voilà, j'ai une macro dont le travail est d'ouvrir un classeur

(Sub AA()
Workbooks.Open "I:\LOGISTIQUE\ETIQUETTES\APPLICATION\BASE DE DONNEES.xls"
End Sub

j'aimerai qu'avant d'ouvri ce classeur la macro test si il est déjà ouvert
ou pas! Car s'il est ouvert ==> Exit Sub sinon la macro l'ouvre!

Merci à tous du coup de pouce!

4 réponses

Avatar
Yvan
Salut Daniel.

Une solution ici: http://www.excelabo.net/xl/fichiers.php#dejàouvertppt

Bonne journée

Yvan

"Daniel" a écrit dans le message de news:

| Bonjour à tous!
|
| Voilà, j'ai une macro dont le travail est d'ouvrir un classeur
|
| (Sub AA()
| Workbooks.Open "I:LOGISTIQUEETIQUETTESAPPLICATIONBASE DE DONNEES.xls"
| End Sub
|
| j'aimerai qu'avant d'ouvri ce classeur la macro test si il est déjà ouvert
| ou pas! Car s'il est ouvert ==> Exit Sub sinon la macro l'ouvre!
|
| Merci à tous du coup de pouce!
|
|
|
|
Avatar
Daniel
Ehh j'ai bien trouvé la fonction :

Function IsFileOpen(filename As String)
Dim filenum As Integer, Errnum As Integer
On Error Resume Next
filenum = FreeFile()
Open filename For Input Lock Read As #filenum
Close filenum
Errnum = Err
On Error GoTo 0
Select Case Errnum
Case 0
IsFileOpen = False
Case 70
IsFileOpen = True
End Select
End Function

Mais comment faire le test sachant que ma macro est uue SUB :

Sub test()
if ....... then
Exit sub
if ..... then
Workbooks.Open "I:LOGISTIQUEETIQUETTESAPPLICATIONBASE DE DONNEES.xls"
End sub







Salut Daniel.

Une solution ici: http://www.excelabo.net/xl/fichiers.php#dejàouvertppt

Bonne journée

Yvan

"Daniel" a écrit dans le message de news:

| Bonjour à tous!
|
| Voilà, j'ai une macro dont le travail est d'ouvrir un classeur
|
| (Sub AA()
| Workbooks.Open "I:LOGISTIQUEETIQUETTESAPPLICATIONBASE DE DONNEES.xls"
| End Sub
|
| j'aimerai qu'avant d'ouvri ce classeur la macro test si il est déjà ouvert
| ou pas! Car s'il est ouvert ==> Exit Sub sinon la macro l'ouvre!
|
| Merci à tous du coup de pouce!
|
|
|
|





Avatar
Yvan
Re-Bonjour Daniel

As-tu bien copié la fonction dans le module? Oui? Ah bon!

Alors ta procédure devient:

Sub test()
if IsFileOpen("I:LOGISTIQUEETIQUETTESAPPLICATIONBASE DE DONNEES.xls") then Exit
sub

Workbooks.Open "I:LOGISTIQUEETIQUETTESAPPLICATIONBASE DE DONNEES.xls"

End sub


OK?

@+

Yvan


"Daniel" a écrit dans le message de news:

| Ehh j'ai bien trouvé la fonction :
|
| Function IsFileOpen(filename As String)
| Dim filenum As Integer, Errnum As Integer
| On Error Resume Next
| filenum = FreeFile()
| Open filename For Input Lock Read As #filenum
| Close filenum
| Errnum = Err
| On Error GoTo 0
| Select Case Errnum
| Case 0
| IsFileOpen = False
| Case 70
| IsFileOpen = True
| End Select
| End Function
|
| Mais comment faire le test sachant que ma macro est uue SUB :
|
| Sub test()
| if ....... then
| Exit sub
| if ..... then
| Workbooks.Open "I:LOGISTIQUEETIQUETTESAPPLICATIONBASE DE DONNEES.xls"
| End sub
|
|
|
|
|
|
|
| > Salut Daniel.
| >
| > Une solution ici: http://www.excelabo.net/xl/fichiers.php#dejàouvertppt
| >
| > Bonne journée
| >
| > Yvan
| >
| > "Daniel" a écrit dans le message de news:
| >
| > | Bonjour à tous!
| > |
| > | Voilà, j'ai une macro dont le travail est d'ouvrir un classeur
| > |
| > | (Sub AA()
| > | Workbooks.Open "I:LOGISTIQUEETIQUETTESAPPLICATIONBASE DE DONNEES.xls"
| > | End Sub
| > |
| > | j'aimerai qu'avant d'ouvri ce classeur la macro test si il est déjà ouvert
| > | ou pas! Car s'il est ouvert ==> Exit Sub sinon la macro l'ouvre!
| > |
| > | Merci à tous du coup de pouce!
| > |
| > |
| > |
| > |
| >
| >
| >
Avatar
Daniel
Génial !

Ca marche! Merci beaucoup Yvan



Re-Bonjour Daniel

As-tu bien copié la fonction dans le module? Oui? Ah bon!

Alors ta procédure devient:

Sub test()
if IsFileOpen("I:LOGISTIQUEETIQUETTESAPPLICATIONBASE DE DONNEES.xls") then Exit
sub

Workbooks.Open "I:LOGISTIQUEETIQUETTESAPPLICATIONBASE DE DONNEES.xls"

End sub


OK?

@+

Yvan


"Daniel" a écrit dans le message de news:

| Ehh j'ai bien trouvé la fonction :
|
| Function IsFileOpen(filename As String)
| Dim filenum As Integer, Errnum As Integer
| On Error Resume Next
| filenum = FreeFile()
| Open filename For Input Lock Read As #filenum
| Close filenum
| Errnum = Err
| On Error GoTo 0
| Select Case Errnum
| Case 0
| IsFileOpen = False
| Case 70
| IsFileOpen = True
| End Select
| End Function
|
| Mais comment faire le test sachant que ma macro est uue SUB :
|
| Sub test()
| if ....... then
| Exit sub
| if ..... then
| Workbooks.Open "I:LOGISTIQUEETIQUETTESAPPLICATIONBASE DE DONNEES.xls"
| End sub
|
|
|
|
|
|
|
| > Salut Daniel.
| >
| > Une solution ici: http://www.excelabo.net/xl/fichiers.php#dejàouvertppt
| >
| > Bonne journée
| >
| > Yvan
| >
| > "Daniel" a écrit dans le message de news:
| >
| > | Bonjour à tous!
| > |
| > | Voilà, j'ai une macro dont le travail est d'ouvrir un classeur
| > |
| > | (Sub AA()
| > | Workbooks.Open "I:LOGISTIQUEETIQUETTESAPPLICATIONBASE DE DONNEES.xls"
| > | End Sub
| > |
| > | j'aimerai qu'avant d'ouvri ce classeur la macro test si il est déjà ouvert
| > | ou pas! Car s'il est ouvert ==> Exit Sub sinon la macro l'ouvre!
| > |
| > | Merci à tous du coup de pouce!
| > |
| > |
| > |
| > |
| >
| >
| >