Liste déroulante (cascade)

ganadhip

XLDnaute Nouveau
Résolu : Liste déroulante (cascade)

Bonjour,

après pas mal de recherche sur le site, je n'arrive pas à faire fonctionner ce que je veux. J'ai vraiment besoin d'aide, sinon à force de cogner ma tete contre l'écran je vais finir par rentrer dedans

Je souhaite mette en place des listes qui vont vers d'autres listes ==> jusque là tout va bien.

1)Je souhaiterai que les listes grandissent lorsque je mets de nouvelles informations dedans. Or là je bloque j'ai bien vu des solutions avec décaler mais à chaque fois il me marque (ne peut pas faire référence à une autre feuille).Donc ma formule ne doit pas être bonne.

2) Je souhaiterai que si certaines informations ne sont pas dans les déroulants, qu'on puisse les écrire quand même. (imaginons j'ai 3 choix mais ils ne me conviennent pas, je puisse en marquer un 4ème sans passer par la base)

3) J'ai vu un post avec macro vba hier qui permettait de rafraichir automatiquement les choix automatiques, je m'explique j'ai dans une colonne soi A soi B dans une seconde colonne pour le choix A: A1,A2,A3 etc et si je choisis B j'ai B1, B2, B3 etc. Actuellement si je mets A et A1 et que je change en B j'aurais toujours B et A1. Est il possible que ça se rafraichisse hop Je tape B et directement la seconde colonne change avec les choix B.


Je vous remercie de votre aide :)

Et à bientôt
 

Pièces jointes

  • Document.xls
    47.5 KB · Affichages: 414
  • Document.xls
    47.5 KB · Affichages: 435
  • Document.xls
    47.5 KB · Affichages: 425
Dernière édition:

ccpapy

XLDnaute Impliqué
Re : Liste déroulante (cascade)

bonjour,
pour ta 2ème question:
quand tu fais données /validation, tu as l'onglet alerte d'erreurs, il te suffit de décocher (quand les données.....)

quant à l'insertion noms de listes , effectivement je viens d'essayer la formule "decaler" et je n'avais jamais remarqué que cela plantait.
en attente de solution alors...:confused:
à+
 

GIBI

XLDnaute Impliqué
Re : Liste déroulante (cascade)

Bonjour,

Réponse au 1/ pour que la liste soit "variable" il faut utiliser la fonction décaler dans le définition, par exemple pour liste

=DECALER(Base!$1:$1;0;0;1;NBVAL(Base!$1:$1))

pour la liste en cascade on peut écrire le décaler dans données validation en faisant référence au liste de l'onglet "base"
si X2 est la cellele controlée par "liste1"
=DECALER(Liste2;EQUIV(x2;Liste1;0)-1;;SOMME((Liste1=x2)*1))
Equiv recherche le déplacement dans le liste1 et somme le nombre de valeur

bonne prise de tête (petite)

GIBI
 

ccpapy

XLDnaute Impliqué
Re : Liste déroulante (cascade)

re,
désolé ganadhip de m'être incrusté sur ton post mais la solution m'interesse.
gibi/
pour la formule
=DECALER(Base!$1:$1;0;0;1;NBVAL(Base!$1:$1))
j'avais anticipé et adapté également aux autres listes
mais en utilisant cette formule (par exemple pour biologique) la cascade ne fonctionne plus.

ta solution
pour la liste en cascade on peut écrire le décaler dans données validation en faisant référence au liste de l'onglet "base"
si X2 est la cellele controlée par "liste1"
=DECALER(Liste2;EQUIV(x2;Liste1;0)-1;;SOMME((Liste1=x2)*1))
Equiv recherche le déplacement dans le liste1 et somme le nombre de valeur

je n'arrive pas à comprendre, pourrais-tu joindre un petit exemple ?
merci

 

GIBI

XLDnaute Impliqué
Re : Liste déroulante (cascade)

Re-salut,

je n'ai pas bien regarder le Pb, en effet ce n'est pas vraiment une liste en cascade, Ici il faut choisir la bonne liste (une colonne) en fonction du nom de la colonne, ce qui donne


=DECALER(Liste;1;EQUIV($A13;Liste;0)-1;NBVAL(DECALER(Liste;1;EQUIV($A13;Liste;0)-1;65000;1));1)

la formule précédente est pour une liste ce présentant dans l'autre sens

Chimie Utilisation de solvants
Chimie Utilisation de décapants (pour soudure)
Chimie Fabrication circuit imprimé
Chimie Traitement de surface (passivation)
Chimie Nettoyage de grosses pièces
Chimie Manipulation de métaux (Hg, Ni, Be etc…)
Chimie Travaux en rapport avec des aromatiques
Chimie Utilisation de colles
Chimie Utilisation autres produits
Chimie Utilisation de gaz inflammables comprimés en bouteillle
Chimie Utilisation de gaz comprimés en bouteillle
Biologique Manipulation d'échantillons
Biologique Culture de cellules de mammifères
Biologique Culture de souches attenuées d'Escherichia Coli
Biologique Utilisation de rongeurs

la premiere colonne = liste1 la 2eme = liste2
bon courage
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Liste déroulante (cascade)

Bonjour,


Listes en cascade avec ajout dynamique d'items:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$B$2" And Target.Count = 1 Then
        If IsError(Application.Match(Target.Value, [choix1], 0)) Then
          If MsgBox("On ajoute?", vbYesNo) = vbYes Then
           [choix1].End(xlToRight).Offset(0, 1) = Target.Value
          Else
           Application.Undo
          End If
        Else
          Target.Offset(0, 1) = Sheets("listes").Range("choix2")(1).Offset(1, Application.Match(Target, [choix1], 0) - 1)
        End If
  End If
  If Target.Address = "$C$2" And Target.Count = 1 Then
        d = Application.Match(Target.Offset(0, -1), [choix1], 0) - 1
        If IsError(Application.Match(Target.Value, [choix2].Offset(0, d), 0)) Then
          If MsgBox("On ajoute?", vbYesNo) = vbYes Then
           n = Application.CountA([choix2].Offset(0, d))
           c = Sheets("listes").Range("choix2").Column
           Sheets("listes").Cells(n + 1, c + d) = Target.Value
          Else
           Application.Undo
          End If
   End If
  End If
End Sub

JB
Formation Excel VBA JB
 

Pièces jointes

  • DV_Cascadex.xls
    43.5 KB · Affichages: 521
  • DV_Cascadex.xls
    43.5 KB · Affichages: 498
  • DV_Cascadex.xls
    43.5 KB · Affichages: 505

ganadhip

XLDnaute Nouveau
Re : Liste déroulante (cascade)

Merci à vous je regarde ça ce weekend :)

Si quelqu'un avait une solution pour pouvoir entrer des données dans les cellules où se trouvent déjà les listes (cellule : soi avec choix text soi celui de la liste)

Ce serait le top

Merci et merci beaucoup à ceux qui m'ont aidé
 
Dernière édition:

meldja

XLDnaute Impliqué
Re : Liste déroulante (cascade)

Salut,
J'ai rencontré le même problème (à cause de feuille différente).
La solution que j'ai trouvé, c'est de lier la feuille Base à la feuille Secteur (tout simplement), à partir de la colonne IQ ligne 1 (tu peux masquer les colonnes si tu veux).
Il faut juste que tu saisisses ta formules de recopie en feuille Secteur, colonne IQ, ligne 1 =feuilBase!A1 et que tu tires cette formule jusqu'à le dernière colonne, puis jusqu'à la 50ième ligne (tu peux modifier les formules jusqu'à la Nième linge)
Ton problème n'est pas vraiment résolu, puisqu'on passe par un subterfuge, mais je continue d'y réfléchir.
En espérant avoir fait avancer ton schmilblic.
A plus
 

Pièces jointes

  • Document(1).zip
    11.2 KB · Affichages: 130
  • Document(1).zip
    11.2 KB · Affichages: 154
  • Document(1).zip
    11.2 KB · Affichages: 134

ccpapy

XLDnaute Impliqué
Re : Liste déroulante (cascade)

Merci à vous je regarde ça ce weekend :)

Si quelqu'un avait une solution pour pouvoir entrer des données dans les cellules où se trouvent déjà les listes (cellule : soi avec choix text soi celui de la liste)

Ce serait le top

Merci et merci beaucoup à ceux qui m'ont aidé

bonjour,
pour ça , si j'ai bien compris ta demande, je t'ai déjà répondu sur mon tout premier message...
pour GIBI/ j'ai testé ta 2ème solution, et je suis ravi:), ça me servira surement, merci
il ne me reste plus quà essayer la solution en VBA par curiosité
à+
 

meldja

XLDnaute Impliqué
Re : Liste déroulante (cascade)

Désolé,
Je me suis précipité, ton problème est réglé.
Voir fichier ci-joint.
Plus besoin de lier la source.
En espérant avoir répondu à ton besoin.
A plus
 

Pièces jointes

  • Document(1).zip
    8.2 KB · Affichages: 215
  • Document(1).zip
    8.2 KB · Affichages: 206
  • Document(1).zip
    8.2 KB · Affichages: 206

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Liste déroulante (cascade)

>Si quelqu'un avait une solution pour pouvoir entrer des données dans les cellules où se trouvent déjà les listes (cellule : soi avec choix text soi celui de la liste)

Si j'ai bien compris, il me semble que le pgm joint le fait. On peut ajouter des items nouveaux dans les listes à partir des menus Données/Validation.

JB
 

Pièces jointes

  • DV_CascadeSansNomsAjoutDynamique.xls
    44 KB · Affichages: 282
  • DV_CascadeSansNomsAjoutDynamique.xls
    44 KB · Affichages: 277
  • DV_CascadeSansNomsAjoutDynamique.xls
    44 KB · Affichages: 280
  • DVDocument(1).zip
    15 KB · Affichages: 117
Dernière édition:

ganadhip

XLDnaute Nouveau
Re : Liste déroulante (cascade)

Merci à vous pour votre aide,

Après application dans mon programme ça fonctionne pour une cellule :)

Une petite dernière question, dans le fichier de Boisgontier, la macro fait référence uniquement à $b$2 or je voudrais faire que cette macro soit applicable à toute de $b$2 à $b$100.

J'ai essayé en retirant les $, en essayant d'utiliser la commande range("x:y") mais rien n'y fait. Soi la commande me met des erreurs, soi la macro ne fait plus rien.Il est vrai je débute en VBA et ceci et d'un niveau un peu trop élevé pour moi mais j'en ai besoin.

Si vous pouviez m'aider

Un grand merci
 

mromain

XLDnaute Barbatruc
Re : Liste déroulante (cascade)

pour ton PB de liste dynamique issue d'une autre feuille :

- tu crée ta liste dans une feuille ("mes listes"), puis tu crée un "Nom" (Insersion --> Nom --> Définir), que tu nomme (liste1 par exemple) qui fait référence à ta liste (=DECALER('mes listes'!$A$2;;;NBVAL('mes listes'!$A:$A)-1)) (DECALER pour la liste dynamique...).

- dans ton autre feuille ("ma feuille"), tu crée ta Validation, autoriser une liste, tu te mets sur le champ "Source", et tu fait : Insersion --> Nom --> Coler, et tu choisi ta liste (liste1 en locurence).

je te met un fichier en exemple

A+
 

Pièces jointes

  • listes.xls
    14 KB · Affichages: 352
  • listes.xls
    14 KB · Affichages: 355
  • listes.xls
    14 KB · Affichages: 361

Discussions similaires

Réponses
2
Affichages
270

Statistiques des forums

Discussions
312 153
Messages
2 085 800
Membres
102 980
dernier inscrit
brossadan