[VBA]forcer fermeture d'un classeur.

miky973

XLDnaute Occasionnel
Bonjour à tous,

J'ai créé des macros qui me permettent de faire des mise à jour sur une centaine de fichier de mon réseau.

Jusque là tout vas bien!!

Mais si un utilisateur à ouvert un des fichiers pendant la mise à jour, le fichier ne sera pas prise en compte étant en lecture seule...


Après réflexion, j'ai créé une petite application qui me permet de forcer la fermeture d'un fichier excel ouvert.

Ci-joint vous trouverez ce fichier excel qui doit se fermer juste en créant un fichier c:\Envoie.txt. Très astucieu mais problème au lieu de fermer le fichier excel ça ferme tous les fichiers excel ouvert sur le pc.

Le but étant de mettre à jour et de fermer un seul fichier. L'utilisateur qui se retrouve avec tous ces classeurs fermés cela pose un véritable problème.

INCOMPREHENSIBLE : Cela fonctionne très bien en utilisant la commande pas à pas....

J'ai vraiment besoin d'un coup de pouce parce vraiment là je ne comprend pas.

Précision ... J'utilise un timer pour détecter l'existence du fichier Envoie.txt si le fichier existe alors il doit fermer le classeur qui balance cette macro pour permettre une mise à jour.

A tester avec au moins deux fichiers ouverts!!

Merci vraiment pour votre aide.

Best Regards,

Miky
 

Pièces jointes

  • fichier_A_fermer.xls
    38.5 KB · Affichages: 198
  • fichier_A_fermer.xls
    38.5 KB · Affichages: 196
  • fichier_A_fermer.xls
    38.5 KB · Affichages: 224
Dernière édition:

miky973

XLDnaute Occasionnel
Re : [VBA]forcer fermeture d'un classeur.

Bonjour,

Je vais carrément donner un exemple, je fais une mise à jour hebdomadaire au travail par le biais de macro. Quand je fais la mise à jour sur le réseau si un utilisateur à ouvert le fichier sur lequel je fais des maj, ben du coup la mise à jour n'est pas pris en compte puisque dans ce cas je suis en lecture seule.

Il me faut donc fermer le fichier de l'utilisateur pr me permettre de faire cette mise à jour.

j'ai voulue faire une télécommande et donc :
Si le fichier Envoie.txt est créé ça ferme le fichier ouvert sur n'importe quel poste qui est sur le réseau.

J'espère avoir été plus clair, il s'agit d'une solution pour éviter de demander à x Personne de fermer le classeur excel ça doit la fermer sur elle!!!!

Ca fonctionne mais au lieu de quitter un seul fichier, ça quitte tous mes fichiers excel ouvert!!!! Je penses que le soucis vient du timer mais il me faut obligatoirement le timer pour détecter si le fichier "Envoie.txt" à été cré.

HELPPPPPPPPPPPPPPPPP Pleasseee je c plus quoi faire vraiment lol
 

miky973

XLDnaute Occasionnel
Re : [VBA]forcer fermeture d'un classeur.


Bonjour Pierrot,

Je ne vois pas ou est le soucis? le but est de trouver une solution. J'ai apporté toutes les informations nécéssaire. Et j'ai beaucoup progressé en vba, et là cela me dépasse parce c'est par rapport au timer et j'ai vraiment besoin d'aide. Etant en stage je suis bloqué.

Merci de votre compréhension,

Best regards,

Miky
 

miky973

XLDnaute Occasionnel
Re : [VBA]forcer fermeture d'un classeur.

Re,


le mieux est de prévenir lorsque tu postes sur plusieurs forums... des gens prennent sur leur temps pour te trouver une solution alors que celle ci est déjà donnée ailleurs....
Re,

JE suis d'accord avec toi mais le soucis, n'ayant vue aucune aucun post ou de commentaire, donc du coup je chercheen mm tps sur un autre forum. Il n'y a pas de mauvais acte de vouloir comprendre quel erreur que j'ai fait au niveau de ma macro. Je suis sur le point de finir mon projet et ce petit bug me bloque vraiment.
De plus cette solution qui me parait bien pourrait servir à beaucoup de personne.

Merci de ta compréhension et biensure Pierrot, je n'oublie pas de le dire c'est grace au personne comme vous que l'on évolue.

Cordialement,

Miky
 

Pierrot93

XLDnaute Barbatruc
Re : [VBA]forcer fermeture d'un classeur.

Re,

pas de problème...
pour ta question, pas tout compris du code utilisé... A mon goût beaucoup trop de "on error resume next" qui masque en fait les erreurs... A noter tout de même, si la procédure "Private Sub Workbook_BeforeClose" est activée dans ton classeur, l'instruction suivante :
Application.Quit
ferme l'application Excel et donc tous les classeurs ouverts à ce moment...
 

miky973

XLDnaute Occasionnel
Re : [VBA]forcer fermeture d'un classeur.

l'instruction suivante :
Application.Quit
ferme l'application Excel et donc tous les classeurs ouverts à ce moment...

Re,

il est entre quote je le sais t'inquiète, c'est vraiment pas ça le soucis. j'ai mis à jour mon fichier excel, avec un nettoyage de ma maccro pour une meilleur compréhension. En essayant pas à pas en appuyant sur F8 Ma procédure fonctionne très bien, mais l'utilisant avec le timer c'est là que le problème se pose.
 

Pièces jointes

  • fichier_A_fermer.xls
    38.5 KB · Affichages: 169
  • fichier_A_fermer.xls
    38.5 KB · Affichages: 167
  • fichier_A_fermer.xls
    38.5 KB · Affichages: 183

pierre3401

XLDnaute Nouveau
Re : [VBA]forcer fermeture d'un classeur.

Bonjour,
J'ai essayé ton fichier, car j'ai le même problème.
Seulement, si le claseur que je souhaite fermer se ferme bien lorsqu'il est ouvert chez moi, il ne seferme pas quend c'est quelqu'un d'autre qui l'a ouvert sur son poste.
 

Discussions similaires

Statistiques des forums

Discussions
312 111
Messages
2 085 403
Membres
102 883
dernier inscrit
jameseyz