Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Dossier ouvert ou non

4 réponses
Avatar
Patrick Catarsi
Bonjour à tous,
Voilà, j'ai un programme de compta personnel . Je peut choisir l'année des
données à l'ouverture du UserForm par le code ci-dessous:
Workbooks.Open FileName:="DonCompt.xls", j'accède aux données.
Par contre il m'arrive dès fois que le dossier "DonCompt.xls" soit déjà
ouvert. Je me retrouve avec un message d'erreur.
Je n'arrive pas à crèer une ligne de code qui vérifierais si le dossier est
déjà ouvert.
J'espère avoir été clair
Merci d'avance
Patrick

4 réponses

Avatar
Caetera
"Patrick Catarsi" a écrit dans le message de news:
C78069BC.25D%

Voilà, j'ai un programme de compta personnel . Je peut choisir l'année des
données à l'ouverture du UserForm par le code ci-dessous:
Workbooks.Open FileName:="DonCompt.xls", j'accède aux données.
Par contre il m'arrive dès fois que le dossier "DonCompt.xls" soit déjà
ouvert. Je me retrouve avec un message d'erreur.
Je n'arrive pas à crèer une ligne de code qui vérifierais si le dossier est
déjà ouvert.



************************
on error resume next
Workbooks.Open FileName:="DonCompt.xls",
if err.number<>0 then
msgbox "déjà ouvert"
exit sub
end if

Etc
Avatar
galopin01
bonjour,
une fonction personnalisée peut-être :
Function WbIsOpen(WbName As String) As Boolean
On Error Resume Next
WbIsOpen = Not Workbooks(WbName) Is Nothing
End Function

Ensuite dans ton ton code

If WbIsOpen("DonCompt.xls") Then...

A+




"Patrick Catarsi" a écrit dans le message de news:
C78069BC.25D%
Bonjour à tous,
Voilà, j'ai un programme de compta personnel . Je peut choisir l'année des
données à l'ouverture du UserForm par le code ci-dessous:
Workbooks.Open FileName:="DonCompt.xls", j'accède aux données.
Par contre il m'arrive dès fois que le dossier "DonCompt.xls" soit déjà
ouvert. Je me retrouve avec un message d'erreur.
Je n'arrive pas à crèer une ligne de code qui vérifierais si le dossier
est
déjà ouvert.
J'espère avoir été clair
Merci d'avance
Patrick



Avatar
Patrick Catarsi
Merci pour cette solution déjà bien, mais il m'apparaît un dialogue: le
document est déjà ouvert, voulez vous l'ouvrir etc.
en fait ce qu'il me faudrait, c'est un bout de code qui lise le nom des
fichier ouvert et le compare au mien pour automatiser complètement.
En fait je ne sais pas lire un nom de fichier et le stocker dans une
variable. Après je sais faire.
Merci d'avance
Patrick







Le 23/01/10 9:12, dans , « Caetera »
<EtiennePloufCah?@wanadoo.fr> a écrit :

"Patrick Catarsi" a écrit dans le message de news:
C78069BC.25D%

Voilà, j'ai un programme de compta personnel . Je peut choisir l'année des
données à l'ouverture du UserForm par le code ci-dessous:
Workbooks.Open FileName:="DonCompt.xls", j'accède aux données.
Par contre il m'arrive dès fois que le dossier "DonCompt.xls" soit déjà
ouvert. Je me retrouve avec un message d'erreur.
Je n'arrive pas à crèer une ligne de code qui vérifierais si le dossier est
déjà ouvert.



************************
on error resume next
Workbooks.Open FileName:="DonCompt.xls",
if err.number<>0 then
msgbox "déjà ouvert"
exit sub
end if

Etc




Avatar
michdenis
Bonjour,

Il y a ceci... je n'ai plus le nom de l'auteur de ces lignes de code :
Tu auras un message seulement si ton fichier est ouvert pour
t'en avertir sinon le fichier sera ouvert.
'--------------------------------------
Sub Test()
Dim Fichier As String
Fichier =" c:LeCheminMonFichier.xls"
if dir(fichier)<>"" then
if IsFileOpen(fichier)=true then
Msgbox "Votre fichier " & fichier & " est déjà ouvert."
else
Workbooks.Open FileName:= Fichier
end if
Else
Msgbox "Votre fichier " & fichier & " n'existe pas."
End if
End Sub
'--------------------------------------
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 53
IsFileOpen = "N'existe pas"
Case 70
IsFileOpen = True
End Select
End Function
'-------------------------------------------





"Patrick Catarsi" a écrit dans le message de groupe de
discussion : C7810CE6.12E4%
Merci pour cette solution déjà bien, mais il m'apparaît un dialogue: le
document est déjà ouvert, voulez vous l'ouvrir etc.
en fait ce qu'il me faudrait, c'est un bout de code qui lise le nom des
fichier ouvert et le compare au mien pour automatiser complètement.
En fait je ne sais pas lire un nom de fichier et le stocker dans une
variable. Après je sais faire.
Merci d'avance
Patrick







Le 23/01/10 9:12, dans , « Caetera »
<EtiennePloufCah?@wanadoo.fr> a écrit :

"Patrick Catarsi" a écrit dans le message de news:
C78069BC.25D%

Voilà, j'ai un programme de compta personnel . Je peut choisir l'année des
données à l'ouverture du UserForm par le code ci-dessous:
Workbooks.Open FileName:="DonCompt.xls", j'accède aux données.
Par contre il m'arrive dès fois que le dossier "DonCompt.xls" soit déjà
ouvert. Je me retrouve avec un message d'erreur.
Je n'arrive pas à crèer une ligne de code qui vérifierais si le dossier est
déjà ouvert.



************************
on error resume next
Workbooks.Open FileName:="DonCompt.xls",
if err.number<>0 then
msgbox "déjà ouvert"
exit sub
end if

Etc