Contraindre valeur d'une cellule - Excel

Bonjour,

J'ai trouvé un moyen via Excel en utilisant les procédures événementielles (que je ne maitrise pas encore bien) pour parvenir à mon but,

Dans l'idée ce serait que pour une cellule donnée, ce qu'entre l'utilisateur soit variable,

Par exemple qu'une valeur DOIVE être entre 0 et 10.

Donc si l'utilisateur y entre -1, la valeur sera automatiquement 0, si la valeur entrée est plus que 10, alors elle serait réduite automatiquement à 10, et si entre, rien ne serait changé.

Avec une formules du style =SI(condition; val vrai; SI(condition; val vrai; ;val faux)) imbriquée comme je le pensais ça ne va pas, car la référence est circulaire (la formule fait référence à elle-même).

En codant ceci, dans la feuille, j'arrive à mon résultat, mais un peu compliqué je trouve (R4 étant la cellule que j'ai choisie pour mes tests évidemment).

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target = Range("R4") Then    'on a bien cliqué sur la cellule qui nous intéresse

        If Range("R4").Value < 0 Then
            Range("R4").Value = 0
        ElseIf Range("R4").Value > 10 Then
            Range("R4").Value = 10
        ElseIf IsNumeric(Range("R4").Value) = False Then
            Range("R4").Value = 5
        End If

    End If
End Sub

Il y a plus simple ?

Merci les amis,

Bon w.e & bonne année


D'ailleurs j'ai un soucis, je voulais mettre en condition "si la valeur n'est pas numérique, tu me mets 5 par défaut", mais IsNumeric(range("R4").value) renvoie TRUE si la valeur de la cellule est CONVERTIBLE en nombre donc une string ça passe aussi...

Et IsNumber, mon mac ne comprend pas comme fonction -_-

Je laisse tomber, trop tard, j'ai plus d'idée et je n'en peux plus !

Si vous avez des réponses, sinon je reprends demain

Bonne soirée & encore bon w.e !

Bonjour,

Une proposition

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Address = "$R$4" Then
        Application.EnableEvents = False
        If IsNumeric(Target) Then
            Select Case Target.Value
                Case Is < 0: Target = 0
                Case Is > 10: Target = 10
            End Select
        Else
            Target = 5
        End If
        Application.EnableEvents = True
    End If
End Sub

A+

Rechercher des sujets similaires à "contraindre valeur"