Liste déroulante influençant le résultant d'une autre cellul

Bonjour,

J'ai créé une liste déroulante qui permet de faire 2 choix dans une cellule (C50) :Yes ou NO.

En fonction du choix fait en C50, j'aimerais qu'une autre cellule (C56) affiche:

SI on choisit YES, que cette cellule ne soit pas affectée et qu'on puisse rentrer une valeur en pourcent dans cette cellule.

Si on choisit NO, que cette cellule affiche automatiquement la valeur 0%.

Je n'ai jusqu'à maintenant travaillé qu'avec des formules et pas avec des macros, j'aimerais continuer à utiliser des formules.

Merci pour votre aide précieuse.

Alexandre.

Humm je sais pas si j'ai bien compris mais normalement, si tu rentres ceci dans la cellule C56 :

=SI(C50="Yes";"";"")&SI(C50="No";"0";"")

Grosso modo, si C50=50 alors rien ne s'affiche dans C56, si c'est "No", 0 s'affiche dans C56.

Après, tu cliques droit sur la case C56 => format de cellule => personnalisée => et tu choisis comme type : 0%

Comme cela, si tu rentres 32 (par exemple) excel affiche 32%.

Bonjour à tous,

code à placer dans le VBE de la feuille où se trouve la liste

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rep$
    If Not Application.Intersect(Target, Range("c50")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Target = "Yes" Then
            Rep = Application.InputBox("Entrez votre %", , Type:=1)
            If Rep = False Then Exit Sub
            If Rep = True Then Range("c56").Formula = Rep & "%"
        Else
            Range("c56").Formula = "0%"
        End If
    End If
End Sub

Amicalement

Claude

4malek-v1.xlsm (119.52 Ko)

J'ai utilisé la macro, ça marche trés bien super!

Si je veux maintenant généraliser et que plusieurs cellules fonctionnent comme la cellule C56, c'est à dire affichent 0 % si on choisit NO dans la liste déroulante et qu'on puisse choisir la valeur à rentrer si on choisit YES.

Les cellules concernées (en plus de la cellule C56) sont

C57

C58

C59

C60

C61

C62

C63

C64

C65

Merci.

re,

Là c'est autre chose !

il faudrait voir la feuille avec explications de tes souhaits

Claude

En fait il s'agit d'une colonne entière (de C56 à C65), qui doit se mettre à 0 % si on choisit NO dans la liste déroulante.

Sinon on doit pouvoir choisir les données dans cette colonne, si on choisit YES.

5malek-v3.xlsm (125.61 Ko)

pas suffisamment clair !

quelle cellule parmi la plage citée ? si Yes

la cellule qui contient la liste déroulante est C50 (YES ou NO)

la collone en question est de C56 à C65.

sinon je peux vous envoyer la feuille par mail pour être plus clair.

Merci.

8bom.xlsx (72.20 Ko)

re,

toute la plage aura la même valeur

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rep$
    If Not Application.Intersect(Target, Range("c50")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Target = "Yes" Then
            Rep = Application.InputBox("Entrez votre %", , Type:=1)
            If Rep = False Then Exit Sub
            If Rep = True Then Range("c56:c65").Formula = Rep & "%"
        Else
            Range("c56:c65").Formula = "0%"
        End If
    End If
End Sub

Claude

capture 13

Merci parfait!

-- 07 Mai 2010, 15:27 --

aalleexxx a écrit :

Merci parfait!

Merci pour votre formule, ça fonctionne très bien, toute la colonne affiche 0% si on choisit NO dans la liste déroulante en C50.

J'aimerais maintenant qu'en plus, cette colonne C56 à C65 affiche aussi 0% si je choisis NO avec une autre liste déroulante qui est dans une autre cellule (E50). Il s'agit exactement de la même liste déroulante qu'en C50.

C'est à dire que la colonne C56 à C65 affiche 0% si on a NO en C50 et/ou on affiche également 0% si on a NO en E50.

Merci encore.

Alex.

Bonsoir,

Tu copie la liste déroulante "NO/YES" de C50 en E50

et ce code

Private Sub Worksheet_Change(ByVal Target As Range)
''Macros par Claude Dubois pour "aalleexxx" Excel-Pratique le 7 mai 10
Dim Rep$
    If Not Application.Intersect(Target, Range("c50,e50")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Target = "Yes" Then
            Rep = Application.InputBox("Entrez votre %", , Type:=1)
            If Rep = False Then Exit Sub
            If Rep = True Then Range("c56:c65").Formula = Rep & "%"
        Else
            Range("c56:c65").Formula = "0%"
        End If
            Application.EnableEvents = False
            Range("c50,e50") = Target
            Application.EnableEvents = True
    End If
End Sub

Amicalement

Claude

Rechercher des sujets similaires à "liste deroulante influencant resultant cellul"