Probleme macro blocage selection ligne

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 !

sirusg60

XLDnaute Nouveau
Re bonjour,

Je voulais modifier ma macro qui rend impossible la sélection d une plage de cellule en fonction de si la date est dépassée :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("a4:y34")) Is Nothing Then
jour = Cells(Target.Row, 2).Value
If Date > jour Then
MsgBox ("Vous ne pouvez pas revenir à une date précedente")
[A1].Select
Exit Sub
End If
End If
End Sub

Mes dates se trouvent de B4 a B34
Je voulais ajouter cette condition pour le mois de février :
B32 est le 29/02 qui s affiche si l année est bissextile.
e32:u32 est une plage de cellule dont je veux qu on ne puisse pas la sélectionner si b32 est vide

J ai donc modifier ma macro en:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("a4:y31")) Is Nothing Then
jour = Cells(Target.Row, 2).Value
If Date > jour Then
MsgBox ("Vous ne pouvez pas revenir à une date précedente")
[A1].Select
Exit Sub
End If
End If
If Not Intersect(Target, Range("e32:u32")) Is Nothing Then
jour = Cells(Target.Row, 2).Value
If b32 = "" Then
MsgBox ("Vous ne pouvez pas revenir à une date précedente")
[A1].Select
Exit Sub
End If
End If
End Sub

Le soucis c est que ca ne marche pas :
Avec if b32="" then ca me bloque la plage de cellule peut importe si b32 est vide ou pas
Ave if b32<>"" then je peut sélectionner la plage de cellule même si b32 est vide.
 
Finalement j ai trouvé tout seul comme un grand 🙂🙂.
Je donne ma soluce pour mon cas des fois que ca puisse aider quelqu un :

Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("a4:y31")) Is Nothing Then
jour = Cells(Target.Row, 2).Value
If Date > jour Then
MsgBox ("Vous ne pouvez pas revenir à une date précedente")
[A1].Select
End If
End If
If Not Intersect(Target, Range("a32:y32")) Is Nothing Then
jour = Cells(Target.Row, 2).Value
If Range("B32") = "" Then
MsgBox ("Vous ne pouvez pas revenir à une date précedente")
[A1].Select
End If
End If
End Sub
 
- 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

Réponses
7
Affichages
267
Réponses
4
Affichages
223
Réponses
2
Affichages
153
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
4
Affichages
177
Réponses
9
Affichages
201
Retour