Besoin d'une alerte "fichier déjà ouvert" Excel 2003

Résolu/Fermé
HIBISCUS988 Messages postés 31 Date d'inscription jeudi 9 février 2017 Statut Membre Dernière intervention 15 mars 2018 - 13 févr. 2017 à 11:42
HIBISCUS988 Messages postés 31 Date d'inscription jeudi 9 février 2017 Statut Membre Dernière intervention 15 mars 2018 - 14 févr. 2017 à 04:54
Bonjour,

J'ai mis en place un registre d'enregistrement de courrier "départ" et arrivée", sur fichier Excel 2003, qui est accessible à tout le service (serveur).
Le soucis aujourd'hui, c'est que lorsque le fichier est déjà ouvert par un un utilisateur, il n'y a aucune alerte lorsqu'un 2ème utilisateur ouvre le fichier. Du coup, beaucoup d'enregistrements sont perdus car toutes les modifications ne sont pas enregistrées. Donc gros gros soucis. J'ai essayé avec un code VBA ci-dessous, en faisant l'essai sur mon pc, en ouvrant 2 fois le fichier, la 2ème fois j'avais bien une alerte. Mais en demandant à un collègue d'ouvrir le fichier alors qu'il était déjà ouvert chez moi, il n'avait pas d'alerte. Si vous pouviez m'aider à trouver une solution ça serait super sympa. Merci d'avance pour vos messages.

ESSAI ne fonctionnant pas :

Private Sub Workbook_Open()
If ActiveWorkbook.ReadOnly = True Then
MsgBox "Fichier déjà ouvert. Essayez plus tard!", vbInformation, "Fichier déjà ouvert"
ActiveWorkbook.Close
End If
End Sub
A voir également:

2 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
13 févr. 2017 à 22:00
Bonjour,

J’utilise ce code :
Public Function EstOuvertFichier(nomCompletFichier As String) As Boolean
' Teste si le fichier est ouvert
Dim n°F As Integer              
  EstOuvertFichier = False
  n°F = FreeFile
  On Error Resume Next
  Open nomCompletFichier For Input Lock Read As #n°F
  If Err = 70 Then EstOuvertFichier = True
  Close #1
  On Error GoTo 0
End Function

2
HIBISCUS988 Messages postés 31 Date d'inscription jeudi 9 février 2017 Statut Membre Dernière intervention 15 mars 2018 1
13 févr. 2017 à 22:45
Bonjour Patrice,
Je ne pense pas que ça fonctionnera avec ce code, car il nécessite de préciser le nom complet du fichier, or, à chaque fois qu'un utilisateur va faire une modification dans ce fichier, ça crée une copie de "nom du fichier", si personne ne le renomme, en fin de journée on se retrouve avec une copie de copie de copie de copie ........................................"nom du fichier". C'est aun autre sujet que je ne comprends pas non plus, mais pour le moment c'est comme ça, si vous avez une idée du pourquoi merci d'avance de me dire d'où vient le problème (serveur ??). Merci pour votre aide.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775 > HIBISCUS988 Messages postés 31 Date d'inscription jeudi 9 février 2017 Statut Membre Dernière intervention 15 mars 2018
Modifié par Patrice33740 le 14/02/2017 à 00:16
Si plusieurs personnes sont susceptibles de travailler simultanément sur le même fichier, il faut employer un fichier partagé.

Sinon lorsque qu'un autre utilisateur ouvre le fichier, il ne peut ouvrir qu'une copie en lecture seule, s'il l'enregistre, ce sera une copie de, et ensuite une copie de .. une copie de ... Donc une multitude de fichiers dont on ne sait pas lequel est le bon et très probablement aucun ne contiendra les modifications de tous les utilisateurs.

Dans le cas d'un fichier non partagé, l'emploi de la fonction ci-dessus permet de détecter si le fichier est ouvert ailleurs, d'afficher un message et de refermer la copie ouverte en lecture seule pour éviter la multiplication des copies.
0
HIBISCUS988 Messages postés 31 Date d'inscription jeudi 9 février 2017 Statut Membre Dernière intervention 15 mars 2018 1 > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
14 févr. 2017 à 00:44
Ok Patrice, je teste tout ça et je vous dit ça en fin de journée, merci pour votre aide.
0
HIBISCUS988 Messages postés 31 Date d'inscription jeudi 9 février 2017 Statut Membre Dernière intervention 15 mars 2018 1
14 févr. 2017 à 04:39
Donc après avoir partagé mon fichier, et fait les tests d'utilisation, si un utilisateur 1 a ouvert le fichier pour y faire des modifications, et qu'un autre utilisateur 2 ouvre à son tour le fichier, y fait ses modifications, enregistre et ferme le fichier, il y a la copie utilisateur 2 avec son enregistrement et ensuite la copie utilisateur 1 avec son enregistrement mais n'incluant pas l'enregistrement de l'utilisateur 2. Donc toujours le même problème. Si quelqu'un a la solution merci infiniment d'avance. J'aimerai tant retrouver le système d'alerte à l'ouverture du fichier comme ci dessous :


0
HIBISCUS988 Messages postés 31 Date d'inscription jeudi 9 février 2017 Statut Membre Dernière intervention 15 mars 2018 1
14 févr. 2017 à 04:54
Ouffffffffff ça y est j'ai résolu le problème qui se trouvait au niveau des propriétés des utilisateurs. Merci Patrice de m'avoir mise sur la bonne voie.
0