OVH Cloud OVH Cloud

Cherche le code

6 réponses
Avatar
apt
Bonjour,

j'ai les donn=E9es suivantes :

si x =3D 1, 5, 9, 13, ..., 49 =3D> alors ta(x) =3D 1
si x =3D 2, 6, 10, 14, .., 50 =3D> alors ta(x) =3D 2
si x =3D 3, 7, 11, 15, .., 51 =3D> alors ta(x) =3D 3
si x =3D 4, 8, 12, 16, .., 52 =3D> alors ta(x) =3D 4

j'espere avoir le code qui englobe tout =E7a d'une fa=E7on g=E9n=E9rale.

Merci.

6 réponses

Avatar
Ardus Petus
Par formule:
=IF(MOD(A1;4)=0;4;MOD(A1;4))

En VBA:
'-------------------------------------------------
public function ta(x as integer) as integer
dim m as integer
m = x mod 4
if m = 0 then
ta = 4
else
ta = m
end if
end function
'------------------------------------------------

Cordialement,
--
AP

"apt" a écrit dans le message de
news:


Bonjour,

j'ai les données suivantes :

si x = 1, 5, 9, 13, ..., 49 => alors ta(x) = 1
si x = 2, 6, 10, 14, .., 50 => alors ta(x) = 2
si x = 3, 7, 11, 15, .., 51 => alors ta(x) = 3
si x = 4, 8, 12, 16, .., 52 => alors ta(x) = 4

j'espere avoir le code qui englobe tout ça d'une façon générale.

Merci.
Avatar
AV
Une...

Dans une feuille de calcul :
=EQUIV(MOD(A1;4);{1;2;3;0};)


En vba une autre :
z = ((x Mod 4) = 0) * -4 + x Mod 4

AV
Avatar
Rai

Bonjour,

j'ai les données suivantes :

si x = 1, 5, 9, 13, ..., 49 => alors ta(x) = 1
si x = 2, 6, 10, 14, .., 50 => alors ta(x) = 2
si x = 3, 7, 11, 15, .., 51 => alors ta(x) = 3
si x = 4, 8, 12, 16, .., 52 => alors ta(x) = 4

j'espere avoir le code qui englobe tout ça d'une façon générale.

Merci.

Bonour,


A la va-vite, avant de boire mon 1er café du dimanche ;o))

Je propose :
For i = 1 To 4
If (x - i) / 4 = Int((x - i) / 4) Then Exit For
Next
ta(x) = i

Après mon café, je tenterai peut-être un ch'ti coup de Mod et assimilés

En attendant, cela convient ?

Rai

Avatar
apt
je m'excuse, les données devraient être comme ça :

si x = 1, 5, 9, 13, ...., 49 => alors ta(x) = 0
si x = 2, 6, 10, 14, .., 50 => alors ta(x) = 15
si x = 3, 7, 11, 15, .., 51 => alors ta(x) = 30
si x = 4, 8, 12, 16, .., 52 => alors ta(x) = 45

Voila mon code (dans le module du classeur) :

Public Ta(1 To 52)
Public x, m As Integer

Sub cherche()

' par exemple
x = 6

m = x Mod 4
Select Case m
Case Is = 1
Ta(x) = 0
Case Is = 2
Ta(x) = 15
Case Is = 3
Ta(x) = 30
Case Is = 0
Ta(x) = 45
End Select

...
End Sub
Avatar
Jacky
Bonjour,

Sur une feuille avec le chiffre en a1
=SI(ET(A1>0;A1<53);SI(MOD(A1;4)=0;45;(MOD(A1;4)-1)*15);"")

En Vba:
'----------
Sub jj()
x = [a1]
If x > 0 And x < 53 Then
m = (x Mod 4 - 1) * 15
If x Mod 4 = 0 Then m = 45
MsgBox m
End If
End Sub
'-------
Salutations
JJ

"apt" a écrit dans le message de news:

je m'excuse, les données devraient être comme ça :

si x = 1, 5, 9, 13, ...., 49 => alors ta(x) = 0
si x = 2, 6, 10, 14, .., 50 => alors ta(x) = 15
si x = 3, 7, 11, 15, .., 51 => alors ta(x) = 30
si x = 4, 8, 12, 16, .., 52 => alors ta(x) = 45

Voila mon code (dans le module du classeur) :

Public Ta(1 To 52)
Public x, m As Integer

Sub cherche()

' par exemple
x = 6

m = x Mod 4
Select Case m
Case Is = 1
Ta(x) = 0
Case Is = 2
Ta(x) = 15
Case Is = 3
Ta(x) = 30
Case Is = 0
Ta(x) = 45
End Select

...
End Sub
Avatar
apt
Merci Jacky.

Je crois que ton code est une autre alternative.

je vais le tester.