Microsoft 365 Plafonner la saisie d'une valeur dans une cellule selon le contenu d'une autre

pat66

XLDnaute Impliqué
Bonsoir le Forum,

Je vous remercie pour vos conseils et votre expertise, j'ai bien essayé d'utiliser la validation des données mais je n'y arrive pas

je souhaite pouvoir plafonner la saisie dans H9 selon que F9 contienne oui ou non
exemple :
SI F9 = oui, montant saisissable maxi dans H9 =100
SI F9 = non, montant saisissable dans H9 = 50
et si on passe de oui à non ou de non à oui dans F9, H9 revient toujours à zéro

un grand merci

bonne soirée
 
Solution
Re,
Guère plus compliqué :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [F9]) Is Nothing Then
        [H9] = 0
    ElseIf Not Intersect(Target, [H9]) Is Nothing Then
        If [F9] = "OUI" And [H9] > 100 Then
            MsgBox "La valeur max est de 100" & Chr(10) & "La valeur sera donc rectifiée à son maximum"
            [H9] = 100
        ElseIf [F9] = "NON" And [H9] > 50 Then
            MsgBox "La valeur max est de 50" & Chr(10) & "La valeur sera donc rectifiée à son maximum"
            [H9] = 50
        End If
    End If
End Sub

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Pat,
Un essai en PJ avec :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [F9]) Is Nothing Then
        [H9] = 0
    ElseIf Not Intersect(Target, [H9]) Is Nothing Then
        If [F9] = "OUI" And [H9] > 100 Then Application.Undo
        If [F9] = "NON" And [H9] > 50 Then Application.Undo
    End If
End Sub
 

Pièces jointes

  • Pat66.xlsm
    13.3 KB · Affichages: 3

pat66

XLDnaute Impliqué
re,
exact et pour cela j'ai ajouté dans la feuille

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Range("F9").Value = "oui" Then
 Range("H9").Value = 0
Else
 Range("H9").Value = 0
 End If
'End Sub

Je viens de tester votre essai et je le préfère, merci beaucoup, mais puisque on utilise Application.Undo qui saisit le montant maxi selon que F9 = oui ou non

pourrait on ajouter un msgbox qui précise que la valeur saisie sera rectifié avec le montant maxi correspondant selon que F9 = oui ou non

merci
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Guère plus compliqué :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [F9]) Is Nothing Then
        [H9] = 0
    ElseIf Not Intersect(Target, [H9]) Is Nothing Then
        If [F9] = "OUI" And [H9] > 100 Then
            MsgBox "La valeur max est de 100" & Chr(10) & "La valeur sera donc rectifiée à son maximum"
            [H9] = 100
        ElseIf [F9] = "NON" And [H9] > 50 Then
            MsgBox "La valeur max est de 50" & Chr(10) & "La valeur sera donc rectifiée à son maximum"
            [H9] = 50
        End If
    End If
End Sub
 

Pièces jointes

  • Pat66 V2.xlsm
    13.8 KB · Affichages: 2

Discussions similaires

Statistiques des forums

Discussions
315 093
Messages
2 116 138
Membres
112 669
dernier inscrit
Guigui2502