fermeture et ouverture simultanée d'un même fichier excel

lielos

XLDnaute Nouveau
Bonjour,

Actuellement, il y a un souci avec un fichier partagé excel (en lecture seule pour certains et en modification pour d'autres); tout se passe bien pour ceux qui ont le droit de modifier la fichier partagé c-à-d mises à jour affichées sans problèmes pour eux, par contre aucune mise à jour ne s'affiche pour ceux qui sont en lecture seule ( ça marchait la semaine passé mais en vain depuis 48h....????) pour que la mise à jour se fasse , ils sont obligé de fermer et ouvrir le fichier pour voir les modifications . Serait-il possible dans excel de créer une macro pour fermer le fichier et l'ouvrir automatiquement ? Merci 1000 fois pour votre aide.
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : fermeture et ouverture simultanée d'un même fichier excel

Bonsoir lielos, bienvenue sur XLD,

C'est un peu laborieux, mais vous pouvez essayer avec les macros suivantes :

- Dans ThisWorkbook :

Code:
Private Sub Workbook_Open()
On Error Resume Next
If IsError(ThisWorkbook.Names("toto")) Then
  ThisWorkbook.Names.Add Name:="toto", RefersTo:="=1"
  Application.OnTime Now, "Mamacro"
  ThisWorkbook.Close True
End If
ThisWorkbook.Names("toto").Delete
ThisWorkbook.Save
End Sub

- Dans un Module :

Code:
Sub Mamacro()
End Sub

Bonne fin de soirée.

A+
 

job75

XLDnaute Barbatruc
Re : fermeture et ouverture simultanée d'un même fichier excel

Bonjour lielos, le forum,

Ah j'oubliais que le problème était pour les fichiers en Lecture seule...

Essayez donc cette solution qui modifie seulement la sélection.

Dans ThisWorkbook :

Code:
Private Sub Workbook_Open()
Application.ScreenUpdating = False 'évite le défilement
Application.DisplayAlerts = False
If ThisWorkbook.ReadOnly And Selection.Address <> "$A$10000:$A$10001" Then
  Range("A10000:A10001").Select
  ThisWorkbook.Save
  Application.OnTime Now, "Mamacro"
  ThisWorkbook.Close
End If
Range("A10000").Select 'ou une autre sélection <> A10000:A10001
ThisWorkbook.Save
End Sub

Dans un Module :

Code:
Sub Mamacro()
ThisWorkbook.Activate
End Sub

Edit 1 : bien sûr, si le classeur contient des feuilles "Graphique", il faut d'abord activer une feuille de calcul avec une instruction comme :

Code:
Sheets("Feuil1").Activate

Edit 2 : je viens de tester l'ouverture quand Excel est déjà ouvert. Pas de problème si l'on ouvre à partir de la liste des derniers fichiers. Mais bug si l'on ouvre avec la commande "Ouvrir" :mad: Je n'ai pas d'autres solutions...

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : fermeture et ouverture simultanée d'un même fichier excel

Bonjour lielos, le forum,

Mais comment n'ai-je pas pensé tout se suite à utiliser Application.EnableEvents, ça évite tout problème :eek:

Dans ThisWorkbook :

Code:
Private Sub Workbook_Open()
If ThisWorkbook.ReadOnly Then
  [COLOR="Red"]Application.EnableEvents = False[/COLOR]
  Application.OnTime Now, "Ouvre"
  ThisWorkbook.Close
End If
End Sub

Dans un Module :

Code:
Sub Ouvre()
ThisWorkbook.Activate
[COLOR="Red"]Application.EnableEvents = True[/COLOR]
End Sub

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 195
Messages
2 086 078
Membres
103 112
dernier inscrit
cuq-laet