Interdire de cocher une cellule si une autre est cochée
Résolu
logas
-
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Interdire de cocher une cellule si une autre est cochée
- Excel cellule couleur si condition texte - Guide
- Aller à la ligne dans une cellule excel - Guide
- Bloquer une cellule excel - Guide
- Diviser une cellule excel en deux horizontalement ✓ - Forum Excel
- Comment colorer une cellule excel en fonction du contenu d'une autre cellule - Forum Bureautique
7 réponses
Bonjour
Un exemple (les constantes sont à adapter)
Cdlmnt
Un exemple (les constantes sont à adapter)
Const codeb = 4
Const cofin = 7
Const plage = "D4:G10"
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim ligne As Range, li As Long, co As Long
If Not Intersect(Target, Range(plage)) Is Nothing Then
li = Target.Row
co = Target.Column
Set ligne = ActiveSheet.Range(Cells(li, codeb + 2), Cells(li, cofin))
If co = codeb Or co = codeb + 1 Then
Target.Value = "X"
Else
If Application.WorksheetFunction.CountIf(ligne, "X") = 0 Then
Target.Value = "X"
End If
End If
Target.Offset(1, 0).Select
End If
End Sub
Cdlmnt
RE,
Merci pour la rapidité, cependant à quoi correspondent :
Const codeb = 4
et
Const cofin = 7
sachant que je veux l'interdiction de cocher D4 si E4 est coché et inversement sur toute la colonne ( de D4 à D1048576 et de E4 à E1048576) , et l'interdiction de cocher F4 si G4 est coché et inversement sur toute la colonne ( de F4 à F1048576 et de G4 à G1048576).
Pour Const plage j'ai renseigné ceci afin d'encadrer toute les plages:
Const plage = "D4:G1048576"
Egalement lorsque la case est coché lorsque l'on double clic dessus le "X" ne s'efface plus.
Merci de votre aide.
Merci pour la rapidité, cependant à quoi correspondent :
Const codeb = 4
et
Const cofin = 7
sachant que je veux l'interdiction de cocher D4 si E4 est coché et inversement sur toute la colonne ( de D4 à D1048576 et de E4 à E1048576) , et l'interdiction de cocher F4 si G4 est coché et inversement sur toute la colonne ( de F4 à F1048576 et de G4 à G1048576).
Pour Const plage j'ai renseigné ceci afin d'encadrer toute les plages:
Const plage = "D4:G1048576"
Egalement lorsque la case est coché lorsque l'on double clic dessus le "X" ne s'efface plus.
Merci de votre aide.
1. sachant que je veux l'interdiction de cocher D4 si E4 est coché et inversement sur toute la colonne
tu ne l'avais pas dit!
2. codeb et cofin sont la première et la dernière colonne de la plage
3. Egalement lorsque la case est coché lorsque l'on double clic dessus le "X" ne s'efface plus.
ça n'était pas le cas?
4. Pour Const plage j'ai renseigné ceci afin d'encadrer toute les plages:
Const plage = "D4:G1048576"
c'est ce qu'il fallait faire
5. cofin n'est plus d'actualité dans la version ci-dessous (la variable codeb est toujours la première colonne de la plage)
Cdlmnt
tu ne l'avais pas dit!
2. codeb et cofin sont la première et la dernière colonne de la plage
3. Egalement lorsque la case est coché lorsque l'on double clic dessus le "X" ne s'efface plus.
ça n'était pas le cas?
4. Pour Const plage j'ai renseigné ceci afin d'encadrer toute les plages:
Const plage = "D4:G1048576"
c'est ce qu'il fallait faire
5. cofin n'est plus d'actualité dans la version ci-dessous (la variable codeb est toujours la première colonne de la plage)
Const plage = "D4:G10" Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim ligne As Range, li As Long, co As Long, codeb As Long If Not Intersect(Target, Range(plage)) Is Nothing Then li = Target.Row co = Target.Column codeb = Range(plage).Cells(1, 1).Column If co = codeb Or co = codeb + 1 Then Set ligne = ActiveSheet.Range(Cells(li, codeb), Cells(li, codeb + 1)) If Application.WorksheetFunction.CountIf(ligne, "X") = 0 Then Target.Value = "X" Else Set ligne = ActiveSheet.Range(Cells(li, codeb + 2), Cells(li, codeb + 3)) If Application.WorksheetFunction.CountIf(ligne, "X") = 0 Then Target.Value = "X" End If Target.Offset(1, 0).Select End If End Sub
Cdlmnt
En tapant ton code, cela fonctionne très bien.
Cependant, oui avant lorsqu'on double cliqué sur la cellule, le "X" disparaissait. Est-il possible de le faire fonctionner?
De plus comment faire pour centrer le "X" au milieu de la cellule, lorsque je tape plusieurs fois espace puis "X", la macros ne fonctionne plus...
Merci
Cependant, oui avant lorsqu'on double cliqué sur la cellule, le "X" disparaissait. Est-il possible de le faire fonctionner?
De plus comment faire pour centrer le "X" au milieu de la cellule, lorsque je tape plusieurs fois espace puis "X", la macros ne fonctionne plus...
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question