Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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:
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…