Mais Coudonc
XLDnaute Nouveau
Bonjour aux lecteurs et collaborateurs d'ExcelDownloads.
J'ai une interrogation relative à un événement Worksheet_Change où je fais intervenir une condition Intersect.
Avant d'afficher le bout de code, voici la mise en situation.
J'ai une case à cocher (de la boite à outil Formulaire) en A1.
J'ai une cellule liée à cette case à cocher en B1 (TRUE ou FALSE).
Et ainsi de suite pour les dix premières lignes.
Ma macro, sur événement Worksheet_Change porte la condition Intersect avec Target & Range("B1:B10").
Or, comme c'est le résultat de la case à cocher qui fait varier la valeur dans B1, il ne semble pas que l'événement soit détecté (comme si la valeur avait été modifiée manuellement par un utilisateur).
Quelqu'un pourrait m'éclairer sur une façon de détecter un changement de valeur dans la colonne B, par action de la case à cocher, pour enclencher la macro ?
J'aimerais en fait que la case à cocher amène l'inscription de la valeur "0" dans la colonne C (sur une condition), pour chaque ligne modifiée, corrrespondante de la plage B1 à B10.
Merci de votre aide !
Private Sub Worksheet_Change(ByVal Target As Range)
Set Plage = .Range("B1:B10")
If Not Intersect(Target, Range("B1:B10")) Is Nothing Then
For Each cell In Plage
If cell.Value = True Then
Range.ActiveCell.Offset(0, 1).Select
ActiveCell.Value = "0"
End If
Next
End If
End Sub
J'ai une interrogation relative à un événement Worksheet_Change où je fais intervenir une condition Intersect.
Avant d'afficher le bout de code, voici la mise en situation.
J'ai une case à cocher (de la boite à outil Formulaire) en A1.
J'ai une cellule liée à cette case à cocher en B1 (TRUE ou FALSE).
Et ainsi de suite pour les dix premières lignes.
Ma macro, sur événement Worksheet_Change porte la condition Intersect avec Target & Range("B1:B10").
Or, comme c'est le résultat de la case à cocher qui fait varier la valeur dans B1, il ne semble pas que l'événement soit détecté (comme si la valeur avait été modifiée manuellement par un utilisateur).
Quelqu'un pourrait m'éclairer sur une façon de détecter un changement de valeur dans la colonne B, par action de la case à cocher, pour enclencher la macro ?
J'aimerais en fait que la case à cocher amène l'inscription de la valeur "0" dans la colonne C (sur une condition), pour chaque ligne modifiée, corrrespondante de la plage B1 à B10.
Merci de votre aide !
Private Sub Worksheet_Change(ByVal Target As Range)
Set Plage = .Range("B1:B10")
If Not Intersect(Target, Range("B1:B10")) Is Nothing Then
For Each cell In Plage
If cell.Value = True Then
Range.ActiveCell.Offset(0, 1).Select
ActiveCell.Value = "0"
End If
Next
End If
End Sub
Dernière édition: