probleme avec le reseau

flexi2202

XLDnaute Occasionnel
bonjour a tous
nous avons un agenda cree sous excel et nous aimerions le mettre en réseau
nous venons de faire des essais mais cela pose des soucis
si par exemple j ouvre le fichier et que je mets un que je fais enregistrer que mon fichier reste ouvert et que mon collègue laisse le fichier ouvert sur son pc , son fichier ne se mets pas a jour avec le nouveau rdv
il doit fermer son agenda et l ouvrir pour qu il soit a jour
y a t il un moyen lorsque j ouvre mon agenda d indiquer a mon collègue que l agenda ne peux pas être utilise par lui
oui je sais on peux le departager et ensuite le repartager
mais n y a t il pas une macro ou que sais je qui empêcherait que le fichier soit ouvert par nous deux en même temps
merci de l aide
 

sousou

XLDnaute Accro
bonjour
tu pourrais essayer ceci dans workbook
En complétant chemin de l'image
le principe:
à l'ouverture:
enregistrement du fichier vérouillé avec une image de fond à choisir, pour que l'utilisateur puisse voir que le fichier est ouvert
puis déverrouillage et suppression de l'image pour le premier utilisateur
à l'enregistrement: si c'est le premier enregistrement normal
si c'est le second (feuille vérouillées) enregistrement sans changement

A tester??en vrai

1 cas
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If ActiveSheet.ProtectContents = True Then Application.DisplayAlerts = False: ThisWorkbook.Close savechanges:=False: Exit Sub


End Sub

Private Sub Workbook_Open()
For Each sh In Sheets
sh.SetBackgroundPicture Filename:="C:\Users\bas\Pictures\fond1.jpg"
sh.Protect ("")
Next
ThisWorkbook.Save
For Each sh In Sheets
sh.Unprotect ("")
sh.SetBackgroundPicture Filename:=""
Next
End Sub
 

Dranreb

XLDnaute Barbatruc
Bonsoir
Il serait concevable de faire en sorte que tout les classeurs ouverts le soient en lecture seule, mais s'appuient sur un fichier indépendant.
Selon le contexte, notamment le volume d'informations, ce peut être un fichier texte ou un fichier en accès direct.
À chaque changement d'une cellule, il réécrit tout le ficher (ou un seul enregistrement concerné s'il peut être identifié et directement accédé).
Toutes les 5 secondes il vérifie si le FileDateTime du fichier a changé, et si c'est le cas, en relit l'ensemble et corrige les cellules en conséquence.
 

flexi2202

XLDnaute Occasionnel
bonsoir
merci pour les reponses
sousou j ai vu un mini tuto avec workbook et je trouve ta solution pas mal
pourrais tu juste m expliquer plus en détail comment mettre cela en place un tout grand merci

Dranreb un grand merci pour ta reponse aussi , pourrais tu également essayer de me donner plus d explications , car l idée me semble bonne
 

eriiiic

XLDnaute Barbatruc
Bonjour,

une bonne habitude à prendre avec les classeurs partagés c'est de l'enregistrer avant une saisie.
Ca le force à rapatrier les dernières modifs, et on sait où on met les pieds.
eric
 

Dranreb

XLDnaute Barbatruc
Dranreb un grand merci pour ta reponse aussi , pourrais tu également essayer de me donner plus d explications , car l idée me semble bonne
Il y a Application.OnTime qui joue un rôle là dedans et les instruction VB d'entrée sortie Open, Input, Line Input, Write, Print ou Get, Put et Seek (selon que c'est un fichier texte ou en accès direct), et Close.
Mais peut être une sauvegarde automatique après chaque modification suffirait ?…
 

eriiiic

XLDnaute Barbatruc
Mais peut être une sauvegarde automatique après chaque modification suffirait ?…
A condition de ne pas avoir trop de modifs et d'utilisateurs, sinon une part importante de la bande-passante du réseau sera prise au détriment du confort pour les autres opérations.
eric
 

sousou

XLDnaute Accro
bonjour à tous
Il suffit d'enregistrer ce code dans workbook de visualbasic, et d'enregistrer le fichier.
 

flexi2202

XLDnaute Occasionnel
bonsoir
un tout grand merci pour les différentes réactions
désolé du retard dans les réponses , mais les réponses allaient dans mon courrier indésirables
pour le réseau pas de soucis nous sommes en fibre optique
en principe il n y aura que max 3 personnes qui vont utiliser cet agenda
ce qui serait bien
c est que l agenda puisse enregistrer toutes les 15 secondes et que si un utilisateur ne travaille pas dedans durant plus de 2 mm qu un compte a rebours commence a partir de 2 mm mais que l utilisateur verrait et qu une fois que le compte a rebours est fini que le fichier se sauvegarde et se ferme sauf si l utilisateur utilise le fichier de cette facon un autre utilisateur pourrait l utiliser
je sais pas si cela est fesable
 
Dernière édition:

flexi2202

XLDnaute Occasionnel
merci beaucoup pour les deux fichiers comment les mettres en place dans mon agenda qui comporte déjà des macros
bien cordialement
 

Dranreb

XLDnaute Barbatruc
Bonjour.
En y glissant mes modules. Pour ThisWorkbook il faut y collez le contenu copié de celui du mien.
 

flexi2202

XLDnaute Occasionnel
bonjour
merci pour les reponses
mais etant tres novices dans ces modules de VBA et macro
je dois donc ouvrir mon agenda et ouvrir un des deux fichiers donne ici plus haut
et ensuite je fais pour les glisser
car lorsque j ouvre les modules de mon agenda et les modules du fichiers j ai un seul cadre avec les modules
j ai essaye d exporter les 4 modules de ton fichier et les importer dans le mien mais cela n a pas l air de fonctionner
merci de l aide
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
J'ai ajouté un tout nouveau UserForm UFmDécompte à mon classeur de démo lié à tous les problèmes de temps.

Malheureusement il est bloqué si on laisse une cellule en cours d'édition dans la barre de formule, et je ne sais comment y remédier.
 

Fichiers joints

Discussions similaires


Haut Bas