Bonsoir à tous, J'ai placé dans une userForm plusieurs zones label qui contiennent des chiffres.Comment faire pour additionner ces zoneset afficher le résultat dans une autre zone Label. Merci d'avance
Bonsoir à tous, J'ai placé dans une userForm plusieurs zones label qui contiennent des chiffres.Comment faire pour additionner ces zoneset afficher le résultat dans une autre zone Label. Merci d'avance
Ne fonctionne-t-il pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Me.monTotal = Me.zoneset1 + Me.zoneset2 + Me.zoneset3
Merci Heureux-oli Toujours aussi rapide pour répondre. J'ai mis comme code : Me.Label5 = Me.Label3 + Me.Label4 Si Label3 = 2 , Si Label4 = 2 le total qui s'affiche est égal à 22 au lieu de 4; En fait mon chiffre 2 est reconnu comme un caractère et non comme un chiffre ; Il faut donc que je déclare que mes zones labels contiennent une variable chiffre par exemple Byte mais en pratique comment faire ???
Il y a un détour, CInt cette fonction permet de convertir une chaîne de caractère en nombre.
Essaie !
On se retrouve avec un String !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Dim i as string i = "5"
Va convertir le String i en Integer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Dim j as Integer j = CInt(i)
Va convertir la donnée texte qui se trouve dans le contrôle labal4 en nombre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CInt(Me.label4)
Le tout est de savoir ce que tu veux et à quel moment.
Tu peux les mettre sur un bouton, sur un after update.
Que veux-tu faire avec ton form ?
je reprend un exemple : j'ai un Label1 qui contient le chiffre 2, une Label2 qui contient le chiffre 3, une Label3 qui contient le chiffre 0 : Je veux afficher automatiquement dans une Label4 l'addition des chiffres contenus dans les Label1 Label2 et Label3 soit dans cet exemple le résultat 5 = 2+ 3 + 0 si ma label4 avait contenu le chiffre 1 j'aurai affiché la valeur 6 dans la Label4
Les labels sont-ils remplis par l'utilisateur ou les données sont-elles issues d'un document ou d'une source de données ?
Si c'est par l'utilisateur, on peut mettre le calcul de la valeur sur chaque mise à jour des labels.
Si les données sont issues d'un document, on peut les mettre sur la propriété activé du formulaire.
les valeurs affichées dans les labels sont données par l'utilisateur En fait j'ai mis des boutons d'option auxquels j'ai attribue des valeurs qui s'affichent dans chaque label
Alors, il faut le mettre sur le groupe d'options.
Tu fais le calcul sur chaque groupe d'options, de cette manière, il peuvent utiliser les groupes comme bon leur semble.
Pour les groupes d'options, il faut les mettre dans des frames.
et c'est sur Click du contrôle que ça fonctionne.
Donc, il va falloir une fonction de calcul qui sera appelée à chaque clic.
Après test.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Private Sub OptionButton4_Click() CalculResultat End Sub Private Sub OptionButton5_Click() CalculResultat End Sub Public Function CalculResultat() Me.label6 = CInt(Me.label1) + CInt(Me.label2) End Function
En sachant que j'ai 3 possibilités de réponse / label et une label pour afficher le résultat j'ai mis pour les codes :
Quand j'exécute j'ai le débogueur avec une erreur d'éxécution 13 : incompatibilité de type
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 Private Sub OptionButton1_Click() CalculResultat If Controls("OptionButton1").Value = True Then Label4 = "0" End If End Sub Private Sub OptionButton2_Click() CalculResultat If Controls("OptionButton2").Value = True Then Label4 = "1" End If End Sub Private Sub OptionButton3_Click() CalculResultat If Controls("OptionButton3").Value = True Then Label4 = "2" End If End Sub Private Sub OptionButton4_Click() CalculResultat If Controls("OptionButton4").Value = True Then Label5 = "2" End If End Sub Private Sub OptionButton5_Click() CalculResultat If Controls("OptionButton5").Value = True Then Label5 = "1" End If End Sub Private Sub OptionButton6_Click() CalculResultat If Controls("OptionButton6").Value = True Then Label5 = "0" End If End Sub Public Function CalculResultat() Me.Label6 = CInt(Me.Label4) + CInt(Me.Label5) End Function
Si je clique sur le déboguage j'ai la ligne "Me.Label6 = CInt(Me.Label4) + CInt(Me.Label5)" surlignée en jaune ,,,???
Essaie de mettre l'appel à la fonction après l'affectation de valeur.
Avant de mettre une valeur, il n'y en a pas, on se retrouve avec un Null.
Salut clodius,
Teste en mettant
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part Me.Label16 = CInt(Me.Label4.caption) + CInt(Me.Label5.caption)
Veux tu dire que je dois ecrire :
Dans ce cas j'ai le message d'erreur : Erreur de compilation
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Public Function CalculResultat() CInt(Me.Label4) + CInt(Me.Label5) = Me.Label6) End Function
erreur de syntaxe
j'ai la même erreur si je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part Me.Label16 = CInt(Me.Label4.caption) + CInt(Me.Label5.caption)![]()
C'est à cause des Null.
Pourquoi passes-tu par un Label et pas par un textbox qui est déstiné aux données.
La fonction Nz permet de remplacer une valeur Null par une autre, dans ce cas, 0 pour ne pas influencer le résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Me.label6 = CInt(Nz(Me.label1;0)) + CInt(Nz(Me.label2;0))
Je reste persuadé que c'est de cette valeur Null que vient le problème.
je vais tester avec Nz comme tu le suggère sinon je vais essayer avec des TextBox
à+
Je viens de tester avec la fonction Nz comme indique, J'ai aussi essayé en remplaçant les Labels par des textBox et j'ai toujours le message d'erreur Erreur de compilation erreur de syntaxe sur dernière ligne du code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 Private Sub OptionButton1_Click() CalculResultat If Controls("OptionButton1").Value = True Then TextBox1 = "1" End If End Sub Private Sub OptionButton2_Click() CalculResultat If Controls("OptionButton2").Value = True Then TextBox1 = "2" End If End Sub Private Sub OptionButton3_Click() CalculResultat If Controls("OptionButton3").Value = True Then TextBox2 = "1" End If End Sub Private Sub OptionButton4_Click() CalculResultat If Controls("OptionButton4").Value = True Then TextBox2 = "2" End If End Sub Private Sub TextBox3_Change() End Sub Private Sub UserForm_Click() End Sub Public Function CalculResultat() Me.TextBox3 = CInt(Nz(Me.TextBox1;0)) + CInt(Nz(Me.TextBox2;0))Me.TextBox3 = CInt(Me.TextBox1) + CInt(Me.TextBox2) End Function
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager