Visualisation d'une valeur sous VBA Excel

P

Pat

Guest
Salut,
je n'arrive pas à répondre a vos messages
 

porcinet82

XLDnaute Barbatruc
re,

Regarde le fichier joint, ca te donnera peut etre une idée pour ce que tu veux faire.

[file name=Pat_20051223213938.zip size=9281]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Pat_20051223213938.zip[/file]

@+
 

Pièces jointes

  • Pat_20051223213938.zip
    9.1 KB · Affichages: 28

porcinet82

XLDnaute Barbatruc
Salut Pat,

Je viens de jeter un oeil a ton fichier, le soucis c'est ce que je ne peux pas tester la procédure, donc à vu d'oeil, je dirais que ca fait quelque chose du genre:

Code:
Dim surf_carre as integer, surf_ronde as integer

If OpbGainecarrée=True Then
  surf_carre=TxtLargeur.value*TxtLargeur.value
  TxtSurface.value=surf_carre*TxtHauteur.value
Else if OpbGainecronde=True Then
  surf_ronde=(TxtDiametre.value/2)*(TxtDiametre.value/2)*3.1415926
  TxtSurface.value=surf_ronde*TxtHauteur.value
End if


Je pense qu'avec ce code et ce qu'on t'a deja donné avant, tu devrait t'en sortir.
Si ce n'est pas le cas, réessaye de mettre ton fichier en PJ afin que je puisse tester le code.

@+
 
P

Pat

Guest
Salut Porcinet82,
tout d'abord merci pour ton aide et joyeuses fêtes à toi et tes proches.
J'ai réussi a contourner mon problème , d'une manière peut etre pas catholique mais çà marche. Par contre j'obtient la valeur de la surface dans le USF quand je clique sur OK, j'aimerai avoir la valeur dés que je rentre un diamétre ou une section!!
Pour la procédure: page de garde;controle des debits d'air aux centrales; là tu rentre qque chose dans désignation; marque; type tu choisie gaine ronde tu rentre un diametre si tu choisi gaine carrée rentre largeur et hauteur tu clique sur OK la surface s'affiche et le reste se vide, il faudrait quand même temps que l'on rentre les valeurs diametre hauteur largeur que la surface s'affiche et OK tout se vide
ci joint le nouveau classeur
http://cjoint.com/?mymPyDcNkp
Si t'as le temps Merci @+
 

porcinet82

XLDnaute Barbatruc
re,

Bon, tout d'abord je te signal une petite anomalie, rien de bien méchant, mais bon. Tu as mis des controles afin de vérifier que les champs sont bien remplis. Hors, lorsque l'on sélectionne une gaine carrée, on ne devrait pas être obligé de remplir un diamètre, non?

Sinon, je vois que tu as réussit a calculer la surface. Je pense qu'en mettant ton calcul dans le code suivant, ca devrait fonctionner.

Code:
Private Sub TxtHauteur_Change()

End Sub

En prenant un exemple tout con, ca donne ceci :

Code:
Private Sub TextBox2_Change()
    TextBox3.Value = TextBox1.Value * TextBox2.Value
End Sub

Je pense qu'en mettant le code que je t'ai donné dans le précédent post, dans la procédure ci-dessus, ca devrait marcher. Mais ca doit aussi fonctionner avec ton cas.

Je te file en PJ mon exemple bidon pour que tu vois ce que ca donne.

[file name=Pat_20051224130603.zip size=7884]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Pat_20051224130603.zip[/file]

Si ta encore des soucis je suis encore dispo. Si ca fonctionne bon noel également a toi.

@+
 

Pièces jointes

  • Pat_20051224130603.zip
    7.7 KB · Affichages: 15
P

Pat

Guest
Désolé de te faire bosser une veille de noël!!!
je ne peux pas mettre ma formule là ou tu me la indiquer car a chaque entrée de nouvelles valeurs je décale la saisie d'une ligne dans la feuille Excel.Et dans ton post je ne comprend pas tout:
tu multiplie la largeur par elle meme ????

Dim surf_carre as integer, surf_ronde as integer
If OpbGainecarrée=True Then
surf_carre=TxtLargeur.value*TxtLargeur.value
TxtSurface.value=surf_carre*TxtHauteur.value
Else if OpbGainecronde=True Then
surf_ronde=(TxtDiametre.value/2)*(TxtDiametre.value/2)*3.1415926
TxtSurface.value=surf_ronde*TxtHauteur.value

End if

n'est il pas possible de mettre :TxtDiamètre_Change() dans la meme instruction cmdok.clik ????????
 

porcinet82

XLDnaute Barbatruc
Et bien pour commencer, la surface d'un cylindre est bien surface de base*hauteur, la surface de base etant un cercle dont l'aire est Pi*r² et celle d'un parallépipède rectangle est surface de base*hauteur dont la surface de base un rectangle de surface longeur*largeur.
Mais je me suis peut etre planté, ce n'est peut-etre pas ca que tu calculs.

POur ta seconde question, nan il n'est pas possible de mettre TxtDiamètre_Change() dans ta procédure cmdok.clik(), ca reviendrait au meme que précédement, a savoir que le resultat s'afficherai que lorsque tu cliques.

Est-ce que tu pourrais joindre ton fichier dans le forum afin que je puisse regarder comment fonctionne vraiment ton projet, notamment le fait que chaque nouvelles valeurs sont décalées lors de la saisie.
 
P

Pat

Guest
Est ce que tu ne reçoit pas l'adresse ou tu peux telecharger mon classeur ?????
pour les calculs: en fait ce projet me sert dans mon boulot,on fait des mesures sur des gaines de ventilation donc on a le choix entre des gaines rondes ou des gaines carrées donc pour calculer la surface: on choisit avec optionbutton gaine ronde ou gaine carrée et on rentre soit le diamètre soit la largeur et la hauteur !!OK ??
 
P

Pat

Guest
Est ce que tu ne reçoit pas l'adresse ou tu peux telecharger mon classeur ?????
pour les calculs: en fait ce projet me sert dans mon boulot,on fait des mesures sur des gaines de ventilation donc on a le choix entre des gaines rondes ou des gaines carrées donc pour calculer la surface: on choisit avec optionbutton gaine ronde ou gaine carrée et on rentre soit le diamètre soit la largeur et la hauteur !!OK ??
 

porcinet82

XLDnaute Barbatruc
Désolé, j'arrivais a une page web ou il y avait ton classeur mais j'etais tellement dedans que j'avais pas vu que je pouvais le telecharger.

Bon avec le fichier c'est deja beaucoup plus simple et il me semble avoir trouver la solution, enfin je te laisse vérifier. Il faut que tu mette le code que je t'ai donné précédemment, dans ton USF Feuille de saisie CTA:
(Par contre, il ne faut pas oublier de cocher soit gaine ronde, soit gaine carrée)

Code:
Private Sub TxtHauteur_Change()
Dim surf_carre As Integer, surf_ronde As Integer

If OpbGainecarrée = True Then
  surf_carre = TxtLargeur.Value * TxtLargeur.Value
  TxtSurface.Value = surf_carre * TxtHauteur.Value
ElseIf OpbGainecronde = True Then
  surf_ronde = (TxtDiametre.Value / 2) * (TxtDiametre.Value / 2) * 3.1415926
  TxtSurface.Value = surf_ronde * TxtHauteur.Value
End If
End Sub

Par contre, lorsque je test ton code (sans le mien), ca n'incrémente pas les données sur la feuille CTA, ca les ecrasent. Il ne reste que les dernières valeurs rentrées.

Je viens de jeter un oeil avec mon code, lorsque tu cliques sur ok, ca plante.
Je te file ce que j'ai fais pour le moment des fois que ca pourrait t'aider mais je vais rejeter un oeil.

PS: Dans le calcul que je fais, je calcul le volume et non l'air de la gaine (les cours de maths remonte un peu), mais si ca fonctionne avec le volume, ca fonctionnera avec la surface
 

Discussions similaires

Statistiques des forums

Discussions
312 429
Messages
2 088 348
Membres
103 822
dernier inscrit
kader55