L
lezabour
Guest
Salut a tous,
j'ai un classeur Test.xls, qui est partagé. pour cette raison, j'ai suivi les conseils que l'on peut retrouver a cette adresse http://dj.joss.free.fr/reso.htm
et j'ai donc un "complement" qui comprend tout mon code VBA, appellé test.xla
Bref, j'aimerai en fait que lors de la 1ere ouverture de la journée (en clair lorsque je suis le seul a ouvrir le fichier test.xls et que personne d'autre ne l'utilise), copier une feuille appeller Infos1 vers une feuille appellée Infos2
Pour cela j'ai utiliser differentes fonctions:
'Renvoi vrai si le fichier est en cours d'utilisation
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
Case Else
Error errnum
End Select
End Function
Ainsi qu'une petite macro de copie faite par mes soins!
Dans le thisworkbook je met
Private Sub Workbook_Open()
If Not IsFileOpen(ActiveWorkbook.Path & "/Test.xls") Then
Copie
MsgBox "On copie"
Else
MsgBox "Utiliser"
End If
End Sub
Le probleme, est que en fait, le fichier est tjrs en cours d'utilisation, vu que je l'ouvre...
Comment verifier que je suis le seul a utiliser le fichier sur le reseau? Ou comment mieux adapter mon code pour que cela fonctionne?
Merci a tous!
j'ai un classeur Test.xls, qui est partagé. pour cette raison, j'ai suivi les conseils que l'on peut retrouver a cette adresse http://dj.joss.free.fr/reso.htm
et j'ai donc un "complement" qui comprend tout mon code VBA, appellé test.xla
Bref, j'aimerai en fait que lors de la 1ere ouverture de la journée (en clair lorsque je suis le seul a ouvrir le fichier test.xls et que personne d'autre ne l'utilise), copier une feuille appeller Infos1 vers une feuille appellée Infos2
Pour cela j'ai utiliser differentes fonctions:
'Renvoi vrai si le fichier est en cours d'utilisation
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
Case Else
Error errnum
End Select
End Function
Ainsi qu'une petite macro de copie faite par mes soins!
Dans le thisworkbook je met
Private Sub Workbook_Open()
If Not IsFileOpen(ActiveWorkbook.Path & "/Test.xls") Then
Copie
MsgBox "On copie"
Else
MsgBox "Utiliser"
End If
End Sub
Le probleme, est que en fait, le fichier est tjrs en cours d'utilisation, vu que je l'ouvre...
Comment verifier que je suis le seul a utiliser le fichier sur le reseau? Ou comment mieux adapter mon code pour que cela fonctionne?
Merci a tous!