OVH Cloud OVH Cloud

Caratère générique

4 réponses
Avatar
Marc
Je cherche =E0 identifier si un fichier, parmi plusieurs est=20
ouvert.
Le fichier ouvert peut avoir diff=E9rents noms, mais celui-
ci se termine toujours par ").xls"
Je poss=E8de une proc=E9dure qui fonctionne parfaitement avec=20
un nom de fichier fixe (par exemple "Suivi).xls"), mais=20
impossible d'utiliser comme nom de fichier "*).xls".
Quelqu'un aurait-il une solution SVP ?
Merci d'avance =E0 la personne qui pourra s'investir dans ce=20
probl=E8me.

Le code actuel fonctionnant avec un nom de fichier fixe=20
est:

Sub TestSiOuvert()

If Not IsOpen("Suivi).xls") Then

MsgBox ("Pas ouvert")

Else

MsgBox ("Ouvert")

End If
End Sub
Function IsOpen(Classeur$) As Boolean
On Error Resume Next
IsOpen =3D Not Workbooks(Classeur) Is Nothing
Err.Clear
End Function

4 réponses

Avatar
Himselff
si dans ta procedure tu rajoute celle ci tu peux avec la variable objFolder
avoir le nom de tout les fichiers dans le dossier, donc avec ton if tu peux
faire un tri et voir si le fichier est bien ouvert !

public sub lister_les_fichiers_du_disque_c()

x = 1
strpath = "c:*.*"

objfolder = Dir(strpath, vbNormal)

Do While Len(objfolder) > 0
If objfolder <> "." And objfolder <> ".." Then
Cells(x, 1) = objfolder
x = x + 1
End If
End If
objfolder = Dir$()
Loop

end sub

Bonne Chance !

Fred

"Marc" wrote in message
news:c81101c438eb$c9b74e00$
Je cherche à identifier si un fichier, parmi plusieurs est
ouvert.
Le fichier ouvert peut avoir différents noms, mais celui-
ci se termine toujours par ").xls"
Je possède une procédure qui fonctionne parfaitement avec
un nom de fichier fixe (par exemple "Suivi).xls"), mais
impossible d'utiliser comme nom de fichier "*).xls".
Quelqu'un aurait-il une solution SVP ?
Merci d'avance à la personne qui pourra s'investir dans ce
problème.

Le code actuel fonctionnant avec un nom de fichier fixe
est:

Sub TestSiOuvert()

If Not IsOpen("Suivi).xls") Then

MsgBox ("Pas ouvert")

Else

MsgBox ("Ouvert")

End If
End Sub
Function IsOpen(Classeur$) As Boolean
On Error Resume Next
IsOpen = Not Workbooks(Classeur) Is Nothing
Err.Clear
End Function
Avatar
isabelle
bonjour Marc,

voici un autre approche,

Sub TestSiOuvert()
For Each c In Application.Workbooks
x = c.Name
If Mid(c.Name, Len(c.Name) - 4, 1) = ")" Then
MsgBox ("Ouvert")
Exit Sub
End If
Next
MsgBox ("Pas ouvert")
End Sub

isabelle


Je cherche à identifier si un fichier, parmi plusieurs est
ouvert.
Le fichier ouvert peut avoir différents noms, mais celui-
ci se termine toujours par ").xls"
Je possède une procédure qui fonctionne parfaitement avec
un nom de fichier fixe (par exemple "Suivi).xls"), mais
impossible d'utiliser comme nom de fichier "*).xls".
Quelqu'un aurait-il une solution SVP ?
Merci d'avance à la personne qui pourra s'investir dans ce
problème.

Le code actuel fonctionnant avec un nom de fichier fixe
est:

Sub TestSiOuvert()

If Not IsOpen("Suivi).xls") Then

MsgBox ("Pas ouvert")

Else

MsgBox ("Ouvert")

End If
End Sub
Function IsOpen(Classeur$) As Boolean
On Error Resume Next
IsOpen = Not Workbooks(Classeur) Is Nothing
Err.Clear
End Function


Avatar
Marc
Merci beaucoup, c'est cool de répondre et en plus vite !
J'espère également pouvoir vous être utile un jour.
;o)

-----Message d'origine-----
si dans ta procedure tu rajoute celle ci tu peux avec la
variable objFolder

avoir le nom de tout les fichiers dans le dossier, donc
avec ton if tu peux

faire un tri et voir si le fichier est bien ouvert !

public sub lister_les_fichiers_du_disque_c()

x = 1
strpath = "c:*.*"

objfolder = Dir(strpath, vbNormal)

Do While Len(objfolder) > 0
If objfolder <> "." And objfolder <> ".." Then
Cells(x, 1) = objfolder
x = x + 1
End If
End If
objfolder = Dir$()
Loop

end sub

Bonne Chance !

Fred

"Marc" wrote in
message

news:c81101c438eb$c9b74e00$
Je cherche à identifier si un fichier, parmi plusieurs est
ouvert.
Le fichier ouvert peut avoir différents noms, mais celui-
ci se termine toujours par ").xls"
Je possède une procédure qui fonctionne parfaitement avec
un nom de fichier fixe (par exemple "Suivi).xls"), mais
impossible d'utiliser comme nom de fichier "*).xls".
Quelqu'un aurait-il une solution SVP ?
Merci d'avance à la personne qui pourra s'investir dans ce
problème.

Le code actuel fonctionnant avec un nom de fichier fixe
est:

Sub TestSiOuvert()

If Not IsOpen("Suivi).xls") Then

MsgBox ("Pas ouvert")

Else

MsgBox ("Ouvert")

End If
End Sub
Function IsOpen(Classeur$) As Boolean
On Error Resume Next
IsOpen = Not Workbooks(Classeur) Is Nothing
Err.Clear
End Function


.



Avatar
Marc
Merci beaucoup, c'est cool de répondre et en plus vite !
J'espère également pouvoir vous être utile un jour.
;o)

-----Message d'origine-----
bonjour Marc,

voici un autre approche,

Sub TestSiOuvert()
For Each c In Application.Workbooks
x = c.Name
If Mid(c.Name, Len(c.Name) - 4, 1) = ")" Then
MsgBox ("Ouvert")
Exit Sub
End If
Next
MsgBox ("Pas ouvert")
End Sub

isabelle


Je cherche à identifier si un fichier, parmi plusieurs
est


ouvert.
Le fichier ouvert peut avoir différents noms, mais
celui-


ci se termine toujours par ").xls"
Je possède une procédure qui fonctionne parfaitement
avec


un nom de fichier fixe (par exemple "Suivi).xls"), mais
impossible d'utiliser comme nom de fichier "*).xls".
Quelqu'un aurait-il une solution SVP ?
Merci d'avance à la personne qui pourra s'investir dans
ce


problème.

Le code actuel fonctionnant avec un nom de fichier fixe
est:

Sub TestSiOuvert()

If Not IsOpen("Suivi).xls") Then

MsgBox ("Pas ouvert")

Else

MsgBox ("Ouvert")

End If
End Sub
Function IsOpen(Classeur$) As Boolean
On Error Resume Next
IsOpen = Not Workbooks(Classeur) Is Nothing
Err.Clear
End Function
.