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

Forcer l'ouverture en écriture

1 réponse
Avatar
Air-1
Bonjour,

Par VBA , je traite un grand nombre de fichiers Excel en réseau (ouverture,
copie de données, modif, déplacement...)

Bien évidemement, il peut arriver que certains fichiers soietn ouverts par
d'autres utilisateurs...Mon prog ouvre donc en lecture seule et ne fait pas
tout ce que je souhaite.

Y a t il moyen de forcer l'ouverture en écriture quitte à virer l'autre
utilisateur de sa cession Excel???

Merci d'avance

1 réponse

Avatar
Starwing
Bonjour Air-1,

Y a t il moyen de forcer l'ouverture en écriture quitte à
virer l'autre utilisateur de sa cession Excel???


Exemple de Michel Pierron:
au 27 mars 2003


Tu dois t'assurer auparavant que le classeur n'est pas
déjà ouvert par un utilisateur et si oui, les prévenir.
Pour ce faire tu dois connaître la liste des utilisateurs
actuels avant d'en retirer le partage pour modifier les
macros, avec une procédure qui ne s'affiche que lorsque
c'est toi qui ouvre le classeur en question en faisant
référence à ton nom d'utilisateur ou de loggin; peut être
avec quelque chose du genre (procédure exemple avec nom
d'utilisateur):

Dans le module ThisWorkbook du classeur
Private Sub Workbook_Open()
Const MonNom As String = "Ton nom d'utilisateur"

If LCase(Application.UserName) = MonNom Then UsersList
End Sub

Private Sub UsersList()
Dim users, msg As String, status As String

users = ThisWorkbook.UserStatus
For Row = 1 To UBound(users, 1)
msg = msg & users(Row, 1) & " " & Format(users(Row,
2), "dd/mm/yy h:mm")
& " "
If users(Row, 3) = 1 Then status = "(Exclusive mode)"
Else status =
"(Shared mode)"
msg = msg & status & vbLf
Next
MsgBox msg, 64
End Sub

Nota: Cette méthode ne renverra pas les utilisateurs ayant
ouvert le classeur en lecture seule puisque par définition
un enregistrement conduirait à un nom différent.

Starwing