bonjour
j'ai besoin entre 3 valeurs de determiner l'ecart entre la plus petite et la plus grande
une idee
bonjour
j'ai besoin entre 3 valeurs de determiner l'ecart entre la plus petite et la plus grande
une idee
Salut,
Avec autant d'informations tu vas avoir toute sorte de réponse sauf la bonne (enfin peut être...)
Du genre
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 Sub Diff(val1 as integer, val2 as integer, val3 as integer) Dim min as Integer Dim max as Integer if val1 < val2 then min = val1 max = val2 else min = val2 max = val1 end if if min < val3 then if max < val3 then max = val3 end if else min = val3 end if debug.print "Différence : " max - min end sub
hello
je precise (je debute)
j'ai 3 valeurs : a1, b1, c1 nombres decimaux réels je voudrai calculer l'ecart entre les 3 valeurs
les valeurs a1,b1,c1 sont rentrés
l'ecart doit être calculé ds le meme formulaire
merci
On débute tous un jour : mais je pense que depuis notre plus jeune age nous sommes capable d'énoncer un problème
Alors, elles sont rentrées où ces valeurs ??
De plus, tu fais bien de préciser que ce sont des nombres décimaux réels. Ce ne sont pas des entiers comme je l'ai écrit.
Donc l'écart doit être affiché dans le formulaire ?? dans un champ texte ??
bjour kikof
effectivement j'ai été un peu vite
dans le formulaire, l'utilisateur rentre 3 valeurs numériques réelles dans trois champs numériques a,b,c réelles différents , je veux que dans ce même formulaire je veux calculer automatiquement et mémoriser l'écart entre ces trois valeurs dans un champ numérique réelle dénommé ecart
Dans ce formulaire, j'ai deux séries de trois valeurs à chercher l'écart.
j'ai compris qu'il fallait crééer une procédure sub avec
-trois valeurs rentrantes a,b,c ; une valeur sortante ecart pour la 1ère série,
- trois valeurs rentrantes d,e,f et ecart2 pour la deuxième série
j'ai deux pb
- que mettre dans cette procédure
- commet l'appeler deux fois ?
merci
L'astuce : tu utilises la formule dans la source d'un champ texte qui va récupérer le résultat.
Tu passes en paramètre de ta formule la valeur des champs et le tour est joué.
Dans le champ texte en source :
Dans un module :
Code : Sélectionner tout - Visualiser dans une fenêtre à part =(CalculDiff(Me.Champ1, Me.Champ2, Me.Champ3)
Tu répètes la création du champ texte et tu modifies unqiuement l'appel de la fonction dans la source du champ texte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Public Function CalculDiff(val1 as Variant, val2 as Variant, val3 as Variant) As Variant 'Récupère le code ci-dessus CalculDiff = Max-Min End Function
hello
merci
j'ai aussi corrigé dim min as variant est ce exact ?
je teste le reste
j'au une erreur
la syntaxe de l'expression entree n'est pas correcte lorsque j'attribue au champ indépendant ( dans le source controle)
j'ai fait attention de bien declarer les variables comme des reels simples dans la table
Code : Sélectionner tout - Visualiser dans une fenêtre à part =(CalculDiff(Me.Champ1, Me.Champ2, Me.Champ3)
tu pourrais ajouter ces fonctions
auquel cas quel que soit le nombre de valeurs
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 Function maxi(ParamArray valeur() As Variant) As Variant Dim tempo As Variant Dim parcourt As Long parcourt = 0 Do Until Not IsNull(valeur(parcourt)) parcourt = parcourt + 1 Loop tempo = valeur(parcourt) For parcourt = parcourt To UBound(valeur) If valeur(parcourt) > tempo Then tempo = valeur(parcourt) Next parcourt maxi = tempo End Function Function mini(ParamArray valeur() As Variant) As Variant Dim tempo As Variant Dim parcourt As Long parcourt = 0 Do Until Not IsNull(valeur(parcourt)) parcourt = parcourt + 1 Loop tempo = valeur(parcourt) For parcourt = parcourt To UBound(valeur) If valeur(parcourt) < tempo Then tempo = valeur(parcourt) Next parcourt mini = tempo End Function
max(valeurs;valeurn)-min(valeur;valeurn) te donnera le nombre même si tu as 100 valeurs
il y a une parenthèse en trop (copier-collerEnvoyé par lolothom
)
j'ai essaye :
=CalculDiff(Me.Champ1, Me.Champ2, Me.Champ3)
=(CalculDiff(Me.Champ1, Me.Champ2, Me.Champ3)
=(CalculDiff(Me.Champ1, Me.Champ2, Me.Champ3))
toujours la meme erreur
bonsoir
je n'ai pas compris ou je dois mettre
max(valeurs;valeurn)-min(valeur;valeurn)
ou
=(CalculDiff(Me.Champ1, Me.Champ2, Me.Champ3)
Mets ça dans la source du champ texte :Si ça marche pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part =CalculDiff([Champ1];[Champ2];[Champ3])![]()
HELLO
ca marche pour votre fonction §!!!!!!!!!!!!!!!!!!!!!!
comme je suis en train d'apprendre comment je passe avec les arguments de la deuxieme fonction
max(valeurs;valeurn)-min(valeur;valeurn)
Partager