Liste déroulante semi-automatique Excel [Résolu/Fermé]

Signaler
-
 ganjaric -
Bonjour,

Voilà mon problème:
J'ai mis en place une liste déroulante sur chaque cellule de la colonne I, avec diférente valeur au choix (10,11,12...)
Je souhaterais que, lorsque je mets une qqconque valeur dans une cellule de la colonne E, le choix de la liste déroulante de la même ligne se met sur la première valeur de la liste (10), tout en ayant la possibilité d'accéder au valeur de la liste.
Merci d'avance pour votre aide.

19 réponses

Messages postés
25456
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
28 octobre 2020
5 563
Alors peut être cette fois, effectivement c'est à priori plus clair:
http://www.cijoint.fr/cjlink.php?file=cj201101/cijYbtattz.xls
crdlmnt

Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
4347
Date d'inscription
samedi 15 mars 2008
Statut
Contributeur
Dernière intervention
2 novembre 2013
1 299
Salut,

est-ce que tu parles des liste en cascades ? i oui voici un excellent tutoriel
http://boisgontierjacques.free.fr/pages_site/listes_cascade.htm#Listesencascade1

Bonne journée
Non, ce ne sont pas des listes en cascade.
Je n'ai qu'une liste, et je n'arrive pas à lui faire afficher une valeur selon une condition.
Messages postés
4347
Date d'inscription
samedi 15 mars 2008
Statut
Contributeur
Dernière intervention
2 novembre 2013
1 299
et bien tu n'as pas besoin d'une liste si tu fais afficher une valeur selon une condition. Je ne vois pas l'utilité de cette liste. Où bien tu ne donnes pas tous les détails.
J'ai également besoin des autres valeurs, mais par défat, suivant ma condition, je souhaite que la liste affiche la première valeur de celle-ci.
Je pense être clair dans mes explications.
Messages postés
52531
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
28 octobre 2020
14 395
Le mieux serait de nous envoyer ton fichier.

En effet pour te répondre nous devrons te dire des choses comme
"Dans la cellule B3 mettre la formule =Feuil1!E3"
"Dans la plage D2:D30 mettre la formule =SI(E3="";"";D3)"
donc nous devons connaître avec précision la structure des feuilles du fichier.
Messages postés
25456
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
28 octobre 2020
5 563
Bonjour tous

ganjaric, est ce quelque chose comme ce modèle que vous cherchez:

http://www.cijoint.fr/cjlink.php?file=cj201101/cijzngkcY9.xls

crdlmnt

Merci Vaucluse, mais j'ai du mal à comprendre ça.
J'ai entré une valeur en E, il ne s'est rien passé.
Peut-être que c'est ça, mais je n'peux pas dire.


Pour répondre à Raymond, voici ma liste:

10 - Matériel Courant
11 - Sortie Magasin
14 - Gros Matériel
15 - Sous-Traitance Fourniture
16 - Sous-Traitance Prestations
17 - Sous-Traitance à Paiement Direct
18 - Sous-Traitance Interne
30 - Véhicule Interne
31 - Véhicule Location
40 - Divers Chantier
41 - Divers Affaire
281 - Déplacement
282 - Mission Réception

le "10 - Matériel Courant" se situe en I2 de la feuille "Source".
Dès que je rentre un prix matériel, (toute la colonne E de la feuille "Déboursé"),
Je souhaiterais que en en colonne I, sur la même ligne que le prix, le choix de la liste se place seul sur "10 - Matériel Courant" mais que j'ai quand même le choix de changer.

Exemple
J'entre une valeur en E6 de la feuille déboursé, en I6 de la même feuille (là ou j'ai le choix de la liste), je dois voir apparaitre "10 - matériel Courant" tout seul.
Je voudrais le faire comme ça, car quand on a des centaines de ligne à taper, et qu'il faut choisir sur chaque ligne, fastidieux. Le plus souvent, c'est du matériel courant.

Merci par avance.
Messages postés
25456
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
28 octobre 2020
5 563
Ce qui devrait se passer:
quand vous entrez une valeur dans le champ E, et que vous sélectionnez en I la cellule sur la même ligne, la liste déroulante s'affiche en débutant avec le code entré en E

si ça ne fonctionne pas, voyez dans le fichier l'activation des macros.

je viens de tester directement sur le fichier dans cijoint et ça marche.

crdlmnt
Effectivement, les macros sont désactivées. Comment faut-il faire pour les activer?
J'ai réussi à activer la macro.
ça fonctionne, malheureusement, ce n'est pas c'que je veux.
On est quand même obligé de faire un choix.
Messages postés
25456
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
28 octobre 2020
5 563
alors expliquer vous correctement...! on veut bien vous aider mais si on reprend ce que vous disiez un peu plus haut:

J'ai également besoin des autres valeurs, mais par défat, suivant ma condition, je souhaite que la liste affiche la première valeur de celle-ci.
Je pense être clair dans mes explications.


eh bien non! maintenant il ne s'agit plus de la liste mais de la cellule
est ce que c'est mieux là?
http://www.cijoint.fr/cjlink.php?file=cj201101/cijs2vJwFj.xls

ou encore celui ci un peu différent
http://www.cijoint.fr/cjlink.php?file=cj201101/cijs2vJwFj.xls

Après je ne sais plus alors, montez un modèle avec ce que vous voulez et placez le sur:
http://www.cijoint.fr
bonne chance
Messages postés
4347
Date d'inscription
samedi 15 mars 2008
Statut
Contributeur
Dernière intervention
2 novembre 2013
1 299
Salut Vaucluse et Raymond,

ont va peut-être finir par avoir un modèle de son tableau et ainsi ne pas travailler pour rien et à l'aveuglette ;)
Désolé si ça vous énerve, c'est pas le but.
En tout cas, merci de vous creuser pour moi.

Voici mon tableau:

http://www.cijoint.fr/cjlink.php?file=cj201101/cijpYYoxlZ.xls

Actuellement, dans la colonne I, je suis obligé de cliquer sur la petite flèche de la liste déroulante pour faire un choix.
Je ne veux pas que cette liste change.
Simplement, je souhaite que lorsque je rentre un prix dans la colonne E, le choix se mette tout seul sur "10 - Matériel Courant" mais que je puisse quand même le changer avec la petite flèche, si besoin.

Suis-je clair??
C'est ça oui, merci beaucoup!!
Avant de fermer ce sujet, j'ai une dernière chose à vous demander.
Est-il possible que le choix se remette sur une case blanche si je supprime le prix?
Vous avez utilisé une macro ou une formule??
Je ne vois pas comment vous avez fait ça, je suis épaté...
Messages postés
25456
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
28 octobre 2020
5 563
Une macro
clic droit sur onglet et "visualiser le code
crtdlmnt
C'est du charabia pour moi.
Je n'veux pas vous monopoliser, mais si je vous demandais ça, c'est parce que je dois faire la même chose avec la liste de la colonne J qui elle, dépendra d'une valeur entrée dans la colonne F.
Pareil, si c'est possible que le choix de la colonne I repasse en blanc si j'ai rien dans la colonne E, et que le choix de la colonne J repasse en blanc si j'ai rien dans la colonne F ce serait bien.
Messages postés
25456
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
28 octobre 2020
5 563
Pour la colonne F avec le résultat en J:
aller dans le code et remplacer le complètement par celui ci:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim Rw As Long
If Target.Column = 5 Then
Rw = Target.Row
Range("I" & Rw).Select
ActiveCell.FormulaR1C1 = Range("I2").Value
End If
If Target.Column = 6 Then
Rw = Target.Row
Range("J" & Rw).Select
ActiveCell.FormulaR1C1 = Range("J2").Value
End If
End Sub

par contre je ne sais pas pour effacer quand vous effacer la cellule.
je cherche un peu, je ne promet rien, mais la question est ouverte à d'autre

crdlmnt
J'ai réussi à utiliser votre macro pour faire la même chose avec la colonne J en fonction de F.

Voici mon nouveau fichier:

http://www.cijoint.fr/cjlink.php?file=cj201101/cij4eBC2st.xls

Maintenant, est-il possible de sélectionner une case blanche en I si je supprime le prix en E?
Messages postés
52531
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
28 octobre 2020
14 395
Bonjour ganjaric.
* Je n'ai pas regardé les fichiers contenant une macro.
Tu as exposé ton problème :
"J'ai mis en place une liste déroulante sur chaque cellule de la colonne I, avec diférente valeur au choix (10,11,12...). Je souhaterais que, lorsque je mets une qqconque valeur dans une cellule de la colonne E, le choix de la liste déroulante de la même ligne se met sur la première valeur de la liste (10), tout en ayant la possibilité d'accéder au valeur de la liste."
et tu as précisé au post #9 :
"Dès que je rentre un prix matériel (toute la colonne E de la feuille "Déboursé"), je souhaiterais que en en colonne I, sur la même ligne que le prix, le choix de la liste se place seul sur "10 - Matériel Courant" mais que j'ai quand même le choix de changer ... Je voudrais le faire comme ça, car quand on a des centaines de ligne à taper, et qu'il faut choisir sur chaque ligne, fastidieux. Le plus souvent, c'est du matériel courant."

Je serais à ta place, je fais mon choix dans la première cellule (I20 dans ton dernier exemple), en I21 je tape =I20 et je recopie I21 vers le bas.
Ainsi j'ai partout "10 - Matériel Courant" ... mais je peux changer !


C'est super facile, extra fiable et méga rapide. Non ?
Messages postés
23599
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
27 octobre 2020
6 429
Bonsoir,

Proposition lègèrement différente (on a ses habitudes :-) ) mais le résultat est le même:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim lig As Long
    lig = Target.Row
    Select Case Target.Column
    Case 5
        If Target = "" Then
            Cells(lig, 9) = ""
        ElseIf Cells(lig, 9) = "" Then
            Cells(lig, 9) = [I2]
        End If
    Case 6
        If Target = "" Then
            Cells(lig, 10) = ""
        ElseIf Cells(lig, 10) = "" Then
            Cells(lig, 10) = [J3]
        End If
    End Select
End Sub


Si on modifie la valeur et qu'un autre choix avait été fait dans la liste déroulante, ce choix reste sélectionné.
Si tu préfères la remettre au choix par défaut remplace le ElseIf.... par Else tout court

eric
Excellent!!
Fécilicitations Eriiic...