Affichage de données conditionnelles dans cellule excel

Résolu
matt0592 Messages postés 69 Statut Membre -  
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

3 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour
    le nombre en B2

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

    cdlmt
    0