Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As Range, c As Range
Set s = [H328]: Set c = [C330] 'à adapter
If Not Intersect(Target, s) Is Nothing Then
For Each c In Range(c, Cells(c.Row, Columns.Count))
If IsEmpty(c) Then c = s: Exit Sub
Next
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As Range, c As Range
Set s = [H328]: Set c = [C330] 'à adapter
If Not Intersect(Target, s) Is Nothing Then
For Each c In Range(c, Cells(c.Row, Columns.Count))
If CStr(c) = CStr(s) Then Exit Sub
If IsEmpty(c) Then c = s: Exit Sub
Next
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As Range, c As Range
Set s = [H328]: Set c = [C330] 'à adapter
If Not Intersect(Target, s) Is Nothing Then
If Application.CountIf(Range(c, Cells(c.Row, Columns.Count)), s) Then Exit Sub
If IsEmpty(c) Then c = s: Exit Sub
If IsEmpty(c(1, 2)) Then c(1, 2) = s: Exit Sub
c.End(xlToRight)(1, 2) = s
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As Range, c As Range
Set s = [H328]: Set c = [C330] 'à adapter
If Not Intersect(Target, s) Is Nothing Then
With Range(c, Cells(c.Row, Columns.Count))
If .Find(s, , xlValues, xlWhole) Is Nothing Then .Find("", .Cells(.Columns.Count)) = s
End With
End If
End Sub
Re,
Allez pour faire bon poids une solution avec la méthode Find :
A+Code:Private Sub Worksheet_Change(ByVal Target As Range) Dim s As Range, c As Range Set s = [H328]: Set c = [C330] 'à adapter If Not Intersect(Target, s) Is Nothing Then With Range(c, Cells(c.Row, Columns.Count)) If .Find(s, , xlValues, xlWhole) Is Nothing Then .Find("", .Cells(.Columns.Count)) = s End With End If End Sub