Microsoft 365 Annulation target

FCMLE44

XLDnaute Impliqué
Supporter XLD
Bonjour

J'aimerais utiliser ce code
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Address = "$D$21" Then
      If Target = "" Then Exit Sub
            Sheets("Indemnités").Select
    End If
    '****************************************** Masquer/afficher************************
   If Target.Address = "$D$18" Then
        Application.ScreenUpdating = False
        Sheets("Salariés").Range("28:28,232:289").EntireRow.Hidden = False
        Range("20:69").EntireRow.Hidden = False
        Select Case Target.Value
        Case "Démission"
            [20:23,41:69].EntireRow.Hidden = True
            Sheets("Salariés").Range("232:289").EntireRow.Hidden = True
        Case "Fin de contrat Apprentissage", "Fin de contrat Professionnalisation", "Licenciement Faute Grave"
            [20:28,41:69].EntireRow.Hidden = True
            Sheets("Salariés").Range("232:289").EntireRow.Hidden = True
        Case "Décès"
            [20:28,41:69].EntireRow.Hidden = True
            Sheets("Salariés").Range("232:289,28:28").EntireRow.Hidden = True
        Case "Fin de Contrat à Durée Déterminée"
            [20:28,46:69].EntireRow.Hidden = True
            Sheets("Salariés").Range("232:289").EntireRow.Hidden = True
        Case "Licenciement Autres"
            [41:46].EntireRow.Hidden = True
            Sheets("Salariés").Range("232:289").EntireRow.Hidden = True
        Case "Retraite"
            [20:24,41:46].EntireRow.Hidden = True
        Sheets("Salariés").Range("28:28").EntireRow.Hidden = True
        Case "Rupture Conventionnelle"
            [25:28,41:46].EntireRow.Hidden = True
            Sheets("Salariés").Range("232:289").EntireRow.Hidden = True
        End Select
    End If
    '****************************************** Alerte Retraite************************
    If Target.Address(0, 0) = "D18" And UCase(Range("D18")) = "RETRAITE" Then
        mois = Month(Range("B17")) + 1
        If mois = 13 Then
         mois = 1
        an = Year(Range("B17")) + 1
    Else
        an = Year(Range("B17"))
    End If
        findemois = CDate("01/" & mois & "/" & an) - 1
    If Range("B17") <> findemois Then
    MsgBox ("Attention, un départ en retraite ne doit jamais avoir lieu au début ni même en cours de mois. Uniquement le dernier jour du mois. Merci, par conséquent de modifier la date de sortie en cellule B17. EN CAS D'INFORMATION CONTRAIRE, MERCI DE PRENDRE CONTACT AVEC VOTRE RESPONSABLE DE GROUPE")
      Range("B17") = ""
   End If
End If
End Sub

qui m'avait été fait gentiment par une personne

Je souhaiterais enlerver cette partie
Code:
If Target.Address = "$D$21" Then
      If Target = "" Then Exit Sub
            Sheets("Indemnités").Select
    End If

afin que lorsque que je sélectionne D21, la feuille indemnités ne s'ouvre pas

J'ai essayé de mettre cette partie en off mais cela ne fonctionne pas

Auriez vous une idée ?

Merci
 
Solution
Dans ce cas supprimez la partie concernant D21.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    '****************************************** Masquer/afficher************************
    If Target.Address = "$D$18" Then
        ' Faire action quand D18 est selectionné
    End If
    '****************************************** Alerte Retraite************************
    If Target.Address(0, 0) = "D18" And UCase(Range("D18")) = "RETRAITE" Then
       ' Faire action si condition ok
    Else
         ' Faire action si condition Not ok
    End If
    If Range("B17") <> findemois Then
        MsgBox
    End If
End If
End Sub
Cependant
lorsque que je sélectionne D21
ne veut rien dire, il n'y aura plus aucune action si clic...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour FCMLE,
Que voulez vous faire quand D21 est sélectionné ? telle est la question.
La structure de votre macro est :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$D$21" Then
        If Target = "" Then Exit Sub
         ' Faire action quand D21 est selectionné
    End If
    '****************************************** Masquer/afficher************************
    If Target.Address = "$D$18" Then
        ' Faire action quand D18 est selectionné
    End If
    '****************************************** Alerte Retraite************************
    If Target.Address(0, 0) = "D18" And UCase(Range("D18")) = "RETRAITE" Then
       ' Faire action si condition ok
    Else
         ' Faire action si condition Not ok
    End If
    If Range("B17") <> findemois Then
        MsgBox
    End If
End If
End Sub
Il vous faut mettre l'action désirée à la place de " Faire action quand D21 est selectionné"
Si vous supprimer les 3 lignes liées à D21, alors il n'y a plus d'action sur clic D21.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Dans ce cas supprimez la partie concernant D21.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    '****************************************** Masquer/afficher************************
    If Target.Address = "$D$18" Then
        ' Faire action quand D18 est selectionné
    End If
    '****************************************** Alerte Retraite************************
    If Target.Address(0, 0) = "D18" And UCase(Range("D18")) = "RETRAITE" Then
       ' Faire action si condition ok
    Else
         ' Faire action si condition Not ok
    End If
    If Range("B17") <> findemois Then
        MsgBox
    End If
End If
End Sub
Cependant
lorsque que je sélectionne D21
ne veut rien dire, il n'y aura plus aucune action si clic en D21. Seule D18 aura une action.
 

Discussions similaires

Statistiques des forums

Discussions
312 165
Messages
2 085 881
Membres
103 009
dernier inscrit
dede972