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

Test fichier ouvert

5 réponses
Avatar
JulieH
Bonjour,

Bonjour à toutes et tous,

J'utilise depuis assez longtemps une fonction et une Macro (trouvées
sur le forum - JB je crois) qui me permettent de tester si un fichier
est déjà ouvert sur mon ordinateur.

Function Est_ouvert(f)
témoin = False
For Each i In Workbooks 'on parcourt la collection des classeurs
If UCase(i.Name) = UCase(f) Then
témoin = True
End If
Next i
Est_ouvert = témoin
End Function

Sub Vérif()
Fichier_enregistre = "XXXX - " & [Feuil4].[C6].Value
nf = Fichier_enregistre
If Not Est_ouvert(nf) Then
MsgBox "Le fichier " & nf & " n'est pas ouvert"
Else
MsgBox "Le fichier " & nf & " est déjà ouvert"
End If
End Sub

Cela fonctionne parfaitement. Le problème est que je travaille
maintenant sur un réseau. Je souhaiterais donc avoir une fonction qui
fasse la même chose mais en vérifiant si le fichier est ouvert ou non
par quelqu'un d'autre (sur le serveur) avant d'enregistrer.
Est-ce possible ?

Merci d'avance pour vos idées.

Julie

5 réponses

Avatar
Youky
Salut voici un exemple
Bien indiquer le chemin (pas fait)
Youky
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
On Error Resume Next
Windows("exemple.xls").Activate
If Err > 0 Then Err.Clear: Workbooks.Open ("exemple.xls")
If ActiveWorkbook.ReadOnly Then ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub

"JulieH" a écrit dans le message de news:
eZSTEn%
Bonjour,

Bonjour à toutes et tous,

J'utilise depuis assez longtemps une fonction et une Macro (trouvées sur
le forum - JB je crois) qui me permettent de tester si un fichier est déjà
ouvert sur mon ordinateur.

Function Est_ouvert(f)
témoin = False
For Each i In Workbooks 'on parcourt la collection des classeurs
If UCase(i.Name) = UCase(f) Then
témoin = True
End If
Next i
Est_ouvert = témoin
End Function

Sub Vérif()
Fichier_enregistre = "XXXX - " & [Feuil4].[C6].Value
nf = Fichier_enregistre
If Not Est_ouvert(nf) Then
MsgBox "Le fichier " & nf & " n'est pas ouvert"
Else
MsgBox "Le fichier " & nf & " est déjà ouvert"
End If
End Sub

Cela fonctionne parfaitement. Le problème est que je travaille maintenant
sur un réseau. Je souhaiterais donc avoir une fonction qui fasse la même
chose mais en vérifiant si le fichier est ouvert ou non par quelqu'un
d'autre (sur le serveur) avant d'enregistrer.
Est-ce possible ?

Merci d'avance pour vos idées.

Julie


Avatar
JulieH
Bonjour et merci pour ta réponse,

Malgré quelques essais rapides, je n'y suis pas arrivée. Je ne
comprends pas où indiquer le chemin, ni comment :
Avec ChDir "G:tototititata" ?

Julie

Salut voici un exemple
Bien indiquer le chemin (pas fait)
Youky
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
On Error Resume Next
Windows("exemple.xls").Activate
If Err > 0 Then Err.Clear: Workbooks.Open ("exemple.xls")
If ActiveWorkbook.ReadOnly Then ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub

"JulieH" a écrit dans le message de news:
eZSTEn%
Bonjour,

Bonjour à toutes et tous,

J'utilise depuis assez longtemps une fonction et une Macro (trouvées sur
le forum - JB je crois) qui me permettent de tester si un fichier est déjà
ouvert sur mon ordinateur.

Function Est_ouvert(f)
témoin = False
For Each i In Workbooks 'on parcourt la collection des classeurs
If UCase(i.Name) = UCase(f) Then
témoin = True
End If
Next i
Est_ouvert = témoin
End Function

Sub Vérif()
Fichier_enregistre = "XXXX - " & [Feuil4].[C6].Value
nf = Fichier_enregistre
If Not Est_ouvert(nf) Then
MsgBox "Le fichier " & nf & " n'est pas ouvert"
Else
MsgBox "Le fichier " & nf & " est déjà ouvert"
End If
End Sub

Cela fonctionne parfaitement. Le problème est que je travaille maintenant
sur un réseau. Je souhaiterais donc avoir une fonction qui fasse la même
chose mais en vérifiant si le fichier est ouvert ou non par quelqu'un
d'autre (sur le serveur) avant d'enregistrer.
Est-ce possible ?

Merci d'avance pour vos idées.

Julie






Avatar
FFO
Salut Julieh

Pour compléter la proposition de Youky :

Application.ScreenUpdating = False
On Error Resume Next
Windows("exemple.xls").Activate
If Err > 0 Then Err.Clear: Workbooks.Open ("G:tototititataexemple.xls")
If ActiveWorkbook.ReadOnly Then ActiveWorkbook.Close
Application.ScreenUpdating = True

J'ai essayé celà fonctionne


Bonjour et merci pour ta réponse,

Malgré quelques essais rapides, je n'y suis pas arrivée. Je ne
comprends pas où indiquer le chemin, ni comment :
Avec ChDir "G:tototititata" ?

Julie

Salut voici un exemple
Bien indiquer le chemin (pas fait)
Youky
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
On Error Resume Next
Windows("exemple.xls").Activate
If Err > 0 Then Err.Clear: Workbooks.Open ("exemple.xls")
If ActiveWorkbook.ReadOnly Then ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub

"JulieH" a écrit dans le message de news:
eZSTEn%
Bonjour,

Bonjour à toutes et tous,

J'utilise depuis assez longtemps une fonction et une Macro (trouvées sur
le forum - JB je crois) qui me permettent de tester si un fichier est déjà
ouvert sur mon ordinateur.

Function Est_ouvert(f)
témoin = False
For Each i In Workbooks 'on parcourt la collection des classeurs
If UCase(i.Name) = UCase(f) Then
témoin = True
End If
Next i
Est_ouvert = témoin
End Function

Sub Vérif()
Fichier_enregistre = "XXXX - " & [Feuil4].[C6].Value
nf = Fichier_enregistre
If Not Est_ouvert(nf) Then
MsgBox "Le fichier " & nf & " n'est pas ouvert"
Else
MsgBox "Le fichier " & nf & " est déjà ouvert"
End If
End Sub

Cela fonctionne parfaitement. Le problème est que je travaille maintenant
sur un réseau. Je souhaiterais donc avoir une fonction qui fasse la même
chose mais en vérifiant si le fichier est ouvert ou non par quelqu'un
d'autre (sur le serveur) avant d'enregistrer.
Est-ce possible ?

Merci d'avance pour vos idées.

Julie









Avatar
Youky
Remplace chemin= ???? et fichier=???.xls
Youky

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
chemin = ThisWorkbook.Path 'si dans même répertoire
'Chez moi chemin renvoie ceci mais j'ai pas de serveur
'chemin="C:Documents and SettingsBruno JEUNEMes documents"
fichier = "hhmm.xls" 'le nom du fichier
On Error Resume Next
Windows(fichier).Activate
If Err > 0 Then
Err.Clear
Workbooks.Open (chemin & "" & fichier)
End If
If ActiveWorkbook.ReadOnly Then ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub

"JulieH" a écrit dans le message de news:
%23tfoRR$
Bonjour et merci pour ta réponse,

Malgré quelques essais rapides, je n'y suis pas arrivée. Je ne comprends
pas où indiquer le chemin, ni comment :
Avec ChDir "G:tototititata" ?

Julie

Salut voici un exemple
Bien indiquer le chemin (pas fait)
Youky
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
On Error Resume Next
Windows("exemple.xls").Activate
If Err > 0 Then Err.Clear: Workbooks.Open ("exemple.xls")
If ActiveWorkbook.ReadOnly Then ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub

"JulieH" a écrit dans le message de
news: eZSTEn%
Bonjour,

Bonjour à toutes et tous,

J'utilise depuis assez longtemps une fonction et une Macro (trouvées sur
le forum - JB je crois) qui me permettent de tester si un fichier est
déjà ouvert sur mon ordinateur.

Function Est_ouvert(f)
témoin = False
For Each i In Workbooks 'on parcourt la collection des classeurs
If UCase(i.Name) = UCase(f) Then
témoin = True
End If
Next i
Est_ouvert = témoin
End Function

Sub Vérif()
Fichier_enregistre = "XXXX - " & [Feuil4].[C6].Value
nf = Fichier_enregistre
If Not Est_ouvert(nf) Then
MsgBox "Le fichier " & nf & " n'est pas ouvert"
Else
MsgBox "Le fichier " & nf & " est déjà ouvert"
End If
End Sub

Cela fonctionne parfaitement. Le problème est que je travaille
maintenant sur un réseau. Je souhaiterais donc avoir une fonction qui
fasse la même chose mais en vérifiant si le fichier est ouvert ou non
par quelqu'un d'autre (sur le serveur) avant d'enregistrer.
Est-ce possible ?

Merci d'avance pour vos idées.

Julie







Avatar
JulieH
Je pense que cela devrait aller, je vais essayer tout à l'heure.

Merci à tous les deux
Julie

Remplace chemin= ???? et fichier=???.xls
Youky

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
chemin = ThisWorkbook.Path 'si dans même répertoire
'Chez moi chemin renvoie ceci mais j'ai pas de serveur
'chemin="C:Documents and SettingsBruno JEUNEMes documents"
fichier = "hhmm.xls" 'le nom du fichier
On Error Resume Next
Windows(fichier).Activate
If Err > 0 Then
Err.Clear
Workbooks.Open (chemin & "" & fichier)
End If
If ActiveWorkbook.ReadOnly Then ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub

"JulieH" a écrit dans le message de news:
%23tfoRR$
Bonjour et merci pour ta réponse,

Malgré quelques essais rapides, je n'y suis pas arrivée. Je ne comprends
pas où indiquer le chemin, ni comment :
Avec ChDir "G:tototititata" ?

Julie

Salut voici un exemple
Bien indiquer le chemin (pas fait)
Youky
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
On Error Resume Next
Windows("exemple.xls").Activate
If Err > 0 Then Err.Clear: Workbooks.Open ("exemple.xls")
If ActiveWorkbook.ReadOnly Then ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub

"JulieH" a écrit dans le message de
news: eZSTEn%
Bonjour,

Bonjour à toutes et tous,

J'utilise depuis assez longtemps une fonction et une Macro (trouvées sur
le forum - JB je crois) qui me permettent de tester si un fichier est
déjà ouvert sur mon ordinateur.

Function Est_ouvert(f)
témoin = False
For Each i In Workbooks 'on parcourt la collection des classeurs
If UCase(i.Name) = UCase(f) Then
témoin = True
End If
Next i
Est_ouvert = témoin
End Function

Sub Vérif()
Fichier_enregistre = "XXXX - " & [Feuil4].[C6].Value
nf = Fichier_enregistre
If Not Est_ouvert(nf) Then
MsgBox "Le fichier " & nf & " n'est pas ouvert"
Else
MsgBox "Le fichier " & nf & " est déjà ouvert"
End If
End Sub

Cela fonctionne parfaitement. Le problème est que je travaille
maintenant sur un réseau. Je souhaiterais donc avoir une fonction qui
fasse la même chose mais en vérifiant si le fichier est ouvert ou non
par quelqu'un d'autre (sur le serveur) avant d'enregistrer.
Est-ce possible ?

Merci d'avance pour vos idées.

Julie