Aide pour faire un calculateur
Le
Jacques
Salut a toute et tous.
Je ne sais si cela est possible, mais j'aimerais de l'aide pour me faire ce
calculateur, car je ne sais pas comment faire.
Les explications :
Ce que j'aimerais c'est que dés que l'on rentre une valeur dans le textbox,
que cela me mette un gros points noire dans les cases correspondantes (En
dessous des valeurs 1-2-4-8-16-32etc).
Donc si je tape 14, que cela me mette des points suivant le tableau de
l'userform :
Car 14 = 2+4+8 -> il faudrait qu'il soit coché les cases 2-3-4
Si 53 = 1+4+16+32 -> il faudrait qu'il soit coché les cases 1-3-5-6
Il me semble que la valeurs maxi est 1023 (S tout est cochée)
J'espères que mes explications on étée claires et que cela peu se faire.
Le lien de mon tableau :
http://cjoint.com/?lglJwYZdQ0
Merci a vous, Jacques
Je ne sais si cela est possible, mais j'aimerais de l'aide pour me faire ce
calculateur, car je ne sais pas comment faire.
Les explications :
Ce que j'aimerais c'est que dés que l'on rentre une valeur dans le textbox,
que cela me mette un gros points noire dans les cases correspondantes (En
dessous des valeurs 1-2-4-8-16-32etc).
Donc si je tape 14, que cela me mette des points suivant le tableau de
l'userform :
Car 14 = 2+4+8 -> il faudrait qu'il soit coché les cases 2-3-4
Si 53 = 1+4+16+32 -> il faudrait qu'il soit coché les cases 1-3-5-6
Il me semble que la valeurs maxi est 1023 (S tout est cochée)
J'espères que mes explications on étée claires et que cela peu se faire.
Le lien de mon tableau :
http://cjoint.com/?lglJwYZdQ0
Merci a vous, Jacques

Poser une question


cela faisait longtemps
j'ai réordonné les Labels du bas.
http://cjoint.com/?lgrA6sNhfc
@+
lSteph
Private Sub TextBox1_AfterUpdate()
Dim maval As Integer, i As Integer
On Error GoTo SortieErreur
For i = 21 To 30
Me.Controls("Label" & i).Caption = ""
Next
maval = CInt(Val(TextBox1))
MsgBox maval
If maval < 1 Or maval > 1023 Then GoTo SortieErreur
Do While maval <> 0
Select Case maval
Case Is >= 512
Label30.Caption = "o"
maval = maval - 512
Case Is >= 256
Label29.Caption = "o"
maval = maval - 256
Case Is >= 128
Label28.Caption = "o"
maval = maval - 128
Case Is >= 64
Label27.Caption = "o"
maval = maval - 64
Case Is >= 32
Label26.Caption = "o"
maval = maval - 32
Case Is >= 16
Label25.Caption = "o"
maval = maval - 16
Case Is >= 8
Label24.Caption = "o"
maval = maval - 8
Case Is >= 4
Label23.Caption = "o"
maval = maval - 4
Case Is >= 2
Label22.Caption = "o"
maval = maval - 2
Case Is >= 1
Label21.Caption = "o"
maval = maval - 1
End Select
Loop
Exit Sub
SortieErreur:
TextBox1 = ""
MsgBox "entrée invalide"
End Sub
Juste pour le fun, sans userform, avec des cellules et des formules
En A1, saisir la valeur décimale. Nommer cette cellule "ValeurInitiale"
En A3:J2, copier les valeurs 1, 2, 4, 8, 16, ..., 256
En J4, saisir la formule suivante
=SI(ValeurInitiale>=J3;"X";"")
pour avoir un X si la valeur initiale est plus grande que 512
En A4, saisir la formule suivante
=SI(ValeurInitiale-SOMMEPROD((B4:$J$4="X")*B3:$J$3)>£;"X";"")
On somme les puissances de 2 qui ont un X en dessous d'elles, à partir
de la cellule active jusque la cellule J4
et la recopier en B4:I4
Voir le fichier joint http://cjoint.com/?lgsyKaFYvB
Ok?
--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Jacques" news:
lSteph, oui cela faisait longtemps, mais les spectacles, le boulot, mes
enfants me prennent du temps, et j'ai laissé pas mal d'appli fait sur excel
de coté (Faudra que je m'y remette, car j'en aurais besoin).
Donc vos deux manières de faire fonctionnent a merveillent.
lStep, j'ai un peu modifié (Mais pas grand chose), pour que cela donne le
résultat au fur et a mesure de la saisie.
Par contre un peu truc que je n'arrive pas a enlever, c'est que cela me met
le message d'erreur deux fois.
Une fois pour l'erreur en question et une autre fois pour le fait que le
TextBox est a zéro.
Mais bon, c'est pas bien grave.
Un grand merci a tous les deux, Jacques
tu peux enlever les msgbox si tu veux
et même la routine erreur si elle n'est pas utile.
@+
lSteph
Jacques a émis l'idée suivante :
--
- -
Merci, j'ai réussie a faire ce que je voulais.
J'ai simple remis une condition avant le teste de la valeur avant
If maval < 1 Or maval > 1023 Then GoTo SortieErreur
Comme ceci.
If TextBox1 = "" Then Exit Sub
Je ne sais pas si s'était la meilleur solution,mais cela fonctionne.
Merci a vous deux, Jacques