Affichage de données conditionnelles dans cellule excel

Résolu
matt0592 Messages postés 69 Date d'inscription   Statut Membre Dernière intervention   -  
skk201 Messages postés 942 Date d'inscription   Statut Membre Dernière intervention   -
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour
le nombre en B2

=B2/(10^(ENT(LOG(B2))))
1
skk201 Messages postés 942 Date d'inscription   Statut Membre Dernière intervention   54
 
Super j'y aurais jamais pensé :)
0
skk201 Messages postés 942 Date d'inscription   Statut Membre Dernière intervention   54
 
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 942 Date d'inscription   Statut Membre Dernière intervention   54
 
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   Statut Membre Dernière intervention  
 
Merci beaucoup à tous les deux, cela fonctionne!

cdlmt
0