Prévenir Excel d'ouvrir le fichier .xlsm en exclusif

cavo789

XLDnaute Nouveau
Bonjour à tous.

Je suis occupé à développer une application lourde en Excel (plus de 15.000 lignes de programmation pour vous donner une idée).

Je rencontre le problème suivant : alors même que mes utilisateurs sont obligé d'ouvrir le fichier en lecture-seule, lorsque je veux mettre mon application à jour en copiant mon fichier .xlsm depuis mon environnement de développement vers le disque réseau de production, Windows me dis que le fichier est ouvert exclusivement chez quelqu'un. Une fois que cette personne quitte le fichier, effectivement, je peux faire la copie.

Pourquoi Excel bloque-t-il un fichier pourtant ouvert en lecture seule ? J'ai dû mal à comprendre cela. Pensez-vous qu'il soit possible de trouver une solution ?

Pour info : dans ma programmation, j'ai prévu un mode maintenance. En activant un paramètre dans ma base de données, mon code VBA qui lit ce paramètre masque alors toutes les feuilles Excel pour afficher un message "Veuillez quitter l'application". Cela fonctionne parfaitement toutefois ce code n'est actif qu'en cas de changement de feuilles. Si l'utilisateur ne fait rien (regarde son écran, est en réunion / pause-café, ...), le résultat est que le fichier est toujours ouvert.

Prévoir un timer pour quitter automatiquement le fichier n'est pas envisageable.

Merci pour vos idées.
 

MichD

XLDnaute Impliqué
Re : Prévenir Excel d'ouvrir le fichier .xlsm en exclusif

Bonjour,


Tu ne peux pas écraser un fichier avec une copie de celui-ci si le fichier est ouvert.


| Cela fonctionne parfaitement toutefois ce code n'est actif qu'en cas de changement de feuilles.

Tu pourrais mettre un timer qui afficherait un message sans fermer le classeur après x minutes que
l'usager n'a pas cliqué sur une cellule. Dans le Thisworkbook, il y a cet événement :

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

End sub
 

cavo789

XLDnaute Nouveau
Re : Prévenir Excel d'ouvrir le fichier .xlsm en exclusif

Bonjour MichD

Je te prie de m'excuser, je ne vois ta réponse que maintenant : je viens de comprendre que ce forum est paramétré, par défaut, pour ne pas envoyer de notifications par email mais via le tableau de bord. Je vais changer cela. Résultat: n'ayant pas reçu de notification, je n'ai pas vu ta réponse.

Tu ne peux pas écraser un fichier avec une copie de celui-ci si le fichier est ouvert.

Et ben si ! Si j'ai des utilisateurs qui ont ouvert mon fichier en lecture seule, parfois cela fonctionne. Je n'ai pas encore compris pourquoi parfois oui et parfois non. Un truc m'échappe à ce niveau.

Pour ta proposition du timer, je l'ai déjà programmée et cela permet d'afficher, dans mon cas, une feuille "Veuillez quitter".

Cette feuille s'affiche lorsque l'utilisateur n'était pas occupé à faire une action d'édition. Par exemple, après l'obtention d'un rapport, toutes les autres feuilles sont masquées et l'utilisateur n'a plus aucune fonctionnalité. Après 2 minutes, l'application se ferme d'elle-même.

S'il était en cours d'édition (modification d'une feuille) puis qu'il va manger, j'affiche un message "veuillez sauver et puis quitter". S'il n'est pas derrière son PC, ben pas le choix, faut attendre. Je ne peux pas fermer mon application par programmation, le gars ne serait pas ravi de tout perdre.

Bonne journée.
 

Discussions similaires

Statistiques des forums

Discussions
312 358
Messages
2 087 582
Membres
103 600
dernier inscrit
Tora61