OVH Cloud OVH Cloud

Si fichier ouvert (...)

6 réponses
Avatar
RV
Bonsoir,
Comment écrire en vba, si monfichier.xls est ouvert alors....
Du style: if "monfichier.xls" isopen then goto suivant
Mais cette structure ne fonctionne pas, alors j'ai essayé if isfileopen
("C: \monfichier.xls") then goto suivant, mais toujours sans succès. Mes
recherches sont infructueuses...
Quelle est la syntaxe ?
Merci.
Cordialement
RV

6 réponses

Avatar
Jacky
Bonsoir,

Un exemple par le contrôle du nom....

'----------
If ActiveWorkbook.Name = "Classeur1" Then
MsgBox ActiveWorkbook.Name
'---------
'---------
Else
MsgBox "Le classeur actuel a pour nom: " & ActiveWorkbook.Name
'--------
'---------
End If
'-----------
Salutations
JJ


"RV" a écrit dans le message de
news:ewsDxpC%
Bonsoir,
Comment écrire en vba, si monfichier.xls est ouvert alors....
Du style: if "monfichier.xls" isopen then goto suivant
Mais cette structure ne fonctionne pas, alors j'ai essayé if isfileopen
("C: monfichier.xls") then goto suivant, mais toujours sans succès. Mes
recherches sont infructueuses...
Quelle est la syntaxe ?
Merci.
Cordialement
RV







Avatar
RV
Bonsoir Jacky,
Merci pour ta réponse.
En fait, ce que je souhaite c'est plutôt, si le classeur n'est pas ouvert
alors ouverture du classeur, sinon continue la procédure...
L'ouverture du classeur n'est pas un problème, mais c'est la gestion une
fois qu'il est ouvert qui me pose probléme.
Si je résume, je voudrais empêcher la double ouverture du fichier.
Merci
RV


Merci pour l'idée que j'essaierai d'exploiter si je n'ai pas d'autres
proposition.
"Jacky" a écrit dans le message de news:
%23h$tcxC%
Bonsoir,

Un exemple par le contrôle du nom....

'----------
If ActiveWorkbook.Name = "Classeur1" Then
MsgBox ActiveWorkbook.Name
'---------
'---------
Else
MsgBox "Le classeur actuel a pour nom: " & ActiveWorkbook.Name
'--------
'---------
End If
'-----------
Salutations
JJ


"RV" a écrit dans le message de
news:ewsDxpC%
Bonsoir,
Comment écrire en vba, si monfichier.xls est ouvert alors....
Du style: if "monfichier.xls" isopen then goto suivant
Mais cette structure ne fonctionne pas, alors j'ai essayé if isfileopen
("C: monfichier.xls") then goto suivant, mais toujours sans succès. Mes
recherches sont infructueuses...
Quelle est la syntaxe ?
Merci.
Cordialement
RV











Avatar
JB
Bonjour,

Function Est_ouvert(f)
témoin = False
For Each i In Workbooks 'on parcourt la collection des classeurs
If UCase(i.Name) = UCase(f) Then
témoin = True
End If
Next i
Est_ouvert = témoin
End Function

Sub essai
nf = "Organigramme.xls"
If Not Est_ouvert(nf) Then
MsgBox nf & " pas ouvert"
Else
MsgBox nf & " ouvert"
End If
End Sub

Cordialement JB
Avatar
Ange Ounis
Tu peux utiliser ce genre de code :

Sub essai()
Dim Wbk
On Error Resume Next
Set Wbk = Workbooks("TestCombo.xls")
If Err <> 0 Then
'pas ouvert -> on ouvre
Workbooks.Open "D:fsdatasTestCombo.xls"
Else: MsgBox "déjà ouvert"
End If
End Sub

----------
Ange Ounis
----------

Bonsoir,
Comment écrire en vba, si monfichier.xls est ouvert alors....
Du style: if "monfichier.xls" isopen then goto suivant
Mais cette structure ne fonctionne pas, alors j'ai essayé if isfileopen
("C: monfichier.xls") then goto suivant, mais toujours sans succès. Mes
recherches sont infructueuses...
Quelle est la syntaxe ?
Merci.
Cordialement
RV







Avatar
RV
Bonsoir Ange Ounis,
Merci pour ton code, je m'en vais essayer cela tout de suite.
Bon week end.
Cordialement
RV

"Ange Ounis" a écrit dans le message de news:
u0ok4dD%
Tu peux utiliser ce genre de code :

Sub essai()
Dim Wbk
On Error Resume Next
Set Wbk = Workbooks("TestCombo.xls")
If Err <> 0 Then
'pas ouvert -> on ouvre
Workbooks.Open "D:fsdatasTestCombo.xls"
Else: MsgBox "déjà ouvert"
End If
End Sub

----------
Ange Ounis
----------

Bonsoir,
Comment écrire en vba, si monfichier.xls est ouvert alors....
Du style: if "monfichier.xls" isopen then goto suivant
Mais cette structure ne fonctionne pas, alors j'ai essayé if isfileopen
("C: monfichier.xls") then goto suivant, mais toujours sans succès. Mes
recherches sont infructueuses...
Quelle est la syntaxe ?
Merci.
Cordialement
RV







Avatar
RV
Bonsoir JB,
Merci pour cette fonction et cette macro, je m'en vais essayer cela tout de
suite.
Bon week end.
Cordialement
RV

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

Bonjour,

Function Est_ouvert(f)
témoin = False
For Each i In Workbooks 'on parcourt la collection des classeurs
If UCase(i.Name) = UCase(f) Then
témoin = True
End If
Next i
Est_ouvert = témoin
End Function

Sub essai
nf = "Organigramme.xls"
If Not Est_ouvert(nf) Then
MsgBox nf & " pas ouvert"
Else
MsgBox nf & " ouvert"
End If
End Sub

Cordialement JB