Autres Plusieurs problématique : Heure instant H, Formule si

Sissi4676

XLDnaute Nouveau
Bonjour,

Je travaille sur un tableur excel qui servira pour la gestion d'une patinoire synthétique éphémère.

Je souhaite que l'heure se mette automatiquement à jour toutes les minutes.

En effet, j'ai besoin qu'elle s'actualise pour que ma formule en colonne H apparaisse : =SI(G4=J1;"🔔 C'est l'heure";SI(G4<J1;"💬 l'heure est passée !";""))

J'ai également insérer une formule en colonne G : =SI(F4="";" "; F4+TEMPSVAL("0:40"))
Je souhaiterai ajouter qu'en fonction d'ou est placé l'* (dans 30mn ou 60mn) ma formule calcule automatiquement la bonne heure de sortie soit 40mn ou 1h10

Et pout être au top du top, il ne peut y avoir que 28 enfants présents en même temps sur la patinoire, est ce qu'il est possible de l'indiquer par un moyen ou un autre ?

J'ai fait plusieurs recherche, mais là je cale.... Si quelqu'un se sent à la hauteur de relevé le défit :)

Merci
 

Pièces jointes

  • PATINOIRE AVEC MACRO.xlsm
    70.3 KB · Affichages: 5
Solution
Bonsoir Sissi, et bienvenu(e) sur XLD,
Un essai en PJ où j'ai modifié le code de HorlogeEnc3, rajouté un truc dans Thisworkbook, et modifié les formules d'alertes. Le message "C'est l'heure" reste affiché pendant une minute avant de basculer sur "C'est fini".
Bonjour,

Merci beaucoup :)
Premier problème résolu.
J'ai trouvé la solution pour l'heure de fin (en fonction de si la personne vient pour 30mn ou 1hr)
Reste le souci, que si la cellule 30mn ou 60mn est vide, cela me note automatique 1:10 dans l'heure de fin. Je n'arrive pas à ajouter une formule pour dire que si les cellules de la colonne D ou E sont vides, il faut que les cellules correspondantes de la colonne F soient vides.

Et dernier point :

Je souhaiterait que soit...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Sissi, et bienvenu(e) sur XLD,
Un essai en PJ où j'ai modifié le code de HorlogeEnc3, rajouté un truc dans Thisworkbook, et modifié les formules d'alertes. Le message "C'est l'heure" reste affiché pendant une minute avant de basculer sur "C'est fini".
 

Pièces jointes

  • PATINOIRE AVEC MACRO (1).xlsm
    64.1 KB · Affichages: 2

Dranreb

XLDnaute Barbatruc
Bonsoir.
Rien compris à vos explications, sauf :
Pour que la date et l'heure s'actualise toutes les minutes, dans un module standard :
VB:
Option Explicit
Private HOT As Date
Public Sub MàjHeure()
   If HOT = 0 Then HOT = Now
   Feuil1.Cells(1, "J").Value = HOT
   HOT = Int(Now * 1440 + 1.5) / 1440
   Application.OnTime HOT, "MàJHeure"
   End Sub
Public Sub StopperMàJH()
   If HOT = 0 Then Exit Sub
   Application.OnTime HOT, "MàJHeure", Schedule:=False
   HOT = 0
   End Sub
 

Dranreb

XLDnaute Barbatruc
Sinon il y a deux problème avec votre formule en H :
1 — Vous comparer une heure seule à une date+heure: ça ne peut jamais être voisin.
2 — Vous testez l'égalité alors que ça ne peut pratiquement jamais être parfaitement égal.
Je propose en H4, à propager sur x lignes :
Code:
=CHOISIR(SIERREUR(SIGNE(ENT(MOD($J$1;1)*1440)-ENT(G4*1440));-1)+2;"";"🔔 C'est l'heure";"💬 l'heure est passée !")
 

Sissi4676

XLDnaute Nouveau
Bonsoir Sissi, et bienvenu(e) sur XLD,
Un essai en PJ où j'ai modifié le code de HorlogeEnc3, rajouté un truc dans Thisworkbook, et modifié les formules d'alertes. Le message "C'est l'heure" reste affiché pendant une minute avant de basculer sur "C'est fini".
Bonjour,

Merci beaucoup :)
Premier problème résolu.
J'ai trouvé la solution pour l'heure de fin (en fonction de si la personne vient pour 30mn ou 1hr)
Reste le souci, que si la cellule 30mn ou 60mn est vide, cela me note automatique 1:10 dans l'heure de fin. Je n'arrive pas à ajouter une formule pour dire que si les cellules de la colonne D ou E sont vides, il faut que les cellules correspondantes de la colonne F soient vides.

Et dernier point :

Je souhaiterait que soit encadrer d'une couleur, les 28 personnes présentes en même temps sur la patinoire (jauge max). Est ce possible ?

Dans tous les cas merci pour la résolution de mon premier problème.
Je mets le tableau actualisé en PJ, si jamais....

Encore merci
Sylvie
 

Pièces jointes

  • PATINOIRE V3.xlsm
    97.6 KB · Affichages: 4

Sissi4676

XLDnaute Nouveau
Bonsoir.
Rien compris à vos explications, sauf :
Pour que la date et l'heure s'actualise toutes les minutes, dans un module standard :
VB:
Option Explicit
Private HOT As Date
Public Sub MàjHeure()
   If HOT = 0 Then HOT = Now
   Feuil1.Cells(1, "J").Value = HOT
   HOT = Int(Now * 1440 + 1.5) / 1440
   Application.OnTime HOT, "MàJHeure"
   End Sub
Public Sub StopperMàJH()
   If HOT = 0 Then Exit Sub
   Application.OnTime HOT, "MàJHeure", Schedule:=False
   HOT = 0
   End Sub
merci
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
J'ai regardé pour le point N°2, c'est assez complexe. Par ex on pourrait avoir 4 groupes qui s'inscrivent comme ci dessous à des horaires différents, mais dont un chevauchement temporel dépasserait 28 participants à un certain moment. Par ex :
1669801507436.png

Dans ce cas il ne faut pas analyser simplement les horaires entrée/sorties mais les présences.
est ce bien ce que vous voulez ?
On ne peut le faire qu'en VBA, car trop complexe en MFC.
 

Sissi4676

XLDnaute Nouveau
Re,
J'ai regardé pour le point N°2, c'est assez complexe. Par ex on pourrait avoir 4 groupes qui s'inscrivent comme ci dessous à des horaires différents, mais dont un chevauchement temporel dépasserait 28 participants à un certain moment. Par ex :
Regarde la pièce jointe 1156852
Dans ce cas il ne faut pas analyser simplement les horaires entrée/sorties mais les présences.
est ce bien ce que vous voulez ?
On ne peut le faire qu'en VBA, car trop complexe en MFC.
Oui, c'est bien ca, les gens vont arriver au fil de l'eau, mais il ne sera possible d'avoir que 28 personnes sur la patinoire. On peut gérer au niveau de la patinoire avec un compteur manuel, mais au niveau de l'entrée on risque de mettre quelqu un pour 30 mn, mais qu'il ne puisse pas entrer de suite...
 

Sissi4676

XLDnaute Nouveau
Re,
J'ai regardé pour le point N°2, c'est assez complexe. Par ex on pourrait avoir 4 groupes qui s'inscrivent comme ci dessous à des horaires différents, mais dont un chevauchement temporel dépasserait 28 participants à un certain moment. Par ex :
Regarde la pièce jointe 1156852
Dans ce cas il ne faut pas analyser simplement les horaires entrée/sorties mais les présences.
est ce bien ce que vous voulez ?
On ne peut le faire qu'en VBA, car trop complexe en MFC.
Ou alors dans la colonne G, indiquer "Présent" pour les personnes sur place, et dans une cellule à part compter le nombre "présent" ?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Une approche en PJ.
En colonne H on regarde si la personne est présente. On fait le cumul des présent en H3.
Quand on saisie un nouvel arrivant en colonne D ou E, si le max de 28 est dépassé, on émet une alerte, et on efface la cellule. Avec dans la Feuil1 :
VB:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("D4:E1000")) Is Nothing Then
         Application.ScreenUpdating = False
         If Cells(Target.Rows, "A") <> "" And [H3] > 28 Then
            MsgBox "Trop de monde. Plus de 28 participants présents."
            Target = ""
         End If
    End If
Fin:
Application.ScreenUpdating = True
End Sub
 

Pièces jointes

  • Patinoire V5.xlsm
    119.3 KB · Affichages: 6

Sissi4676

XLDnaute Nouveau
Une approche en PJ.
En colonne H on regarde si la personne est présente. On fait le cumul des présent en H3.
Quand on saisie un nouvel arrivant en colonne D ou E, si le max de 28 est dépassé, on émet une alerte, et on efface la cellule. Avec dans la Feuil1 :
VB:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("D4:E1000")) Is Nothing Then
         Application.ScreenUpdating = False
         If Cells(Target.Rows, "A") <> "" And [H3] > 28 Then
            MsgBox "Trop de monde. Plus de 28 participants présents."
            Target = ""
         End If
    End If
Fin:
Application.ScreenUpdating = True
End Sub
J'ai testé, mais ca n'a pas l'air de fonctionner
 

Statistiques des forums

Discussions
312 819
Messages
2 092 396
Membres
105 402
dernier inscrit
AnZouaoui