1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| Private Sub Worksheet_Change(ByVal Target As Range)
Dim Tabl() As String, Ctr As Integer, C As Range
If Target.Address = "$A$1" Then
Ctr = -1
ReDim Tabl(Application.CountA([B:B]))
For Each C In Range("B2", Cells(Rows.Count, 2).End(xlUp))
If C.Offset(, -1) = [A1] Then
If Not IsNumeric(Application.Match(C.Value, Tabl, 0)) Then
Ctr = Ctr + 1
Tabl(Ctr) = C.Value
Txt = Txt & "," & C.Value
End If
End If
Next C
Txt = Right(Txt, Len(Txt) - 1)
With [B1].Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Txt
End With
ElseIf Target.Address = "$B$1" Then
Ctr = -1
Txt = ""
ReDim Tabl(Application.CountA([B:B]))
For Each C In Range("C2", Cells(Rows.Count, 3).End(xlUp))
If C.Offset(, -1) = [B1] Then
If Not IsNumeric(Application.Match(C.Value, Tabl, 0)) Then
Ctr = Ctr + 1
Tabl(Ctr) = C.Value
Txt = Txt & "," & C.Value
End If
End If
Next C
Txt = Right(Txt, Len(Txt) - 1)
With [C1].Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Txt
End With
End If
End Sub |
Partager