Liste déroulante avec Si

Bonjour à tous,

J'ai un petit soucis de liste déroulante ... J'ai essayé avec l'enregistreur de macro mais le bougre n'enregistre pas lorsque l'on choisit un élément d'une liste déroulante donc je suis perdu

Cela dit c'est peut-être possible sans VBA ... Ca serait même mieux

Le problème est simple : Conditionné le choix d'une liste déroulante au résultat d'une autre cellule ( cellule qui n'est pas une liste déroulante parce que ça je sais faire ( liste en cascade avec indirect () )

CI joint un fichier minimaliste pour visualiser la question

Merci d'avance

Bonsoir,

Une proposition avec VBA

A+

Salut Frangy

C'est exactement ça ! Merci pour le coup de pouce c'est sympa ( encore plus à une heure si tardive ) !

Encore juste une petite question, comment prolonger pour qu'il fasse pareil pour toutes les cellules de la colonne D et E ?

Bonne nuit et merci !

A+

Bonjour,

Voici ce que j'ai tenté après l'aide de Frangy pour atteindre l'objectif final mais cela ne marche pas ... Quelqu'un aurait-il une idée ?

[code][/

Option Explicit

Dim Truc as Long

Private Sub Worksheet_Change(ByVal Target As Range)

'If Target.Count > 1 Then Exit Sub

If Not Intersect(Target, Range("D:D")) Is Nothing Then

Truc = Range("D1:D" & [A65536].End(xlUp).Row)

With Range("E & Truc.row")

.Validation.Delete

If Target < 500 Then

.Value = "a"

Else

.Value = ""

.Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _

xlBetween, Formula1:="a,b,c,d"

.Select

End If

End With

End If

End Sub

code]

A cela il faudrait aussi que si la case en D est vide il ne mette pas de "a" en E ... Ce qui est malheureusement le cas avec le fichier précédent.

Merci pour votre lecture

Bonne journée

Bonjour,

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Column = 4 Then
        With Target.Offset(0, 1)
            .Validation.Delete
            If Target = 0 Then
                .Value = ""
            ElseIf Target < 500 Then
                .Value = "a"
            Else
                .Value = ""
                .Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                    xlBetween, Formula1:="a,b,c,d"
                .Select
            End If
        End With
    End If
End Sub

A+

Merci Frangy !

J'ai encore du mal à m'en sortir seul ! J'ai vraiment pas pensé à Offset ! J'ai essayé de passé par le bas du tableau, trouver la ligne de la dernière entrée et changer de la colonne D vers la colonne E ... Alors que offset (0,1) fait exactement ce que je cherchais!

Un ENORME merci !

Bonne journée

Rechercher des sujets similaires à "liste deroulante"