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

XL 2019 Cocher une case en décoche une autre et inversement

Dravol

XLDnaute Junior
Bonjour à tous,

Dans la macro ci-dessous lorsque je coche H18 je voudrais que J18 soit décoché (et inversement)

D'ailleurs j'aimerais apporter les mêmes fonctionnalités pour Q,R,S

Avez-vous la soluce ?^^

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim isect, Z$, plage
If Target.Count = 1 Then
Z = Target.Value
plage = "h18"
Set isect = Application.Intersect(Target, Range(plage))
If Not isect Is Nothing Then
Target.Value = IIf(Z = "", "ü", "")
[j18] = IIf(Z = "", "ü", "")
End If
plage = "j18"
Set isect = Application.Intersect(Target, Range(plage))
If Not isect Is Nothing Then
Target.Value = IIf(Z = "", "ü", "")
End If
plage = "Q24:Q43"
Set isect = Application.Intersect(Target, Range(plage))
If Not isect Is Nothing Then
Target.Value = IIf(Z = "", "ü", "")
End If
plage = "R24:R43"
Set isect = Application.Intersect(Target, Range(plage))
If Not isect Is Nothing Then
Target.Value = IIf(Z = "", "ü", "")
End If
plage = "S24:S43"
Set isect = Application.Intersect(Target, Range(plage))
If Not isect Is Nothing Then
Target.Value = IIf(Z = "", "ü", "")
End If
plage = "Q45:Q48"
Set isect = Application.Intersect(Target, Range(plage))
If Not isect Is Nothing Then
Target.Value = IIf(Z = "", "ü", "")
End If
plage = "R45:R48"
Set isect = Application.Intersect(Target, Range(plage))
If Not isect Is Nothing Then
Target.Value = IIf(Z = "", "ü", "")
End If
plage = "S45:S48"
Set isect = Application.Intersect(Target, Range(plage))
If Not isect Is Nothing Then
Target.Value = IIf(Z = "", "ü", "")
End If
End If

'If Target.Address = Range("d19").Address And Range("d19").Value > 10 Then
If Target.Address = Range("d19").MergeArea.Address And Range("d19").Value > 10 Then
Dim I
For I = 1 To 3 ' Loop 3 times.
Beep
'PlaySound ThisWorkbook.Path & "\0257", 0, 1
MsgBox "Attention valeur hors tolérance"
Next
End If

End Sub
 
Solution
Bonjour Dravol,
VB:
   plage = "h18"
   Set isect = Application.Intersect(Target, Range(plage))
   If Not isect Is Nothing Then
      Target = IIf(Z = "", "ü", "")
      Range("j18") = IIf(Target = "", "ü", "")
   End If
   plage = "j18"
   Set isect = Application.Intersect(Target, Range(plage))
   If Not isect Is Nothing Then
      Target = IIf(Z = "", "ü", "")
      Range("h18") = IIf(Target = "", "ü", "")
   End If
A+

job75

XLDnaute Barbatruc
Bonjour Dravol,
VB:
   plage = "h18"
   Set isect = Application.Intersect(Target, Range(plage))
   If Not isect Is Nothing Then
      Target = IIf(Z = "", "ü", "")
      Range("j18") = IIf(Target = "", "ü", "")
   End If
   plage = "j18"
   Set isect = Application.Intersect(Target, Range(plage))
   If Not isect Is Nothing Then
      Target = IIf(Z = "", "ü", "")
      Range("h18") = IIf(Target = "", "ü", "")
   End If
A+
 

Discussions similaires

Réponses
1
Affichages
246
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…