XL 2010 Combiner deux codes dans Worksheet_Change

thunder23

XLDnaute Occasionnel
Bonsoir le forum,

Je souhaiterais savoir comment je peux combiner deux codes différent dans Worksheet_Change. Dans le code à l'origine j'ai fais un affichage d'un MsgBox si plusieurs conditions dans une plage de cellule et je voudrais y apporter que si je modifie une cellule (ex:A4) cela m'active une macro.
Voici le code que je souhaite modifier:

VB:
Private Sub Worksheet_Change(ByVal Target As Range) 'Affiche d'un message si nombre de poste inférieur ou supérieur

    If Intersect(Target, Union(Range("B10:B40"), Range("G10:G38"), Range("L10:L40"), Range("Q10:Q39"), Range("V10:V40"), Range("AA10:AA39"), Range("AF10:AF40"), Range("AK10:AK40"), Range("AP10:AP39"), Range("AU10:AU40"), Range("AZ10:AZ39"), Range("BE10:BE40"))) Is Nothing Then Exit Sub


    Select Case [Récapitulatif!L3]
    
        Case Is < 0
            
            MsgBox "Vous n'avez pas cumulé assez de poste cette année !" & Chr(10) & "Votre déficitaire est de " & Sheets("Récapitulatif").Range("L3") & " " & "poste(s)!", 0 + 16, "ATTENTION"
    
        Case Is > 0
            
            MsgBox "Vous avez cumulé trop de poste cette année !" & Chr(10) & "Votre excédent est de " & Sheets("Récapitulatif").Range("L3") & " " & "poste(s)!" & Chr(10) & "Vous devrez poser des RECUP.", 0 + 48, "AVERTISSEMENT"
    
        Case Else
    '
    End Select
    
Exit Sub

Dim Rng As Range
 

Set Rng = Range("D4")
 
If Not Application.Intersect(Rng, Range(Target.Address)) Is Nothing Then
 
'la ligne suivante exécute la macro
Call generer_calendrier

End If

    
End Sub

Merci d'avance ;)
 

eriiic

XLDnaute Barbatruc
Bonjour,

évite de sauter systématiquement 2-3 lignes pour rien, on a beaucoup moins d'infos sous les yeux.
VB:
Private Sub Worksheet_Change(ByVal Target As Range) 'Affiche d'un message si nombre de poste inférieur ou supérieur
    If Not Intersect(Target, Union(Range("B10:B40"), Range("G10:G38"), Range("L10:L40"), Range("Q10:Q39"), Range("V10:V40"), Range("AA10:AA39"), Range("AF10:AF40"), Range("AK10:AK40"), Range("AP10:AP39"), Range("AU10:AU40"), Range("AZ10:AZ39"), Range("BE10:BE40"))) Is Nothing Then
        Select Case [Récapitulatif!L3]
            Case Is < 0
                MsgBox "Vous n'avez pas cumulé assez de poste cette année !" & Chr(10) & "Votre déficitaire est de " & Sheets("Récapitulatif").Range("L3") & " " & "poste(s)!", 0 + 16, "ATTENTION"
            Case Is > 0
                MsgBox "Vous avez cumulé trop de poste cette année !" & Chr(10) & "Votre excédent est de " & Sheets("Récapitulatif").Range("L3") & " " & "poste(s)!" & Chr(10) & "Vous devrez poser des RECUP.", 0 + 48, "AVERTISSEMENT"
        End Select
    ElseIf Target.Address = "$D$4" Then
        'la ligne suivante exécute la macro
        Call generer_calendrier
    End If
End Sub

Remarque : Range(Target.Address) c'est Target tout simplement
eric
 

Discussions similaires

Réponses
1
Affichages
733

Statistiques des forums

Discussions
312 203
Messages
2 086 193
Membres
103 153
dernier inscrit
SamirN