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

J'ai résolu le problème signalé au 1) ci-dessus en mettant la ligne aussi dans
Code:
Private Sub SpinButton1_Change()
Dim vN As Variant
For vN = 0 To 3: Controls("H" & vN).Visible = True: Next
TextBox1 = SpinButton1
End Sub

Ainsi, les barres verticales sont de nouveau visibles à chaque utilisation du spinbutton1.

C'est quand même un peu lourdaud comme méthode, puisqu'avec cette ligne supplémentaire, For vN=..., je redemande l'affichage de toutes les barres verticales (dans cet exemple, 3 barres, et dans mon fichier réel, 48), alors que seule la dernière clignotante peut poser problème si on utilise le spinButton1 lorsqu'elle est effacée.
J'ai essayé avec
Code:
Private Sub SpinButton1_Change()
    Dim vN As Variant
    If vN = Empty Or vN = "" Then
    Controls("H0").Visible = True
    Else
    Controls("H" & vN).Visible = True
    End If
    TextBox1 = SpinButton1
End Sub

ou avec
Code:
Private Sub SpinButton1_Change()
    Dim vN As Variant
If vN <> Empty Or vN <>"" Then Controls("H" & vN).Visible = True
TextBox1 = SpinButton1
End Sub

pour faire réafficher la dernière barre clignotante, celle correspondant au dernier vN, mais cela ne fonctionne pas.

Ce n'est pas évident, les nuances de la syntaxe du VBA, et quand on a appris à programmer en Basic ou en Fortran vers 1985, et qu'on ne s'en est pas servi depuis 1995.

@ plus
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Simulation thermostat d'ambiance

Bonsoir

Pour ce qui est du 3, ajouter ou modifier un dessin dans un commandbutton, je n'y arrive qu'en faisant un dessin ou en collant une copie d'écran d'un dessin dans Paint, en l'enregistrant en JPEG, en redimensionnant, rognant, retournant si besoin est, et en mettant cette image dans le commandbutton en passant par picture. Pas pratique du tout. Il y a t'il plus pratique ?

@ plus
 

CISCO

XLDnaute Barbatruc
Re : Simulation thermostat d'ambiance

Bonsoir à tous

Merci Softmama. Si on peut utiliser le raccourci clavier Ctrl+V dans la propriété picture, tant mieux...

Je viens de tester avec un dessin. Ca marche aussi, super.... Si on clique droit sur le controle, on n'a pas accès au coller dans la liste, mais en passant par picture, c'est OK avec Ctrl+V. On n'a donc pas besoin de stocker ce dessin sous forme d'image, et de la redimensionner, de la rogner... c'est bien plus pratique.

Encore merci Softmama.

@ plus
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Simulation thermostat d'ambiance

Bonsoir à tous

J'essaye toujours de simuler l'affichage d'un thermostat.

J'ai mis sur un USF tout une série de controls (Dans la version définitive, j'en éliminerai même certains).

Avec une des propositions de Fo_rum, j'ai réussi à faire évoluer l'heure comme je veux en cliquant d'abord sur le control heure (--> affichage des controls à conserver et effacement des autres) puis sur les triangles moins ou plus, par pas de 1 min, entre 00:00 et 23:59 (Pour le défilement automatique et plus rapide, par pas de 10 minutes,on verra plus tard).

Première question : Comment fait on pour revenir à l'affichage initial de tous les controls (ou presque) suite à un nouveau click sur le control heure ?

Ensuite, j'ai essayé de faire évoluer presque de la même manière la température, en cliquant d'abord sur le controls température (--> affichage de certains controls et effacement des autres), puis sur les triangles + ou -. Malheureusement, là, je n'arrive pas à obtenir ce que je veux, à savoir addition ou retrait de 0,1 °C à la température déja indiquée. Apparemment, c'est un problème de dimension. Je ne peux pas passer par un Cdate ici, donc, j'ai essayé avec Cstr, ou Cdec, sans succès.

Deuxième question donc : Comment faire pour faire évoluer cette température de 0,1 en 0,1 °C ?

La partie qui ne convient pas semble être dans les lignes suivantes :
Code:
Sub Avancetempérature(deltatempérature As String)
    'température max bloquée à 23:00  °C, sinon, ajout de 0,1 °C
    If température = "23,0" Then T = "23,0" _
    Else: T = CStr(température) + CStr(deltatempérature)
    température = CStr(Format(CStr(T), "hh,m"))
End Sub
...........
Sub Reculetempérature(deltatempérature As String)
    'température min bloquée à 00:0 °C, sinon retrait de 0,1 °C
    If température = "00,0" Then T = "00,0" _
    Else: T = CStr(température) - CStr(deltatempérature)
    température = CStr(Format(CStr(T), "hh,m"))
End Sub


Merci d'avance à ceux qui voudront bien éclairer ma lanterne.

@plus
 

Pièces jointes

  • essai forum Cisco.zip
    61.1 KB · Affichages: 48
  • essai forum Cisco.zip
    61.1 KB · Affichages: 48
  • essai forum Cisco.zip
    61.1 KB · Affichages: 48

Fo_rum

XLDnaute Accro
Re : Simulation thermostat d'ambiance

Bonsoir,

ma programmation précédente n'étant pas fiable, j'ai changé pas mal des choses et profité pour inclure des clins quand ... .
je n'ai pas eu le temps* de tester convenablement donc s'il y a des problèmes et que cela intéresse quelqu'un, qu'il me le dise. Merci

* trés chaud, aussi je fréquente les plages autres que les tiennes pour l'instant ;)
 

Pièces jointes

  • SimulationThermostat3.xls
    170 KB · Affichages: 106

CISCO

XLDnaute Barbatruc
Re : Simulation thermostat d'ambiance

Bonjour à tous


Merci fo_rum pour cette proposition. Je vais essayer de comprendre ta macro pour l'adapter à mon besoin. Plusieurs des solutions que tu proposes semblent aller dans le bon sens... Pour autant, ce n'est pas facile de tout comprendre...

@ plus
 
Dernière édition:

Caillou

XLDnaute Impliqué
Re : Simulation thermostat d'ambiance

Bonjour CISCO, le forum,

Dans ton post du 20/08, tu demandes
1 - comment revenir à un affichage normal aprés avoir réglé l'heure
Je pense que le mieux est de créer une procédure evenement sur le formulaire (Userform_click) pour rétablir l'affichage selon le même principe que les procédures qui masquent l'heure ou la rempérature.

2 - Comment faire pour faire évoluer cette température de 0,1 en 0,1 °C
En fait, je place un fichier joint car j'ai du mal à expliquer !

Caillou
 

Pièces jointes

  • forum Cisco.zip
    52.2 KB · Affichages: 41

CISCO

XLDnaute Barbatruc
Re : Simulation thermostat d'ambiance

Bonsoir à tous

Merci Caillou pour ta proposition. Encore des possibilités intéressantes.

Malheureusement, pour le moment, je n'arrive pas à revenir, avec ton fichier, à l'affichage de tous les controls avec un second clic sur heure ou sur température, ou n'importe où sur le USF ailleurs que sur les triangles moins et plus...

Je cherche à comprendre tout cela. Encore merci.

@ plus
 

kjin

XLDnaute Barbatruc
Re : Simulation thermostat d'ambiance

Buenasera,
Malheureusement, pour le moment, je n'arrive pas à revenir, avec ton fichier, à l'affichage de tous les controls
c'est écrit ici...
Je pense que le mieux est de créer une procédure evenement sur le formulaire (Userform_click)
...donc "click" sur le USF
Bon, ceci dit, ton truc m'amuse mais j'avoue que je n'ai rien compris de qu'est ce que c'est que le problème il est où qu'on doit le résoudre !
A+
kjin
 

CISCO

XLDnaute Barbatruc
Re : Simulation thermostat d'ambiance

Bonjour à tous, bonjour Camarchepas, Fo_rum, Kjin et Caillou

Merci Caillou. J'avais essayé sur la zone verte, pas sur la zone blanche. Effectivement, comme cela, ca marche. Encore merci. Je garde cette possibilité sous le coude.

Pour que cela ressemble vraiment au thermostat réel, je préfèrerai qu'on obtienne le réaffichage de l'ensemble des controls avec un nouveau clic sur le controls heure ou le controls température, comme dans la dernière solution proposée par Fo_rum.

@ plus
 

kjin

XLDnaute Barbatruc
Re : Simulation thermostat d'ambiance

Bonjour,
En fait je voulais dire que je n'ai toujours pas pigé comment fonctionne cet appareil alors je me suis un peu amusé
A+
kjin
 

Pièces jointes

  • Thermocisco.zip
    62.7 KB · Affichages: 95

CISCO

XLDnaute Barbatruc
Re : Simulation thermostat d'ambiance

Bonjour à tous, bonjour Kjin

Encore une autre possibilité. Merci Kjin.

J'essaye de comprendre vos diverses macro pour faire quelque chose d'assez proche du thermostat réel.

Pour le moment, j'ai, en résumé :
* le réglage de l'heure par pas de 1 min après un clic sur le controls heure, et sur le triangle + ou le triangle -. Arrêt et réaffichage de l'ensemble des controls avec un second clic sur le controls heure.
* le réglage de la température par pas de 0,1 °C après un clic sur le controls température, et sur le triangle + ou le triangle -. Arrêt et réaffichage de l'ensemble des controls avec un second clic sur le controls température.


Pour obtenir le défilement rapide et automatique de l'heure par pas de 10 min, j'ai quatre possibilités :
1) clic sur l'heure, puis clic prolongé sur le triangle + ou le triangle -, comme sur le thermostat réel. J'ai l'impression qu'on pourrait faire quelque chose dans ce sens avec la dernière proposition de Kjin.
2) Clic sur l'heure, puis clic droit sur le triangle + ou le triangle -. Défaut : Cela ne fonctionne pas exactement comme le thermostat réel.
3) Clic sur l'heure, puis double clic sur le triangle + ou le triangle - (cf 1ère proposition de fo_rum). Défaut : Cela ne fonctionne pas exactement comme le thermostat réel, et l'utilisateur obtiendrait peut être parfois le défilement rapide alors qu'il veut juste ajouter ou retirer 1 min.
4) Clic sur l'heure, puis clic sur le triangle double + ou -, comme dans la dernière proposition de Fo_rum. Bonne idée. Pas mal du tout au niveau pratique. Défaut : Cela ne fonctionne pas exactement comme le thermostat réel.

J'ai essayé d'adapter vos propositions / DblClick ou RightClick, mais je n'y arrive pas pour le moment. Mais il faut bien admettre que ma préférence irait plutot vers le cas 1), clic prolongé pour lancer le défilement automatique, reclic sur l'heure pour arrêter le défilement.

Pour le moment, je n'ai pas associé le clignotement des barres verticales avec le contenu du controls heure. Cela viendra plus tard.

J'ai aussi un petit problème avec l'affichage du frame1 qui comprend presque tous les controls (Cela serait quand même plus simple que de lister tous les controls à afficher). Si je demande son effacement, cela marche, si je demande son affichage, cela ne marche pas !!! On verra ça plus tard aussi.

Il y a tellement de cas, de combinaisons possibles des touches, que c'est difficile de faire l'organigramme complet de l'affichage. Par conséquent, et histoire que je comprenne bien comment cela fonctionne, je pense que le mieux est de procéder ainsi, étape par étape.

@ plus
 

Pièces jointes

  • essai forum Cisco.zip
    77 KB · Affichages: 82
  • essai forum Cisco.zip
    77 KB · Affichages: 82
  • essai forum Cisco.zip
    77 KB · Affichages: 82
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16