Vérifier la dispo d'un fichier avant ouverture

Vérifier la dispo d'un fichier avant ouverture - VB/VBA/VBS - Programmation

Marsh Posté le 12-07-2006 à 07:11:45    

Bonjour,
Existe t-il un moyen en VBA de s'assurer, avant ouverture, qu'un fichier Excel est disponible pour un access en écriture ?
La seule solution que j'ai trouvé actuellement est d'ouvrir le fichier et de vérifier après s'il a été ouvert en Lecture seule.
Merci d'avance

Reply

Marsh Posté le 12-07-2006 à 07:11:45   

Reply

Marsh Posté le 12-07-2006 à 09:10:00    

salut thierry,
 
voici une fonction répondant à tes besoins :
 
Function LectureSeule(FileName As String) As Boolean
 
  Dim Fs As Object, St As Integer
  Set Fs = CreateObject("Scripting.FileSystemObject" )
  Set f = Fs.GetFile(FileName)
  St = f.Attributes
 
  If St = 1 Or St = 33 Then
    LectureSeule = True
  Else
    LectureSeule = False
  End If
 
End Function

Reply

Marsh Posté le 12-07-2006 à 20:44:15    

Bonsoir Damine,
 
Merci pour ta réponse, mais je ne recherche pas à savoir si le fichier est en lecture seule ou non mais s'il est accéssible c'est à dire pas déjà ouvert par un autre utilisateur.
En fait j'ai une application VBA Excel qui met à jour d'autres fichiers Excel et elle doit vérifier avant ouverture  qu'ils ne sont pas déjà utilisés par un autre utilisateur.

Reply

Marsh Posté le 13-07-2006 à 09:10:54    

dans ce cas, cette fonction non testée devrait faire l'affaire
 
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

Reply

Marsh Posté le 13-07-2006 à 21:15:20    

Merci Dammien,
C'est exactement ce qu'il me fallait ... et cela fonctionne très bien
Bonne soirée

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed