XL 2019 Conditions avec Sub Worksheet_Change(ByVal Target As Range)

  • Initiateur de la discussion Initiateur de la discussion pat66
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pat66

XLDnaute Impliqué
Bonjour Le forum,

Lors de la saisie dans AE5, je souhaiterai que si AE5 contient 6 ,9,12 = rien ne se passe
mais si AE5 contient un chiffre différent de 6,9,12
MsgBox("Si vous changez la durée d'utilisation, le montant sera réinitialisé ! ", vbYesNo + vbQuestion)
si oui
AS17 = 0
Columns("AT").EntireColumn.Hidden = True
Si non
annule la saisie dans AE5

Un grand merci
bonne après midi

Pat66
 
Dernière édition:
Bonjour Pat,
Un essai en PJ mais la demande n'est pas très claire, j'ai fait au mieux avec :
VB:
Sub Worksheet_Change(ByVal T As Range)
    If T.Count > 1 Then Exit Sub
    If Not Intersect(T, [AE5]) Is Nothing Then
        If T <> 6 And T <> 9 And T <> 12 Then
            If MsgBox("Si vous changez la durée d'utilisation, le montant sera réinitialisé ! ", vbYesNo + vbQuestion) = vbYes Then
                Application.EnableEvents = False
                [AS17] = 0
                Application.EnableEvents = True
                Columns("AT").EntireColumn.Hidden = True
            Else
                Application.EnableEvents = False
                Application.Undo
                Application.EnableEvents = True
                Columns("AT").EntireColumn.Hidden = False
            End If
        End If
    End If
End Sub
Le cas échéant c'est facilement adaptable en fonction de vos besoins.
 

Pièces jointes

Bonjour Sylvanu,
ravi de te lire et merci encore une fois pour ton aide, c'est exactement ce qu'il me fallait !
Pourrais tu m'aider à ajouter les instructions suivantes, si ce n'est pas trop te demander, car lorsque je rajoute ta macro à celles ci, ça beuge sur If Not Intersect(T, [AE5]) Is Nothing Then

If Target.Count > 1 Then Exit Sub
a = Target.Address
If Target.Address = "$AE$5" Then
If Target.Value = "" Then
ActiveSheet.Shapes("Groupe 106").Visible = False
ActiveSheet.Shapes("Rectangle : coins arrondis 1").Visible = False
Rows("51:51").EntireRow.Hidden = True
Else
ActiveSheet.Shapes("Groupe 106").Visible = True
ActiveSheet.Shapes("Rectangle : coins arrondis 1").Visible = True
Rows("51:51").EntireRow.Hidden = False
End If
End If

Set r = [AE5]: Rows("25:50").Hidden = 0: Rows(r.Value + 25 & ":50").Hidden = -1

un grand Merci

Pat
 
Sylvanu,

pourrait on ajouter cette condition AS17 <> 0 , de sorte que le msgbox ne s'affiche que si les 2 conditions sont remplies

If T <> 6 And T <> 9 And T <> 12 and AS17 = 0 Then
If MsgBox("Si vous changez la durée d'utilisation, le montant sera réinitialisé ! ", vbYesNo + vbQuestion) = vbYes Then
Application.EnableEvents = False
[AS17] = 0
Application.EnableEvents = True
Columns("AT").EntireColumn.Hidden = True
si AS17<> ""

merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour