Slider et volume [Résolu]

Messages postés
62
Date d'inscription
vendredi 11 avril 2003
Dernière intervention
21 janvier 2007
- - Dernière réponse : cs_marsouin
Messages postés
62
Date d'inscription
vendredi 11 avril 2003
Dernière intervention
21 janvier 2007
- 16 janv. 2007 à 18:39
Bonsoir à tous
Je vous expose mon cas: dans le cadre de calcul de volume d'un cylindre
3 Textbox =>  Text1 = Diametre en mm
                       Text2 = Longueur en mm
                       Text3 = Volume en mm3
                      + 1 Slider avec un max de 10 repères

J'aimerais savoir si il était possible de pouvoir jouer sur les valeurs de Text1 et Text2 en utilisant le Slider et ceci sans Changer la valeur de Text3 qui servira donc de référence
Merci
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
38
3
Merci
Il te faut quoi, le code tout fait ???? que tu n'ais plus rien à faire.

Alors supposons que ton slider fixe la valeur du diametre :

Sub Slider1_Change()
    Text1.Text = Slider1.Value
    Text2.Text = Text3.Text / (3.1415 * (Text1.Text / 2) ^ 2)
End Sub

Cela en appliquant la formule donnée plus haut L = V / (PI * (D/2)2 )

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_casy
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
38
0
Merci
Bien sur, dans l'évènement Change de ton slider, tu fais évoluer la valeur qui doit changer (text1 ou text2), et en appliquant la formule de calcul du volume en sens inverse tu peux retouver l'autre valeur.

La formule du volume étant si je me trompe pas V = PI*(D/2)2*L

En faisant varier D, tu retrouve L = V / (PI * (D/2)2 )
et en faisant varier L, tu retrouve D = 2 ( V*(PI*L))1/2

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Dernière intervention
22 août 2014
22
0
Merci
Bien évidemment que oui !

Mais c'est avant tout des maths !

Volume = Pi x Rayon² x Hauteur

Or volume est fixe, selon ta définition  

en conséquence :
- si tu modifies Rayon, il te faut calculer la nouvelle hauteur pour ce même volume
-si tu modifies hauteur, il te faut calculer le nouveau rayon pour ce même volume .

Tout celà n'est que mathématique et n'a rien à voir avec VB

En maths, j'aurais donc :
Z = Pi x² y
Z étant fixe :

a)    si tu modifies y :

x = Racine carrée de (Z/pi * Y)

b) si tu modifies x :

y = Z/(pi *x²)

Ton problème n'est pas VB mais autre chose.....
Commenter la réponse de jmfmarques
Messages postés
62
Date d'inscription
vendredi 11 avril 2003
Dernière intervention
21 janvier 2007
0
Merci
Merci pour ces réponses
mais je confirmes que ce n'est pas un problême de math
Pour préciser ma question
Quel code je peux utiliser pour faire varier L et D en utilisant la fonction Slider
Merci
Commenter la réponse de cs_marsouin
Messages postés
62
Date d'inscription
vendredi 11 avril 2003
Dernière intervention
21 janvier 2007
0
Merci
Pour éviter de tourner en rond , je vais essayer de préciser ma question
Il s'agit également de faire en sorte que L et D change avec l'utilisation d'1 Slider
Exemple: Plus le Slider va vers la droite plus L augmente et D diminue de manière à ce que V ne change pas
Plus le Slider va vers la gauche plus L diminue et D augmente et cela toujours en gardant la valeur de référence qui est D
Commenter la réponse de cs_marsouin
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Dernière intervention
22 août 2014
22
0
Merci
Il me semble que tu te noies dans un verre d'eau !

Je ne vais pas faire ton exercice, mais te donner cet exempla:

Sur une Form :
- une HscrollBar Hscroll1
- une Shape Shape1

Code :

Private depL As Double, depD As Double
Private Sub Form_Activate()
  With HScroll1
    .Min = -1000
    .Max = 1000
    .Value = 0
  End With
  depL = Shape1.Height
  depD = Shape1.Width
End Sub


Private Sub HScroll1_Change()
  HScroll1_Scroll
End Sub


Private Sub HScroll1_Scroll()
  Shape1.Height = HScroll1.Value + depL
End Sub

Voilà donc comment tu fais varier L

Je te laisse bien évidemment appliquer maintenant les calculs plus hauts pour en déduire et fixer la valeur de D !
Commenter la réponse de jmfmarques
Messages postés
62
Date d'inscription
vendredi 11 avril 2003
Dernière intervention
21 janvier 2007
0
Merci
Merci encore pour ces réponses
Petite précision
En aucun cas je ne veux que vous fassiez mon travail en me donnant un code pret à l'emploi (c'est en faisant des efforts et en réflechissant que ça finis par rentrer)
Mais quand on utilise Vb rarement, et pour des applications bien précise, il n'est vraiment pas évident de se servir d'une fonction qui est, en tous cas pour moi nouvelle.
Commenter la réponse de cs_marsouin

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.