Affichage de données conditionnelles dans cellule excel

Résolu/Fermé
matt0592 Messages postés 69 Date d'inscription mardi 22 juillet 2014 Statut Membre Dernière intervention 15 septembre 2014 - 25 juil. 2014 à 16:47
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 - 28 juil. 2014 à 11:37
Bonjour à tous,

Je me trouve en face du problème suivant : je souhaiterais qu'une cellule de mon tableau Excel affiche toujours une valeur comprise entre 0 et 10, quelle que soit la valeur rentrée par l'opérateur. Je m'explique :

- si l'opérateur entre une valeur comprise entre 0 et 10, on ne change rien.
- si l'opérateur entre une valeur comprise entre 10 et 100, on la divise par 10 (comme ça la valeur affichée sera bien entre 0 et 10)
- si l'opérateur entre une valeur comprise entre 100 et 1000, on la divise par 100

Voilà, à priori, l'opérateur ne rentrera jamais de valeur supérieure à 1000.

Quelqu'un saurait-il écrire ce programme ?

Merci d'avance pour votre aide
A voir également:

3 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
25 juil. 2014 à 18:34
Bonjour
le nombre en B2

=B2/(10^(ENT(LOG(B2))))
1
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
28 juil. 2014 à 08:13
Super j'y aurais jamais pensé :)
0
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
25 juil. 2014 à 17:26
Bonjour

Votre code va utiliser du VBA (Macro). Est-ce que vous saurez ou le placer ?

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then
If IsNumeric(Target.Value) = False Then 
Msgbox "Ce 
Dim NB as int
NB = Cint(Target.value)
Do
If NB <11 AND NB <0 Then Exit Sub
NB = NB / 10
Loop

End If
End Sub

0
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
Modifié par skk201 le 28/07/2014 à 11:38
Je vien de voir une grosse bourde :D

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then
If IsNumeric(Target.Value) = False Then 
Msgbox ("Ce n'est pas un chiffre")
Exit sub
End if
Dim NB as int
NB = Cint(Target.value)
Do
If NB <11 AND NB <0 Then Exit Sub
NB = NB / 10
Loop
Target = NB
End If
End Sub
0
matt0592 Messages postés 69 Date d'inscription mardi 22 juillet 2014 Statut Membre Dernière intervention 15 septembre 2014
28 juil. 2014 à 09:51
Merci beaucoup à tous les deux, cela fonctionne!

cdlmt
0