Bonjour,
Je suis devant un petit problème.
Je cherche à placer dans une celulle soit une valeur soit une liste avec le premier élément de la liste "actif".
J'ai un test sur Sheet1.A20 qui renvoie TRUE ou FALSE. La formule regarde si la celulle Sheet1.A1 est vide ou non.
2 cas:
Si TRUE alors une la valeur en Sheet1.A1 est copiée en A21 est "envoyée" dans Sheet2.B1
Si FALSE alors une liste située en Sheet3.A1:A10 est "placée" dans Sheet2.B1
Des calculs sont faits en fonction de la valeur de la celulle en Sheet2.B1, il est important que la celulle ne soit pas vide.
J'ai essayé de faire cela avec un Sub Worsheet_Change mais j'ai lamentablement échoué. Rien ne se pass lorsque je change la valeur en Sheet1.A1.
Voici un extrait du code.
Je suis aussi preneur d'une solution sans VBA.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1")) Is Nothing Then Application.EnableEvents = False With ThisWorkbook.Worksheets(Sheet2).Range("B1") If ThisWorkbook.Worksheets(Sheet1).Range("A20").Value Then .Clear .Value = ThisWorkbook.Worksheets(Sheet1).Range("A21").Value Else .Validation.Delete .Validation.Add Type:=xlValidateList, Formula1:="=Data_trajets_noms" 'If you don't want the first list value of Data_trajets_noms put into B8 then remove the next line of code .InCellDropdown = True .Value = ThisWorkbook.Worksheets(Sheet3).Range("A1:A10").Cells(1).Value End If End With Application.EnableEvents = True End If End Sub




Répondre avec citation


Partager