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 SubIl 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 SubA+