Calcul volatile et résultat dans un Label

Mulder

XLDnaute Junior
Bonjour,
J'ai créé toute une UserForm avec tout un tas de données dedans pour renseigner différents paramètres d'une facture qui seront ensuite centralisée dans un tableau... Ca, c'est pour le détail de mon projet pour vous donner une idée générale.

Je cherche donc à afficher, sur ma userform, un label qui calculerait en temps réel charge1+charge2+...+tva de manière à me donner le total théorique TTC, lequel serait ensuite comparé au montant TTC saisi pour valider ou non la saisie de la facture...

Je pensais à un codage du genre :

Private Sub User_Form Initialize
Application.Volatile
LabelCaption.Value = Textbox1+Textbox2+...

+ mes autres codes VB pour ce qui doit s'initializer...
End Sub

Et ensuite mon contrôle en rapprochement avec le Textbox du TTC que je sais mettre en place...
Mais mon bout de macro ne semble pas fonctionner... Le Application.Volatile ne marche pas pour afficher un calcul en temps réel dans un Label des données saisies dans des Textbox ??

D'avance merci...

PS : j'ai pas ma maquette Excel sous la main, désolé, je ne peux donc pas joindre d'exemple, mais je pense avoir été assez explicite.
 

skoobi

XLDnaute Barbatruc
Re : Calcul volatile et résultat dans un Label

Bonjour Mulder, bienvenue sur le forum,

Application.Volatile marche pour les fonctions d'excel et non pour les userforms.
Si tu veux que le calcul se fasse "en temps réel" je suppose que tu veux dire pendant la saisie dans le/les textboxs concernés. Dans ce cas il faut intégrer ton calcul dans le/les événements Change du/des textboxs.
 

JNP

XLDnaute Barbatruc
Re : Calcul volatile et résultat dans un Label

Bonjour Mulder et bienvenue (ne pas confondre XFile et Excel...:D)
Application.Volatile sert à obliger le calcul des fonctions VBA dans les cellules, ce qui n'est pas ton cas.
Par contre, TextBox, comme son nom l'indique, est censé contenir du Texte au départ. Donc si tu additionnes du texte, le résultat en concaténation reste du texte. Si tu veux faire des calculs, le mieux est d'utiliser
Code:
CDbl(Textbox1)
pour convertir la valeur de Textbox1 en nombre.
Bonne soirée :cool:
Edit : Bonsoir Skoobi. Je n'avais pas vu qu'il parlait d'Initialize, effectivement, mon discours est bon pour un événement Change.
 
Dernière édition:

Mulder

XLDnaute Junior
Re : Calcul volatile et résultat dans un Label

Bonjour Mulder, bienvenue sur le forum,

Application.Volatile marche pour les fonctions d'excel et non pour les userforms.
Si tu veux que le calcul se fasse "en temps réel" je suppose que tu veux dire pendant la saisie dans le/les textboxs concernés. Dans ce cas il faut intégrer ton calcul dans le/les événements Change du/des textboxs.

Bien ok pour les messages et la mise en format des textbox en nombre pour le calcul...
Par contre je comprends pas trop ce que je dois obtenir d'après ce que tu me dis Skoobi...
Je dois intégrer le calcul pour chaque Textbox_change ???? Et du coup ça sera volatile/modifié en temps réel à chaque modif des textboxs ?
 

skoobi

XLDnaute Barbatruc
Re : Calcul volatile et résultat dans un Label

Re,
Bonsoir JNP :),

Oui c'est ça. Par exemple:

Code:
Private Sub TextBox1_Change()
calcul
End Sub

Private Sub TextBox2_Change()
calcul
End Sub
Sub calcul()
LabelCaption.Value = Textbox1+Textbox2+...
End Sub
La procédure calcul est appelée dans chaque textbox_change, ceci évite d'écrire à chaque fois tout le code de calcul.
 

job75

XLDnaute Barbatruc
Re : Calcul volatile et résultat dans un Label

Bonsoir Mulder, skoobi, JNP,

Je ne comprends pas LabelCaption.Value = ...

Par contre Label1.Caption = ..., si.

Edit : la macro calcul de skoobi doit s'écrire :

Code:
Sub calcul()
Label1.Caption = [COLOR="Red"]Val[/COLOR](TextBox1) + [COLOR="Red"]Val[/COLOR](TextBox2)+ ...
End Sub

En effet CDbl ne convertit pas un texte vide ""...

A+
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 541
Messages
2 089 412
Membres
104 163
dernier inscrit
Lolo37