XL 2010 Afficher une MsgBox lorsque l'on sélectionne une plage de cellule

thunder23

XLDnaute Occasionnel
Bonsoir à tous,

Je souhaite que quand plusieurs plage de cellule sont modifiées ça affiche une MsgBox. J'ai ce code mais ne fonctionne plus et je ne vois pas pourquoi?

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, 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
       
End Sub

Merci d'avance pour votre aide :)
 

job75

XLDnaute Barbatruc
Bonsoir thunder23,

Vous n'avez pas bien compris le fonctionnement de la fonction Intersect, le test If ne peut que renvoyer False, il faut bien sûr écrire :
VB:
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
A+
 
Dernière édition:

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin