Sur plusieurs PC, tous en 2003, le fait d'ouvrir par VBA un classeur déjà
utilisé sur un autre poste (ou indisponible pour x raison) ne génère pas
d'erreur (Err=0), et l'interception de cette erreur n'étant pas possible (et
donc pas traitable ou traitée), le fichier est alors ouvert en lecture seule,
et là bonjour les dégâts.
Sur plusieurs PC, tous en 2003, le fait d'ouvrir par VBA un classeur déjà
utilisé sur un autre poste (ou indisponible pour x raison) ne génère pas
d'erreur (Err=0), et l'interception de cette erreur n'étant pas possible (et
donc pas traitable ou traitée), le fichier est alors ouvert en lecture seule,
et là bonjour les dégâts.
Sur plusieurs PC, tous en 2003, le fait d'ouvrir par VBA un classeur déjà
utilisé sur un autre poste (ou indisponible pour x raison) ne génère pas
d'erreur (Err=0), et l'interception de cette erreur n'étant pas possible (et
donc pas traitable ou traitée), le fichier est alors ouvert en lecture seule,
et là bonjour les dégâts.
Bonsour® Ptit Louis avec ferveur ;o))) vous nous disiez :Sur plusieurs PC, tous en 2003, le fait d'ouvrir par VBA un classeur déjà
utilisé sur un autre poste (ou indisponible pour x raison) ne génère pas
d'erreur (Err=0), et l'interception de cette erreur n'étant pas possible (et
donc pas traitable ou traitée), le fichier est alors ouvert en lecture seule,
et là bonjour les dégâts.
If ActiveWorkbook.ReadOnly Then
--
--
@+
;o)))
Bonsour® Ptit Louis avec ferveur ;o))) vous nous disiez :
Sur plusieurs PC, tous en 2003, le fait d'ouvrir par VBA un classeur déjà
utilisé sur un autre poste (ou indisponible pour x raison) ne génère pas
d'erreur (Err=0), et l'interception de cette erreur n'étant pas possible (et
donc pas traitable ou traitée), le fichier est alors ouvert en lecture seule,
et là bonjour les dégâts.
If ActiveWorkbook.ReadOnly Then
--
--
@+
;o)))
Bonsour® Ptit Louis avec ferveur ;o))) vous nous disiez :Sur plusieurs PC, tous en 2003, le fait d'ouvrir par VBA un classeur déjà
utilisé sur un autre poste (ou indisponible pour x raison) ne génère pas
d'erreur (Err=0), et l'interception de cette erreur n'étant pas possible (et
donc pas traitable ou traitée), le fichier est alors ouvert en lecture seule,
et là bonjour les dégâts.
If ActiveWorkbook.ReadOnly Then
--
--
@+
;o)))
Bonjour,
... Certes, mais Excel DOIT générer l'erreur 70 (Errp, ce qui signifie :
Fichier non disponible), ce qu'il ne fait pas : Err=0, ce qui veut dire
"classeur disponible", ce qui n'est manifestement pas le cas! preuve
supplémentaire : l'ouverture en "Lecture seule", ce qui signifie qu'il a bien
vu l'indisponibilité, mais ne la signale pas !
Je ne souhaite pas "adapter" le code selon les humeurs d'Excel et le lieu de
fonctionnement de mes programmes, il faudrait comprendre pourquoi l'erreur
n'est pas générée (ce qui l'empêche d'apparaître) ce qui serait plus subtile.
Bonjour,
... Certes, mais Excel DOIT générer l'erreur 70 (Errp, ce qui signifie :
Fichier non disponible), ce qu'il ne fait pas : Err=0, ce qui veut dire
"classeur disponible", ce qui n'est manifestement pas le cas! preuve
supplémentaire : l'ouverture en "Lecture seule", ce qui signifie qu'il a bien
vu l'indisponibilité, mais ne la signale pas !
Je ne souhaite pas "adapter" le code selon les humeurs d'Excel et le lieu de
fonctionnement de mes programmes, il faudrait comprendre pourquoi l'erreur
n'est pas générée (ce qui l'empêche d'apparaître) ce qui serait plus subtile.
Bonjour,
... Certes, mais Excel DOIT générer l'erreur 70 (Errp, ce qui signifie :
Fichier non disponible), ce qu'il ne fait pas : Err=0, ce qui veut dire
"classeur disponible", ce qui n'est manifestement pas le cas! preuve
supplémentaire : l'ouverture en "Lecture seule", ce qui signifie qu'il a bien
vu l'indisponibilité, mais ne la signale pas !
Je ne souhaite pas "adapter" le code selon les humeurs d'Excel et le lieu de
fonctionnement de mes programmes, il faudrait comprendre pourquoi l'erreur
n'est pas générée (ce qui l'empêche d'apparaître) ce qui serait plus subtile.
Bonsour® Ptit Louis avec ferveur ;o))) vous nous disiez :Bonjour,
... Certes, mais Excel DOIT générer l'erreur 70 (Errp, ce qui signifie :
Fichier non disponible), ce qu'il ne fait pas : Err=0, ce qui veut dire
"classeur disponible", ce qui n'est manifestement pas le cas! preuve
supplémentaire : l'ouverture en "Lecture seule", ce qui signifie qu'il a bien
vu l'indisponibilité, mais ne la signale pas !
Je ne souhaite pas "adapter" le code selon les humeurs d'Excel et le lieu de
fonctionnement de mes programmes, il faudrait comprendre pourquoi l'erreur
n'est pas générée (ce qui l'empêche d'apparaître) ce qui serait plus subtile.
je persiste : si le fichier s'ouvre en lecture seule c'est qu'il est disponible
"en lecture ...." !!!
d'ailleurs err 70 c'est Permission refusée (on a effectivement bien le droit de
l'ouvrir en lecture seule)
l'erreur 70 ne sera retournée que si l'on fait une action interdite : ecrire
.....
(ce que fait l'instruction Lock dans le code ci-dessous)
Ange Ounis avait commis cette macro pour tester si un classeur est déja
ouvert en partagé
en trappant l'erreur lecture seule
;o)))
'====================== > ' This function checks to see if a file is open or not. If the file is
' already open, it returns True. If the file is not open, it returns
' False. Otherwise, a run-time error will occur because there is
' some other problem accessing the file.
Function IsFileOpen(filename As String)
Dim filenum As Integer, errnum As Integer
On Error Resume Next ' Turn error checking off.
filenum = FreeFile() ' Get a free file number.
' Attempt to open the file and lock it.
Open filename For Input Lock Read As #filenum
Close filenum ' Close the file.
errnum = Err ' Save the error number that occurred.
On Error GoTo 0 ' Turn error checking back on.
' Check to see which error occurred.
Select Case errnum
' No error occurred.
' File is NOT already open by another user.
Case 0
IsFileOpen = False
' Error number for "Permission Denied."
' File is already opened by another user.
Case 70
IsFileOpen = True
' Another error occurred, file is being queried.
Case Else
Error errnum
End Select
End Function
'***********
Function IsFileOpen2(sFileName As String) As Boolean
On Error GoTo FileIsOpen:
Open sFileName For Random Lock Read Write As #1
IsFileOpen2 = False
Close #1
Exit Function
FileIsOpen:
IsFileOpen2 = True
Close
End Function
'====================== >
--
--
@+
;o)))
Bonsour® Ptit Louis avec ferveur ;o))) vous nous disiez :
Bonjour,
... Certes, mais Excel DOIT générer l'erreur 70 (Errp, ce qui signifie :
Fichier non disponible), ce qu'il ne fait pas : Err=0, ce qui veut dire
"classeur disponible", ce qui n'est manifestement pas le cas! preuve
supplémentaire : l'ouverture en "Lecture seule", ce qui signifie qu'il a bien
vu l'indisponibilité, mais ne la signale pas !
Je ne souhaite pas "adapter" le code selon les humeurs d'Excel et le lieu de
fonctionnement de mes programmes, il faudrait comprendre pourquoi l'erreur
n'est pas générée (ce qui l'empêche d'apparaître) ce qui serait plus subtile.
je persiste : si le fichier s'ouvre en lecture seule c'est qu'il est disponible
"en lecture ...." !!!
d'ailleurs err 70 c'est Permission refusée (on a effectivement bien le droit de
l'ouvrir en lecture seule)
l'erreur 70 ne sera retournée que si l'on fait une action interdite : ecrire
.....
(ce que fait l'instruction Lock dans le code ci-dessous)
Ange Ounis avait commis cette macro pour tester si un classeur est déja
ouvert en partagé
en trappant l'erreur lecture seule
;o)))
'====================== > ' This function checks to see if a file is open or not. If the file is
' already open, it returns True. If the file is not open, it returns
' False. Otherwise, a run-time error will occur because there is
' some other problem accessing the file.
Function IsFileOpen(filename As String)
Dim filenum As Integer, errnum As Integer
On Error Resume Next ' Turn error checking off.
filenum = FreeFile() ' Get a free file number.
' Attempt to open the file and lock it.
Open filename For Input Lock Read As #filenum
Close filenum ' Close the file.
errnum = Err ' Save the error number that occurred.
On Error GoTo 0 ' Turn error checking back on.
' Check to see which error occurred.
Select Case errnum
' No error occurred.
' File is NOT already open by another user.
Case 0
IsFileOpen = False
' Error number for "Permission Denied."
' File is already opened by another user.
Case 70
IsFileOpen = True
' Another error occurred, file is being queried.
Case Else
Error errnum
End Select
End Function
'***********
Function IsFileOpen2(sFileName As String) As Boolean
On Error GoTo FileIsOpen:
Open sFileName For Random Lock Read Write As #1
IsFileOpen2 = False
Close #1
Exit Function
FileIsOpen:
IsFileOpen2 = True
Close
End Function
'====================== >
--
--
@+
;o)))
Bonsour® Ptit Louis avec ferveur ;o))) vous nous disiez :Bonjour,
... Certes, mais Excel DOIT générer l'erreur 70 (Errp, ce qui signifie :
Fichier non disponible), ce qu'il ne fait pas : Err=0, ce qui veut dire
"classeur disponible", ce qui n'est manifestement pas le cas! preuve
supplémentaire : l'ouverture en "Lecture seule", ce qui signifie qu'il a bien
vu l'indisponibilité, mais ne la signale pas !
Je ne souhaite pas "adapter" le code selon les humeurs d'Excel et le lieu de
fonctionnement de mes programmes, il faudrait comprendre pourquoi l'erreur
n'est pas générée (ce qui l'empêche d'apparaître) ce qui serait plus subtile.
je persiste : si le fichier s'ouvre en lecture seule c'est qu'il est disponible
"en lecture ...." !!!
d'ailleurs err 70 c'est Permission refusée (on a effectivement bien le droit de
l'ouvrir en lecture seule)
l'erreur 70 ne sera retournée que si l'on fait une action interdite : ecrire
.....
(ce que fait l'instruction Lock dans le code ci-dessous)
Ange Ounis avait commis cette macro pour tester si un classeur est déja
ouvert en partagé
en trappant l'erreur lecture seule
;o)))
'====================== > ' This function checks to see if a file is open or not. If the file is
' already open, it returns True. If the file is not open, it returns
' False. Otherwise, a run-time error will occur because there is
' some other problem accessing the file.
Function IsFileOpen(filename As String)
Dim filenum As Integer, errnum As Integer
On Error Resume Next ' Turn error checking off.
filenum = FreeFile() ' Get a free file number.
' Attempt to open the file and lock it.
Open filename For Input Lock Read As #filenum
Close filenum ' Close the file.
errnum = Err ' Save the error number that occurred.
On Error GoTo 0 ' Turn error checking back on.
' Check to see which error occurred.
Select Case errnum
' No error occurred.
' File is NOT already open by another user.
Case 0
IsFileOpen = False
' Error number for "Permission Denied."
' File is already opened by another user.
Case 70
IsFileOpen = True
' Another error occurred, file is being queried.
Case Else
Error errnum
End Select
End Function
'***********
Function IsFileOpen2(sFileName As String) As Boolean
On Error GoTo FileIsOpen:
Open sFileName For Random Lock Read Write As #1
IsFileOpen2 = False
Close #1
Exit Function
FileIsOpen:
IsFileOpen2 = True
Close
End Function
'====================== >
--
--
@+
;o)))
Sur plusieurs PC, tous en 2003, le fait d'ouvrir par VBA un classeur déjà
utilisé sur un autre poste (ou indisponible pour x raison) ne génère pas
d'erreur (Err=0), et l'interception de cette erreur n'étant pas possible (et
donc pas traitable ou traitée), le fichier est alors ouvert en lecture seule,
et là bonjour les dégâts.
Il n'aime pas [A65536] pour Range("A65536")
l'utilisation des crochets "[ ]" est natif dans excel depuis l'origine
Sur plusieurs PC, tous en 2003, le fait d'ouvrir par VBA un classeur déjà
utilisé sur un autre poste (ou indisponible pour x raison) ne génère pas
d'erreur (Err=0), et l'interception de cette erreur n'étant pas possible (et
donc pas traitable ou traitée), le fichier est alors ouvert en lecture seule,
et là bonjour les dégâts.
Il n'aime pas [A65536] pour Range("A65536")
l'utilisation des crochets "[ ]" est natif dans excel depuis l'origine
Sur plusieurs PC, tous en 2003, le fait d'ouvrir par VBA un classeur déjà
utilisé sur un autre poste (ou indisponible pour x raison) ne génère pas
d'erreur (Err=0), et l'interception de cette erreur n'étant pas possible (et
donc pas traitable ou traitée), le fichier est alors ouvert en lecture seule,
et là bonjour les dégâts.
Il n'aime pas [A65536] pour Range("A65536")
l'utilisation des crochets "[ ]" est natif dans excel depuis l'origine