Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/10/2007, 21h42   #1
Invité régulier
 
Avatar de clodius46
 
Inscription : août 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 67
Points : 6
Points : 6
Par défaut Calcul d'un total dans une UserForm

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
clodius46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 22h36   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Code :
1
2
 
Me.monTotal = Me.zoneset1 + Me.zoneset2 + Me.zoneset3
Ne fonctionne-t-il pas ?
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 23h31   #3
Invité régulier
 
Avatar de clodius46
 
Inscription : août 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 67
Points : 6
Points : 6
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 ???
clodius46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 07h53   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Il y a un détour, CInt cette fonction permet de convertir une chaîne de caractère en nombre.

Essaie !
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 08h28   #5
Invité régulier
 
Avatar de clodius46
 
Inscription : août 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 67
Points : 6
Points : 6
Citation:
Envoyé par Heureux-oli Voir le message
Il y a un détour, CInt cette fonction permet de convertir une chaîne de caractère en nombre.

Essaie !
Euh je ne ait pas faire. peut tu m'expliquer un peu plus ?
clodius46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 08h44   #6
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Code :
1
2
3
 
Dim i as string
i = "5"
On se retrouve avec un String !

Code :
1
2
3
 
Dim j as Integer
j = CInt(i)
Va convertir le String i en Integer.

Va convertir la donnée texte qui se trouve dans le contrôle labal4 en nombre.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 16h59   #7
Invité régulier
 
Avatar de clodius46
 
Inscription : août 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 67
Points : 6
Points : 6
a quel endroit dois-je placer ces codes ?
clodius46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 17h42   #8
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
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 ?
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 21h08   #9
Invité régulier
 
Avatar de clodius46
 
Inscription : août 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 67
Points : 6
Points : 6
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
clodius46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 21h13   #10
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
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.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 21h36   #11
Invité régulier
 
Avatar de clodius46
 
Inscription : août 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 67
Points : 6
Points : 6
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
clodius46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 21h46   #12
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
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.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 21h53   #13
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Code :
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
Après test.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 23h01   #14
Invité régulier
 
Avatar de clodius46
 
Inscription : août 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 67
Points : 6
Points : 6
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 :
Code :
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
Quand j'exécute j'ai le débogueur avec une erreur d'éxécution 13 : incompatibilité de type
Si je clique sur le déboguage j'ai la ligne "Me.Label6 = CInt(Me.Label4) + CInt(Me.Label5)" surlignée en jaune ,,,???
clodius46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 08h39   #15
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
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.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 15h29   #16
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Salut clodius,
Teste en mettant
Code :
Me.Label16 = CInt(Me.Label4.caption) + CInt(Me.Label5.caption)
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 20h49   #17
Invité régulier
 
Avatar de clodius46
 
Inscription : août 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 67
Points : 6
Points : 6
Veux tu dire que je dois ecrire :
Code :
1
2
3
Public Function CalculResultat()
CInt(Me.Label4) + CInt(Me.Label5) = Me.Label6)
End Function
Dans ce cas j'ai le message d'erreur : Erreur de compilation
erreur de syntaxe
j'ai la même erreur si je fais
Code :
Me.Label16 = CInt(Me.Label4.caption) + CInt(Me.Label5.caption)
clodius46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 21h05   #18
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
C'est à cause des Null.

Pourquoi passes-tu par un Label et pas par un textbox qui est déstiné aux données.

Code :
1
2
 
Me.label6 = CInt(Nz(Me.label1;0)) + CInt(Nz(Me.label2;0))
La fonction Nz permet de remplacer une valeur Null par une autre, dans ce cas, 0 pour ne pas influencer le résultat.

Je reste persuadé que c'est de cette valeur Null que vient le problème.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 21h42   #19
Invité régulier
 
Avatar de clodius46
 
Inscription : août 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 67
Points : 6
Points : 6
je vais tester avec Nz comme tu le suggère sinon je vais essayer avec des TextBox
à+
clodius46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 22h31   #20
Invité régulier
 
Avatar de clodius46
 
Inscription : août 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 67
Points : 6
Points : 6
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 :
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
clodius46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h59.


 
 
 
 
Partenaires

Hébergement Web