Private Sub Worksheet_Activate()
'programme la liste de choix en fonction des donnée renseignées dans la colonne C de la feuil3
Dim LigneFin As Long
'Calcul derniere ligne
LigneFin = Sheets("Feuil3").Range("C" & Rows.Count).End(xlUp).Row
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Feuil3!$C$2:$C$" & LigneFin
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Trouve As Range
Dim LigneFin As Long, Tourne As Long, Position As Long
'Interdit les procédure événementiels pendant l'éxécution de celle ci
Application.EnableEvents = False
'Si uniquement une cellule de sélectionnée
If Target.Count = 1 Then
'Si l'adresse de la cellule modifiée est D16
If Target.Address = "$D$16" And Target <> "" Then
'Efface l'ancien texte
Range("c18:G33") = ""
'Recherche de la valeur de la cellule modifiée dans la colonne A de la feuil3
Set Trouve = Sheets("Feuil3").Range("A:A").Find(Target, lookat:=xlWhole)
'Si trouvé
If Not Trouve Is Nothing Then
'Recherche fin de texte associé à ce modéle
LigneFin = Sheets("Feuil3").Cells(Trouve.Row, Trouve.Column).End(xlDown).Row
'Ligne de départ
Position = 18
'Boucle de scrutation des lignes du modéle
For Tourne = Trouve.Row + 1 To LigneFin
Range("c" & Position) = Sheets("Feuil3").Range("A" & Tourne).Value
Range("G" & Position) = Sheets("Feuil3").Range("B" & Tourne).Value
Position = Position + 1
Next
End If
End If
End If
Application.EnableEvents = True
End Sub