Liste déroulante semi-automatique Excel

Résolu/Fermé
ganjaric - Modifié par ganjaric le 22/01/2011 à 15:50
 ganjaric - 23 janv. 2011 à 19:05
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.
A voir également:

19 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié par Vaucluse le 23/01/2011 à 15:14
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
Ricky38 Messages postés 4347 Date d'inscription samedi 15 mars 2008 Statut Contributeur Dernière intervention 2 novembre 2013 1 458
22 janv. 2011 à 15:51
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
0
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.
0
Ricky38 Messages postés 4347 Date d'inscription samedi 15 mars 2008 Statut Contributeur Dernière intervention 2 novembre 2013 1 458
22 janv. 2011 à 15:57
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.
0
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Raymond PENTIER Messages postés 58392 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 22 avril 2024 17 095
23 janv. 2011 à 00:44
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.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
23 janv. 2011 à 08:26
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

0
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.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
23 janv. 2011 à 12:19
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
0
Effectivement, les macros sont désactivées. Comment faut-il faire pour les activer?
0
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.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié par Vaucluse le 23/01/2011 à 13:38
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
0
Ricky38 Messages postés 4347 Date d'inscription samedi 15 mars 2008 Statut Contributeur Dernière intervention 2 novembre 2013 1 458
23 janv. 2011 à 14:26
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 ;)
0
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??
0
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?
0
Vous avez utilisé une macro ou une formule??
Je ne vois pas comment vous avez fait ça, je suis épaté...
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
23 janv. 2011 à 15:26
Une macro
clic droit sur onglet et "visualiser le code
crtdlmnt
0
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.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
23 janv. 2011 à 17:27
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
0
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?
0
Raymond PENTIER Messages postés 58392 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 22 avril 2024 17 095
23 janv. 2011 à 18:40
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 ?
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 213
23 janv. 2011 à 18:52
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
0
Excellent!!
Fécilicitations Eriiic...
0