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
 

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.
 

Pièces jointes

  • Progression.xlsm
    94.4 KB · Affichages: 18

flexi2202

XLDnaute Occasionnel
merci pour le fichier mais de nouveau il m indique des noms identique
je ne sais pas téléverser mon fichier ici il est trop important
donc je vais essayer via ce moyen
c est une version qui n est pas la plus recente car le dernier fichier est sur un autre pc a mon boulot
https://www.partage-fichiers.com/upload/3b2qejyp/
mais je suposse que je devrais juste reverser les modules
merci de l aide et du temps consacre
 

Dranreb

XLDnaute Barbatruc
Ben essayez comme ça, avec le module MSauvFerm :
VB:
Private Sub Workbook_Open()
Sheets(1).Select
[B3] = Date
[A2] = Year(Date)
Call afficher
PlanifierFermeture
End Sub

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("A5:A35")) Is Nothing Then
If ActiveSheet.Index = 1 Or ActiveSheet.Index = 14 Or Target.Value = "" Then Exit Sub
If ActiveSheet.Index = 3 And Month(Target) > Month(Target.Offset(-1, 0)) Then
[A1].Select
Exit Sub
End If
Application.ScreenUpdating = False
Sheets(1).Select
[B3] = Target.Value
On Error Resume Next
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = (Target.Value * 1 - DateSerial(Year([B3]), 1, 1) * 1) * 15 + 3
Application.ScreenUpdating = True
End If
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Not Intersect(Target, Range("B6:DV36")) Is Nothing And Target.Interior.ColorIndex = 4 Then
If ActiveSheet.Index > 1 Or ActiveSheet.Index < 13 Then
  MsgBox ("DATE du Rendez-vous" & vbLf & vbLf & Format(Cells(Target.Row, 1), "dd/mm/yyyy") & vbLf & _
     vbLf & "à " & vbLf & vbLf & Format(Cells(5, Target.Column), "hh:mm"))
     End If
  End If
PlanifierFermeture
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  PlanifierSauvegarde
  End Sub
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
  PlanifierFermeture
  End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  DéplanifierTout
  End Sub
 

flexi2202

XLDnaute Occasionnel
merci pour toute cette patience
mais depuis tantot j essaye encore et encore mais je n y arrive pas pffff

j ouvre mon agenda je vais dans visualiser le code j ai ceci

ensuite j ouvre progression j ai ceci

puis je clique sur la ligne Visual basic progression et je maintien la souris enfonce pour le copier dans mon agenda
il m indique ceci

j ai essayer de changer les noms de modules dans progression et de recommencer j ai la meme erreur

ensuite j ai essaye de creer un module MSauvFerm et la il refuse le nom
afin d y mettre le code
je suis desole mais premiere fois que je fais ce genre de manipulation en visual
 

Dranreb

XLDnaute Barbatruc
Avant d'essayez d'ajouter vous même une utilisation du UFmDécompte du classeur Progression.xlsm, mettez déjà au point le reste, sans.
Il n'y a besoin que du module MSauvFerm et des appels à ses procédures PlanifierSauvegarde et PlanifierFermeture insérés dans les procédures évènement de Workbook qui existaient déjà, comme montré au poste #23.
Et je vous ai déjà dit qu'à part ceux de la rubrique Microsoft Excel Objets (basculez les dossiers dans l'explorateur de projet pour y voir plus clair) vous n'aviez pas besoin de créer les modules ni les UserForm d'après un autre projet VBA, il suffit, dans l'explorateur de projet, de glisser/déplacer leurs noms avec la souris du projet source vers le projet destinataire.
Remarque: personnellement je dispose l'explorateur de projet et la fenêtre de propriétés l'un à coté de l'autre: ils peuvent être bien trop chargés tous les deux pour que ce soit pratique de les avoir l'un en dessous de l'autre.
 
Dernière édition:

flexi2202

XLDnaute Occasionnel
merci pour la reponse et le temps
pour rappel j y connais rien au VBA donc pas facile de comprendre
mais bon voila on va essayer de faire etape par etape
je viens d ouvrir progression
et j ai cliquer sur
lancer un décompte
lancer un chronomètre
lancer 5 chronomètres
et j ai toujours cette erreur


en lissant la suite du message dans le fichier progression en allant visualiser les codes je ne vois nulle part MSauvFerm
 

Dranreb

XLDnaute Barbatruc
D'accord.
Cherchez toutes les mots Declare dans tout le projet et mettez PtrSafe entre Declare et Sub ou Function, s'il manque.
Chez moi il est supporté mais sans effet. Question de version …
Mais laissez ce classeur de coté pour le moment, c'était juste pour vous montrer que j'avais fait un UserForm de décompte dans mon classeur de démo de tous les dispositifs liés au temps, après que vous en aviez parlé.
MSauvFerm est un module spécifique au second classeur PlanSauvFerm.xlsm joint au poste #12.
Mais d'ailleurs, je me suis amusé à y mettre en service une version un peu plus rouge de l'UfmDécompte. Alors autant le joindre.
*** pièce joint supprimée ***
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Attention: j'avais systématiquement un plantage d'Excel à la fermeture déclenchée de cette façon, c'est à dire suite à un évènement non Excel.
J'ai remanié le code de telle sorte que la fermeture soit commandée seulement par une procédure planifiée par Application.OnTime. Comme ça ça ne plante plus.

Édition: Mais comme dit, ça ne marchera pas si l'utilisateur abandonne subitement son poste en laissant une cellule en cours de modification. Certains trouveront peut être même ce moyen pour contourner le dispositif …

Je joins aussi le classeur de démo Progression car j'y ai aussi fait d'autres modifications.
 

Pièces jointes

  • PlanSauvFerm.xlsm
    35.3 KB · Affichages: 26
  • Progression.xlsm
    92.6 KB · Affichages: 20
Dernière édition:

Discussions similaires

Réponses
12
Affichages
295

Statistiques des forums

Discussions
312 113
Messages
2 085 426
Membres
102 888
dernier inscrit
medoit