OVH Cloud OVH Cloud

Par dizaine

4 réponses
Avatar
PatCatNat's
Bonjour,

Des salariés gagnent des points en fonction de leurs ventes et des chèques
cadeau de 10 euros leur sont remis.

Ex. :
10 points = 1 chèque de 10 euros
13 points = 2 chèques de 10 euros
46 points = 5 chèques de 10 euros

Je ne sais pas par quel bout prendre ce truc pour arrondir à la dizaine
supérieure

Merci

Patrice

4 réponses

Avatar
Eric
Bonjour Patrice

Essaies cela :

Function NbDeCheques(NbDePoints As Integer) As Integer
If NbDePoints < 10 Then
NbDeCheques = 0
ElseIf NbDePoints Mod 10 > 0 Then ' Y a t il un reste ?
' on prend la division entière +1
NbDeCheques= NbDePoints 10 + 1
Else
NbDeCheques= NbDePoints / 10
End If
End Function


J'ai typé en Integer car je ne connais pas les valeurs possibles.
De plus, si le nombre est inférieur à 10, j'ai admis comme résulat 0 mais
peut être doit-on envisager 1 ???

Ca correspond ?

A+
Eric



"PatCatNat's" écrivait
news:ce7ndo$kd1$:

Bonjour,

Des salariés gagnent des points en fonction de leurs ventes et des
chèques cadeau de 10 euros leur sont remis.

Ex. :
10 points = 1 chèque de 10 euros
13 points = 2 chèques de 10 euros
46 points = 5 chèques de 10 euros

Je ne sais pas par quel bout prendre ce truc pour arrondir à la
dizaine supérieure

Merci

Patrice





Avatar
PatCatNat's
Merci Eric,

mais je cois que j'ai râté un épisode car je débute du côté modules (en fait
j'y connais rien, je fais du "direct VBA live" ;o)) dans mes évènements
!... )

Qu'est-ce que je mets dans mon code évenement pour appeler la fonction ?

Private Sub Commande6_Click()
?????????????????????????????
End Sub

D'autre part : Si, si, (impératrice) il peut y avoir un nombre de points
inférieur à 10...


"Eric" a écrit dans le message de
news:
Bonjour Patrice

Essaies cela :

Function NbDeCheques(NbDePoints As Integer) As Integer
If NbDePoints < 10 Then
NbDeCheques = 0
ElseIf NbDePoints Mod 10 > 0 Then ' Y a t il un reste ?
' on prend la division entière +1
NbDeCheques= NbDePoints 10 + 1
Else
NbDeCheques= NbDePoints / 10
End If
End Function


J'ai typé en Integer car je ne connais pas les valeurs possibles.
De plus, si le nombre est inférieur à 10, j'ai admis comme résulat 0 mais
peut être doit-on envisager 1 ???

Ca correspond ?

A+
Eric



"PatCatNat's" écrivait
news:ce7ndo$kd1$:

Bonjour,

Des salariés gagnent des points en fonction de leurs ventes et des
chèques cadeau de 10 euros leur sont remis.

Ex. :
10 points = 1 chèque de 10 euros
13 points = 2 chèques de 10 euros
46 points = 5 chèques de 10 euros

Je ne sais pas par quel bout prendre ce truc pour arrondir à la
dizaine supérieure

Merci

Patrice








Avatar
Eric
Boujour PatCatNat's

En supposant que le champ qui doit recevoir le nb de chèques de 10 euros
s'appelle PrimeCheque

Private Sub Commande6_Click()
Me!PrimeCheque=NbDeCheques(Me!TonControlePoint)
End Sub

Si le fonction Function NbDeCheques(NbDePoints As Integer) as Integer
n'est utilisée que dans ce formulaire, tu peux la copier dans le module
du formulaire. Si tu dois la réutiliser à d'autres occasions, dans
d'autres formulaires, alors mets la dans un module Standard.

Si le nb de points peut être > à 32767 alors il faut modifier la fonction
comme suit au niveau du typage:

Function NbDeCheques(NbDePoints As Long) As Long

Dans le cas ou le nb de points est <10, par exemple et que tu veux
obtenir un nb de chèques égal à 1, modifies comme suit la fonction

Function NbDeCheques(NbDePoints As Integer) As Integer
' Typé à Long suivant besoin
If NbDePoints Mod 10 > 0 Then
NbDeCheques = NbDePoints 10 + 1
Else
NbDeCheques = NbDePoints / 10
End If
End Function

C'est Ok ?

A+
Eric


"PatCatNat's" écrivait
news:ce7rc0$qct$:

Merci Eric,

mais je cois que j'ai râté un épisode car je débute du côté modules
(en fait j'y connais rien, je fais du "direct VBA live" ;o)) dans mes
évènements !... )

Qu'est-ce que je mets dans mon code évenement pour appeler la fonction
?

Private Sub Commande6_Click()
?????????????????????????????
End Sub

D'autre part : Si, si, (impératrice) il peut y avoir un nombre de
points inférieur à 10...


"Eric" a écrit dans le message de
news:
Bonjour Patrice

Essaies cela :

Function NbDeCheques(NbDePoints As Integer) As Integer
If NbDePoints < 10 Then
NbDeCheques = 0
ElseIf NbDePoints Mod 10 > 0 Then ' Y a t il un reste ?
' on prend la division entière +1
NbDeCheques= NbDePoints 10 + 1
Else
NbDeCheques= NbDePoints / 10
End If
End Function


J'ai typé en Integer car je ne connais pas les valeurs possibles.
De plus, si le nombre est inférieur à 10, j'ai admis comme résulat 0
mais peut être doit-on envisager 1 ???

Ca correspond ?

A+
Eric



"PatCatNat's" écrivait
news:ce7ndo$kd1$:

Bonjour,

Des salariés gagnent des points en fonction de leurs ventes et des
chèques cadeau de 10 euros leur sont remis.

Ex. :
10 points = 1 chèque de 10 euros
13 points = 2 chèques de 10 euros
46 points = 5 chèques de 10 euros

Je ne sais pas par quel bout prendre ce truc pour arrondir à la
dizaine supérieure

Merci

Patrice













Avatar
PatCatNat's
C'est même super Ok

Merci encore Eric (pour excel aussi)

Patrice

"Eric" a écrit dans le message de
news:
Boujour PatCatNat's

En supposant que le champ qui doit recevoir le nb de chèques de 10 euros
s'appelle PrimeCheque

Private Sub Commande6_Click()
Me!PrimeCheque=NbDeCheques(Me!TonControlePoint)
End Sub

Si le fonction Function NbDeCheques(NbDePoints As Integer) as Integer
n'est utilisée que dans ce formulaire, tu peux la copier dans le module
du formulaire. Si tu dois la réutiliser à d'autres occasions, dans
d'autres formulaires, alors mets la dans un module Standard.

Si le nb de points peut être > à 32767 alors il faut modifier la fonction
comme suit au niveau du typage:

Function NbDeCheques(NbDePoints As Long) As Long

Dans le cas ou le nb de points est <10, par exemple et que tu veux
obtenir un nb de chèques égal à 1, modifies comme suit la fonction

Function NbDeCheques(NbDePoints As Integer) As Integer
' Typé à Long suivant besoin
If NbDePoints Mod 10 > 0 Then
NbDeCheques = NbDePoints 10 + 1
Else
NbDeCheques = NbDePoints / 10
End If
End Function

C'est Ok ?

A+
Eric


"PatCatNat's" écrivait
news:ce7rc0$qct$:

Merci Eric,

mais je cois que j'ai râté un épisode car je débute du côté modules
(en fait j'y connais rien, je fais du "direct VBA live" ;o)) dans mes
évènements !... )

Qu'est-ce que je mets dans mon code évenement pour appeler la fonction
?

Private Sub Commande6_Click()
?????????????????????????????
End Sub

D'autre part : Si, si, (impératrice) il peut y avoir un nombre de
points inférieur à 10...


"Eric" a écrit dans le message de
news:
Bonjour Patrice

Essaies cela :

Function NbDeCheques(NbDePoints As Integer) As Integer
If NbDePoints < 10 Then
NbDeCheques = 0
ElseIf NbDePoints Mod 10 > 0 Then ' Y a t il un reste ?
' on prend la division entière +1
NbDeCheques= NbDePoints 10 + 1
Else
NbDeCheques= NbDePoints / 10
End If
End Function


J'ai typé en Integer car je ne connais pas les valeurs possibles.
De plus, si le nombre est inférieur à 10, j'ai admis comme résulat 0
mais peut être doit-on envisager 1 ???

Ca correspond ?

A+
Eric



"PatCatNat's" écrivait
news:ce7ndo$kd1$:

Bonjour,

Des salariés gagnent des points en fonction de leurs ventes et des
chèques cadeau de 10 euros leur sont remis.

Ex. :
10 points = 1 chèque de 10 euros
13 points = 2 chèques de 10 euros
46 points = 5 chèques de 10 euros

Je ne sais pas par quel bout prendre ce truc pour arrondir à la
dizaine supérieure

Merci

Patrice