Bonjour,
rocket4 a écrit :
j'ai lu ton code et je ne saisi pas la notion de "flag" à la ligne 3
C'est parce que "
flag" est le
nom que j'ai donné à la cellule
J11. Si en
J11 tu saisis "velo" par exemple, la ligne contenant "velo" sera
supprimée. Ce qui changera ta cellule
J11 en J10. Si tu supprimes encore des lignes,
J10 se transformera en J9 et ainsi de suite...
C'est pourquoi j'ai besoin d'un repère en nommant la cellule.
rocket4 a écrit :
conservant un tableau situé dans la plage G5:H19 ? et que l'effacement ne puisse avoir lieu que dans la plage G5:H19
ca donnerai :
Code: Tout sélectionner
Private Sub Worksheet_Change(ByVal Target As Range)
Dim t As Range
If Not Application.Intersect(Target, Range("C19")) Is Nothing And Target.Count = 1 Then
Set t = ActiveSheet.Range("G5").CurrentRegion.Select.Find(Target, lookat:=xlWhole, LookIn:=xlValues)
If Not t Is Nothing Then t.EntireRow.Delete
End If
End Sub
Presque. Ça donnerait ça :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim t As Range
If Not Application.Intersect(Target, Range("C19")) Is Nothing And Target.Count = 1 Then
Set t = ActiveSheet.Range("G5").CurrentRegion.Find(Target, lookat:=xlWhole, LookIn:=xlValues)
If Not t Is Nothing Then t.EntireRow.Delete
End If
End Sub
Le problème, comme je l'ai dit plus haut, est que l'instruction If Not t Is Nothing Then t.EntireRow.Delete supprimerait la ligne correspondante. Donc ta cellule C19 dans laquelle tu entres l'information deviendrait C18 et donc la ligne
If Not Application.Intersect(Target, [barrer]Range("C19")[/barrer]) Is Nothing And Target.Count = 1 Then
ne marcherait plus.
Si ce n'est pas assez clair, fais signe.