Création macro écran de veille avec zone du fichier

bibou1212

XLDnaute Occasionnel
ReBonjour à tous,

J'espére que ce sujet va être interressant.

Je travaille sur un fichier excel qui suis des indicateurs horaires qui sont évoluent seul. Ce fichier va être ouvert pendant 16h et ne va servir que 10 min par heure environ.

Ce que je souhaiterai faire: lorsque on ne touche pas le clavier ou la souris pendant 1 min, une zone d'une feuille du classeur s'aggrandi pour venir masqué la page entière. Lorsqu'on retouche le clavier ou la souris l'écran précedant ou à la rigeur un écran en particulier reviens.

Je pense donné une autre info importante: un compteur tourne pour enregistrer toutes les 10 min le fichier en cours.

Merci de m'aider pour ce gadget sympa

David
 

wilfried_42

XLDnaute Barbatruc
Re : Création macro écran de veille avec zone du fichier

bonjour

m'enfin 1 er essai, tu as une feuille veille, avec un controle image (histoire de faire joli) mais sans image (histoire de ne pas faire un gros fichier) :D

un minuteur, reglé à 1 minute, au bout d'une minute, sans saisie ou sans deplacement dans les feuilles, sauvegarde auto du fichier, mise en place de l'ecran de veille

la prochaine sauvegarde auto, ne se fera pas 1 minute apres, mais 1 minute apres la derniere saisie ou deplacement dans une feuille.

Le retour à l'ecran (Feuil1) utiliser la barre d'espace

fichier joint (ce n'est qu'un premier jet)
 

Pièces jointes

  • ecran_de_veille.zip
    10.5 KB · Affichages: 140
  • ecran_de_veille.zip
    10.5 KB · Affichages: 133
  • ecran_de_veille.zip
    10.5 KB · Affichages: 131

bibou1212

XLDnaute Occasionnel
Re : Création macro écran de veille avec zone du fichier

Bonjour Wilfried,

Merci de t'être interressé à mon probléme.

Je trouve que c'est une trés bonne solution la combinaison entre l'enregistrement auto et la mise en place de l'écran de veille, comme ça en plus je pourrai virer mon programme de sauvegarde.

mais par contre je n'ai pas compris à quoio pouvais servir le bouton Stop Chrono.

Mais dans le code du workbook il y a une petite erreur de compilation sur le premier Sub :


Option Explicit

Private Sub Workbook_Open()
Call chrono_stop: Call chrono_go
sauve = False
End Sub


Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Call chrono_stop: Call chrono_go
sauve = False
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Call chrono_stop: Call chrono_go
sauve = False
End Sub


En tout cas ça me fait vraiment très plaisir que tu essayes de me filer un coup de main sur ce coup là.

Au fait tu pense quoi du sujet, c un truc dur ou pas, parceque pour moi tout est Dur en VBA. mais hier j'ai réussi à taper mon premier programme seul qui en appuyant sur un bouton enregistrer, imprimer puis fermer le fichier.
 

bibou1212

XLDnaute Occasionnel
Re : Création macro écran de veille avec zone du fichier

Ok ça marche bien je pourrai déjà me débroiller avec ça mais j'ai deux petites questions qui me viennent:

- A quoi sert le bouton Stop Chrono, et est ce que je suis obliger de le mette pour faire marcher le programme?​

- Doit on se servir seulement de la basse espace, ou pourrait on se servir d'un déplacement de souris ou d'un appui sur n'importe quel touche? C'est à dire si il y a une commande pour ça "un changement d'état??​

Alors qu'en pense tu??
 

wilfried_42

XLDnaute Barbatruc
Re : Création macro écran de veille avec zone du fichier

re:

le bouton stop chrono ne sert à rien, si le programme est terminé, sinon essaye de modifier le code avec le chrono en route, tu sera surpris lol

Bon il est reglé à une minute, voire selon ton voeux 10 minutes, de la gestion de l'interruption, tu interromps aussi ta saisie de code, c'est ch.......

donc garde le, jusqu'à la fin du programme, ensuite garde le

Je verrai lundi pour voir si on peu faire mieux sur les interruptions, ce week-end, je ne suis pas disponible.

pour le mouvement de la souris, mes recherches seront plus longues, le ne sais pas si on peut gerer (en général), le deplacement ou le click souris

bon week end
 

wilfried_42

XLDnaute Barbatruc
Re : Création macro écran de veille avec zone du fichier

re:

Voici une version, avec une userform, appuyer sur n'importe quelle touche pour retour à l'ecran

je cherche avec la souris, mais ca bogue

j'ai reprogrmmer à 20 secondes (Trop long 1 minute pour les tests :D)
 

Pièces jointes

  • ecran_de_veille.zip
    11.1 KB · Affichages: 100
  • ecran_de_veille.zip
    11.1 KB · Affichages: 101
  • ecran_de_veille.zip
    11.1 KB · Affichages: 96

bibou1212

XLDnaute Occasionnel
Re : Création macro écran de veille avec zone du fichier

C'est énorme ce que tu as fais mais l'écran de veille, ça je connait pas.

Comment on fait pour le créé et pour le modifié? Pour la souris tu peut pas te servir des chiffres de longitude et de latitude en pas à droite de l'écran quand tu bouge ta souris? Sinon c'est déjà super!!!

Au fait je suis apprenti ingénieur et c'est un truc que je doit faire pour le boulot, mais la semaine prochaine je suis en cour donc je serai dans l'incapacité de te répondre durant la journée mais on pourra toujours le faire par mail interposé.

En tout cas c'est un sujet qui à l'air de t'interesser, c'est un truc compliqué pour un crac comme toi?;)

Merci encore de ton implication
 

wilfried_42

XLDnaute Barbatruc
Re : Création macro écran de veille avec zone du fichier

Re:

Je pense que c'est bon, l'interruption sur le mouvement de la souris etait compliqué, il memorisait un mouvement de souris immediat, ce qui effacait l'ecran de veille à pein affiché

je detaille l'analyse, le timer, se met en route et repars à zero, apres chaque selection de cellule, ou modification de cellule,
Actuellement (pour les tests), apres 20 secondes, sauvegarde automatique du fichier, l'ecran de veille se declanche, sous la forme d'une image affichée sur une UserForm
Dés l'appui d'une touche, d'un click souris ou d'un deplacement souris, l'ecran de veille s'efface et redonne la main à la saisie sur le tableur, le timer se remet en route pour 20 secondes

Pour acceder au programme : ALT + F11
3 Modules concernés : ThisWorkbook, usf_Veille, Module1.

Dans ThisWorkbook :
Code:
Option Explicit
' A l'ouvertur du classeur on declanche le chronometre (timer)
Private Sub Workbook_Open()
     Call chrono_stop: Call chrono_go
End Sub

' à chaque modification de cellule, On arrete et on relance le Chrono
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
     Call chrono_stop: Call chrono_go
End Sub

' A chaque selection de cellule, On arrete et on relance le Chrono
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
     Call chrono_stop: Call chrono_go
End Sub

Dans usf_Veille : (Developper feuilles, doubleclick sur le nom pour acceder à l'objet, click droit ---> code pour acceder au programme
Code:
' Suite à un bog trouvé (VBA considere que la souris se deplace), je remets à zeros de position memorisée de la souris
Private Sub UserForm_Initialize()
    mposy = 0: mposx = 0
End Sub

' Si un click souris quelque soit le bouton, je ferme et relance le chrono (sur l'image)
Private Sub Image1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Unload Me
    Call Retour
End Sub

' Gestion du déplacement de la souris (sur l'image)
Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
' Suite au bog, si la position memorisée de la souris est = 0, memoriser la position de la souris
    If mposx = 0 Then
        mposx = X
        mposy = Y
        Exit Sub
    End If
' Si la souris n'a pas bougé, je sors de la procedure
    If mposx = X And mposy = Y Then Exit Sub
'Sinon, le ferme et je relance le Crono
    Unload Me
    Call Retour
End Sub

' Si une touche est appuyée je ferme et je relance le chrono
Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Unload Me
    Call Retour
End Sub

' Si un click souris quelque soit le bouton, je ferme et relance le chrono (sur l'userform)
Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Unload Me
    Call Retour
End Sub

' Gestion du déplacement de la souris (sur l'Userform)
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
' Suite au bog, si la position memorisée de la souris est = 0, memoriser la position de la souris
    If mposx = 0 Then
        mposx = X
        mposy = Y
        Exit Sub
    End If
' Si la souris n'a pas bougé, je sors de la procedure
    If mposx = X And mposy = Y Then Exit Sub
'Sinon, le ferme et je relance le Crono
    Unload Me
    Call Retour
End Sub

ensuite le chronometre dans le Module 1
Code:
Option Explicit
' Definition des variables commune à tous les modules
' Temps pour l'heure de declanchement de la procedure
' Sauve pour la sauvegarde du fichier (ne pas le faire inutilement)
' mposx et mposy pour memoriser la position de la souris
Public Temps As Date, sauve As Boolean, mposx As Single, mposy As Single

'Procedure de lancement du chrono
Sub chrono_go()
    sauve = False ' la sauvegarde sera à faire
    Temps = Now + TimeValue("00:00:20") ' Calcul de mainteant + 20 secondes
    Application.OnTime Temps, "gw_Veille" ' des que l'heure arrive à temps, declanche la procedur gw_Veille
End Sub

Sub chrono_stop()
    On Error Resume Next
    Application.OnTime Temps, "gw_Veille", , False ' Arrete le chronometre
    On Error GoTo 0
End Sub

Sub gw_Veille()
    Call chrono_stop ' Arrete le Chrono
    ThisWorkbook.save ' Sauvegarde le fichier
    sauve = True ' le fichier est sauvegardé, ne plus le faire
    usf_Veille.Show ' affiche UserForm de l'ecran de veille
End Sub

Sub Retour()
    Call chrono_go ' Relance le Chrono
End Sub
 

Pièces jointes

  • ecran_de_veille.zip
    13.2 KB · Affichages: 113
  • ecran_de_veille.zip
    13.2 KB · Affichages: 111
  • ecran_de_veille.zip
    13.2 KB · Affichages: 131

bibou1212

XLDnaute Occasionnel
Re : Création macro écran de veille avec zone du fichier

:)Avant de commencer bonne année à tous, je vous souhaite tous mes voeux de santé et de bonheur pour cette nouvelle année 2008.

Bonjour Wilfried,

J'espère que tu a passé de bonnes fêtes de fin d'année et que tu va bien. désolé de ne pas t'avoir contacter plus tôt mais entre les fêtes de fin d'année et la grippe qui est venu en cadeau de noël je n'ai pas trop eu le temps.

J'ai regarder attentivement ton programme, qui est superbe, c'est exactement ce que j'imaginer mais je ne sais pas comment je peut modifier la feuille usf_veille? comment je peut mettre un truc à moi qui se remplis tout seul dedans??

Merci de ta reponse et encore bonne année à toi!!!!:)
 

wilfried_42

XLDnaute Barbatruc
Re : Création macro écran de veille avec zone du fichier

re:

tous mes voeux pour 2008, ainsi qu'une excelente santé :(

Quand tu es sur la feuille excel, tu appuies sur stop chrono pour arreter le chronometre

ensuite simultanemment, ALT et F11 pour acceder au VBA --> la fenetre VBA s'affiche

A Gauche une fenetre (Projet - Vba Project) avec plein de nom barbare

vers la fin de cette liste, tu as Feuilles avec en dessous usf_veille (si pas affichée, developper Feuille en cliquant sur le +)

Double click sur usf_veille --> t'affiche l'Userform

click droit sur le grand carré gris ---> choisir propriete, un fenetre s'affiche à gauche (pour moi))
Dans les propriete (Par ordre alpha) voir Picture ---> (aucun) click dessus un bouton apparait avec ..., click dessus : Fenetre de chargement : choisir l'image à mettre

en esperant avoir été clair :)rolleyes:)
 

bibou1212

XLDnaute Occasionnel
Re : Création macro écran de veille avec zone du fichier

ok c'est très clair mais moi comme je te l'avais dis c une zone du fichier en cour que je voudrais afficher.



fichier que je fais suivre est une version ultra simplifier du dossier complet, c juste pour le principe, c'est un controle de production et de déchets. toutes les heures on entre un nombre de caisse en cumulé comme c'est dans l'exemple et pour les déchets on le rentre toutes les deux heures.

ce que j'aimerai ce serai voir en gros les deux graph sur l'écran de veille en plus gros. c'est à dire prendre les deux sélections en instantané

C'est jouable

Bon je n'arrive pas à te l'envoyer il est encore trop gros 48 Ko c'est pas gérable t'a un mail perso ou je peut te le faire parvenir??
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 069
Messages
2 085 040
Membres
102 763
dernier inscrit
NICO26