Simulation thermostat d'ambiance

CISCO

XLDnaute Barbatruc
Bonjour à tous

Je viens vous demander un gros coup de main. Coté formules, je me débrouille, mais coté VBA, je rame (J'ai bien travaillé avec du fortran ou du basic, mais c'était dans les années 80)... Comme là je ne peux pas faire avec des formules, je fais appel aux bonnes volontés et à la compétence de certains sur le forum...

Voila le "problème": J'aimerai bien faire sur excel une simulation de l'affichage d'un thermostat d'ambiance, avec toutes les fonctions correspondantes.

Vous trouverez donc sur le lien ci-dessous la doc de ce thermostat :


En pièce jointe, je met le tout début de mon travail, la "façade" de ce thermostat. Dans la réalité, il s'agit d'un écran tactile. Sur excel, il faudrait qu'en cliquant sur le pavé ou le bouton, on obtienne le même, ou presque le même résultat qu'avec le vrai thermostat.

Première question : Faut-il mieux utiliser des pavés, comme je l'ai dessiné sur le fichier ci-joint, ou des boutons ayant l'aspect désiré ?

Deuxième question : Comment faire ?

Toutes les propositions sont les bienvenues.

Merci d'avance.
 

Pièces jointes

  • Simul thermostat d'ambiance.xlsx
    19.6 KB · Affichages: 278
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Simulation thermostat d'ambiance

Bonjour à tous

Merci pour ta dernière proposition. Très intéressant les possibilités offertes par IIf. Bien vu.

Je continue à adapter tout cela à la macro complète...

@ plus

P.S : Pour ce qui est de ta dernière remarque, j'avais deux possibilités...
* Faire un fil pour chacune de mes demandes. Il y a tellement de petits trucs à voir (heure, température, barre verticale, clignotement, 1 phase de chauffage, deux phases, température de confort, température éco, température hors gel, marche forcée, encadrement des controls...), que cela aurait fait beaucoup de fils.
* En faire un seul concernant ce thermostat...

Je ne sais quelle est la meilleure solution.
 
Dernière édition:

kjin

XLDnaute Barbatruc
Re : Simulation thermostat d'ambiance

Bonjour Cisco,
J'ai un peu avancé sur l'idée des tableaux...
Je ne comprends toujours pas quelles sont réellement les manips à effectuer sur l'appareil pour programmer les régimes auto 1 et 2 donc si tu pouvais décrire les étapes...
A+
kjin
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Simulation thermostat d'ambiance

Bonjour à tous, bonjour Fo-rum, bonjour Kjin

Merci pour votre aide. Merci pour ton dernier post, Kjin... Il ya tellement de petits détails que ce n'est pas évident de décrire les diverses actions possibles...

Comme je veux tout comprendre dans la macro utilisée, j'essaye de faire avancer le schmilblic...

Pour le moment, je bloque sur le petit problème suivant. L'heure est écrite avec le format hh:mm. Toujours pour être le plus près possible de l'affichage réel, j'aimerai à un moment ne faire clignoter que le : entre hh et mm. J'ai pensé le faire en utilisant :
Code:
        If Me("H" & vN).Visible = True Then heure = Format(CDate(heure), "hh mm")
et cela marche.
Malheureusement, cela pose problème dans d'autres parties de la macro, par exemple avec Timevalue(heure). J'ai espéré corrigé le tir en plaçant des
Code:
heure= format(CDate(heure),"hh:mm")
pour réimposer le format correct.

Malheureusement, avec cette dernière ligne, 13 15 devient 00:00 et non 13:15.


Je ne peux pas non plus le faire en utilisant les propriétés text et value, puisque, dans le cas d'un textbox, ces deux propriétés sont identiques.
Comment faire ?

Merci d'avance.
 

Fo_rum

XLDnaute Accro
Re : Simulation thermostat d'ambiance

Bonjour,

J'en suis au même point que kjin quant à la gestion des phases.
Pour le problème du ":" clignotant, un Label supplémentaire de Caption ":" placé au bon endroit pourrait clignoter à la place du texte horaire. Si cette idée te convient je pourrais voir le traitement.
 

kjin

XLDnaute Barbatruc
Re : Simulation thermostat d'ambiance

Bonjour,
J'ai modifié mon message précédent...!
Je suis déçu de voir que tu n'as pas répondu à ma dernière demande, à savoir, décrire la manip à réaliser sur l'appareil pour programmer les points de commutation des régimes 1 et 2 ce qui n'est pas très clair sur le mode d'emploi et sans l'appareil sous la main...:eek:

Toujours pour être le plus près possible de l'affichage réel, j'aimerai à un moment ne faire clignoter que le : entre hh et mm....
Comment faire ?
Avec ma méthode ça donne l'exemple joint, où je me base sur la valeur paire/impaire de la seconde en cours pour afficher ou non le séparateur.Tu pourras sans doute adapter

Edit : salut Fo_rum :), on s'est croisé...


A+
kjin
 

Pièces jointes

  • testcisco.zip
    22.2 KB · Affichages: 105

CISCO

XLDnaute Barbatruc
Re : Simulation thermostat d'ambiance

Bonsoir à tous

Bonjour,
J'ai modifié mon message précédent...!
Je suis déçu de voir ....kjin



@ Kjin : Excuses Kjin, mais c'est vraiment difficile de décrire complètement l'affichage de ce thermostat. Il ni y a pas tant d'actions possibles que cela, mais tellement de petits détails, tel truc qui clignote, tel autre dans tel cas, l'encadrement de tel bouton qui change... Je ferai un effort demain ou ce WE pour décrire le maximum de choses...

Le problème précédent n'était pas de faire clignoter le : entre hh et mm. La ligne que j'ai mis dans mon précédent post fonctionne bien (Il n'empêche que ta proposition me confirme les possibilités offertes par la syntaxe VBA). Le problème vient du fait que Timevalue(heure) ne fonctionne pas avec une heure écrite au format hh mm. Par conséquent, j'ai essayé de réimposer l'écriture hh:mm avant Timevalue, avec heure = format(heure, "hh:mm"), mais, cela ne fonctionne pas : 13 15 donne 00:00 au lieu de 13:15.

J'ai trouvé une solution, en mettant dans un nom tampon (heurebis) le contenu de heure au format hh:mm, avant transformation au format hh mm, et en rapellant ce contenu un peu plus loin heure=format(heurebis,"hh:mm"). Mais bon, je crois que cela ne fonctionnera pas bien dans tous les cas (le programme fait des trucs entre la mise en mémoire dans heurebis et le rappel, et donc le contenu de heurebis a le bon format, mais pas le bon contenu... Un petit décalage de 1 ou 2 minutes. Grrrr).

@ Fo_rum.
J'avais aussi pensé à cette possibilité, cacher le : entre hh et mm avec un label... Mais je trouve que cela fait un peu bricolage...

Une autre solution plus esthétique serait d'écrire des fois au format "hh:mm", d'autrefois au format "hh"&":" (le : en police blanche)&"mm". Ainsi le rendu serait correct, et le contenu aussi puisque Timevalue verrait toujours hh:mm. Est-ce possible ?

A+
 

kjin

XLDnaute Barbatruc
Re : Simulation thermostat d'ambiance

Bonjour,
...mais cela ne passe pas.
Non ce n'est pas possible
Par contre je ne vois pas pourquoi tu ne passerais pas par une variable intermédiaire pour l'heure;tu pourrais ensuite l'intégrer dans tes fonctions en l'affichant avec ou sans le séparateur...
Code:
Dim H As Date, Heure1$, Heure2$, DemiHeure As Byte
H = "09:35"
Heure1 = Format(H, "hh mm")
Heure2 = Format(H, "hh:mm")
DemiHeure = Int(H / (1 / 48))
...non ?
Pour ce qui est du descriptif, seul la manip m'importe pour l'instant, on verra l'affichage ensuite...
A+
kjin
 

CISCO

XLDnaute Barbatruc
Re : Simulation thermostat d'ambiance

Bonjour à tous

@ Kjin.
En ce qui concerne le problème lié au format hh mm, et comme tu le dis, je dois pouvoir faire avec une ou des valeurs intermédiaires, en prenant quelques précautions. Ta présentation, utilisant heure1, heure2, demi-heure et H est beaucoup plus propre, pédagogique que la mienne avec heure et heurebis.

Vous trouverez ci-joint une description un peu plus poussée de l'affichage du thermostat. J'ai essayé de faire au mieux.
Cijoint.fr - Service gratuit de dépôt de fichiers
Quelques principes :
* Lorsqu'on sélectionne un bouton, celui-ci apparait avec soit un trait épais en haut (ligne de boutons du haut), soit son angle supérieur gauche mis en trait épais (2nde et 3ème lignes de boutons) comme dessiné sur la doc du site Siemens
* Lorsque l'heure est affichée, mais non sélectionnée, les deux points de hh:mm clignotent.
* Lorsque la température ou l'heure est sélectionnée et modifiable, elle clignote (avec °C ou avec h à coté).

J'ai certainement oublié quelques détails, et n'ai pas tenu compte des curseurs placés au dos du thermostat (On verra plus tard).

Grand merci à ceux qui pourront encore m'aider.

@ plus

P.S : Le ficher fait 1,5 Mo... d'où le lien vers Cijoint.fr
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Simulation thermostat d'ambiance

Bonsoir

C'est vraiment dur de trouver la macro complète. Je m'en doutais bien en me lançant dans ce projet... Je progresse petit à petit. Ca fonctionne... C'est OK pour modifier l'heure par pas de 1 min ou automatiquement de 10 min. C'est aussi OK pour modifier les températures de confort, éco et de veille. J'essaye de faire une nouvelle action, et hop, ça plante... Il y a un truc qui fonctionnait jusque là qui ne fonctionne plus... En ce moment, j'ai l'heure qui ne réagit qu'à partir du 3ème clic sur les triangles, alors qu'avant cela fonctionnait très bien dès le premier. Grrrrrrr...

Il y a une petite erreur dans mes derniers fichiers sur cijoint : Le controls "commutation temporaire" ne devrait pas être visible en 7, sur la seconde figure, après avoir cliqué sur le pavé gris...

Si vous avez besoin d'infos supplémentaires, ne vous gênez pas...

@ plus
 
Dernière édition:

kjin

XLDnaute Barbatruc
Re : Simulation thermostat d'ambiance

Bonjour Cisco,
Comme tu as pu voir je suis parti sur une autre piste (et j'avoue qu'à la lecture de ton mode d'emploi j'ai un peu laissé murir l'histoire), et donc je ne puis véritablement t'aider
Si Fo_rum passe par là...
A+
kjin
 

CISCO

XLDnaute Barbatruc
Re : Simulation thermostat d'ambiance

Bonjour à tous

Merci Kjin pour ton message.

Je bosse toujours sur cette simulation de l'affichage d'un thermostat. J'ai fait pas mal de trucs, mais pour le moment, c'est plutot du bricolage, et c'est très lourd (beaucoup de répétitions...).

Au passage, j'aurai encore besoin de votre aide. Est-ce que vous auriez une solution pour ne pas avoir à écrire un très long truc du style :
Code:
If i <>A and i <>B and i <>C and i<>D...
avec i, A, B, C, D... des nombres (une quinzaine parfois, donc presqu'autant de tests), ou encore du style
Code:
If i =A or i =B or i =C or i=D...

Autrement dit, comment peut-on faire simplement pour savoir si un nombre i appartient ou pas à un ensemble de nombres ?

Merci d'avance
@ plus
 

Softmama

XLDnaute Accro
Re : Simulation thermostat d'ambiance

Bonjour,

Un exemple ainsi :
VB:
Sub test()
ListeNb = Array(12, 23, 33, 44, 67) 'La liste des nombres ici
i = InputBox("Entrez un nombre")
If IsError(Application.Match(Val(i), ListeNb, 0)) Then
  MsgBox i & " n'est pas dans la liste"
Else
  MsgBox i & " est bien dans la liste !!!!!!!!!"
End If
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 112
Messages
2 085 417
Membres
102 885
dernier inscrit
AISSOU