Listes déroulantes conditionnées

skut

XLDnaute Nouveau
Bonjour à tous.
Celà fait déjà un petit moment que je recherche une solution à mon problème et pour le moment, sans aucun résultat.
Je m'explique:

J'ai une page excel contenant :
Col 1 -> nom d'enseignes de magasins
Col 2 -> villes
Col 3 -> adresses
Col 4 -> surfaces de vente

Je souhaiterais, positionner sur une autre page 3 listes déroulantes:
- la première avec le nom des enseignes (1 seule fois chacune)
- la deuxieme avec le nom des villes correspondantes à l'enseigne choisie dans la liste 1
- la troisieme avec les differentes adresses correspondantes aux enseignes dans ces villes

et tout ceci pour enfin récupérer dans une cellule en dessous la surface de vente correspondante au magasin choisit.

Le but est donc de sélectionner son magasin, ville et adresse sans avoir à écrire quoi que ce soit pour obtenir la surface de vente.

Je voulais savoir si cela été possible avec des formules ou avec du VB sachant que ma base de donnée est assez lourde (6949 lignes !)

Merci d'avance pour votre aide.
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Listes déroulantes conditionnées

Bonjour,

Voir PJ


Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect([A2:A100], Target) Is Nothing And Target.Count = 1 Then
    Sheets("liste").[k2] = Empty
    Sheets("liste").[A1:D1000].AdvancedFilter Action:=xlFilterCopy, _
       CriteriaRange:=Sheets("liste").[k1:k2], CopyToRange:=Sheets("liste").[g1], Unique:=True
  End If
  
  If Not Intersect([B2:B100], Target) Is Nothing And Target.Count = 1 Then
    Sheets("liste").[k2] = Target.Offset(0, -1)
    Sheets("liste").[l2] = Empty
    Sheets("liste").[A1:D1000].AdvancedFilter Action:=xlFilterCopy, _
       CriteriaRange:=Sheets("liste").[K1:L2], CopyToRange:=Sheets("liste").[H1], Unique:=True
  End If
  
  If Not Intersect([C2:C100], Target) Is Nothing And Target.Count = 1 Then
    Sheets("liste").[k2] = Target.Offset(0, -2)
    Sheets("liste").[l2] = Target.Offset(0, -1)
    Sheets("liste").[m2] = Empty
    Sheets("liste").[A1:D1000].AdvancedFilter Action:=xlFilterCopy, _
       CriteriaRange:=Sheets("liste").[k1:m2], CopyToRange:=Sheets("liste").[I1], Unique:=True
  End If
End Sub

JB
 

Pièces jointes

  • DVCascade3NiveauxMagasin.xls
    46 KB · Affichages: 82
Dernière édition:

skut

XLDnaute Nouveau
Re : Listes déroulantes conditionnées

Re bonjour.
Je te remercie pour ta réponse si rapide.
Par contre bien qu'ayant des notions en visual basic et en formules Excel, je ne comprend pas ce qui est fait dans tes formules... et le code que je pensais pouvoir adapter s'est révélé plus compliqué à comprendre que prévu.
Je joins donc un document avec une partie de ma liste pour voir si on peut l'adapter à ce que je sohaiterais (sachant que l vrai liste fait 6949 lignes).
Merci encore pour ton aide.
 

Pièces jointes

  • base + liste.xls
    44.5 KB · Affichages: 222

jeanpierre

Nous a quitté
Repose en paix
Re : Listes déroulantes conditionnées

Bonjour skut, BOISGONTIER,

Et l'utilisation du Filtre automatique, ne serait-elle pas plus adaptée ?

Selection de tes titres et Données/Filtre automatique.

A voir.

A te lire.

Jean-Pierre
 

skut

XLDnaute Nouveau
Re : Listes déroulantes conditionnées

Bonjour Jeanpierre.

J'avais pensé à l'utilisation de filtres comme tu le dis.
Mettre une premiere liste de nom d'enseignes puis filtrer ma base selon l'enseigne choisie et dire à la seconde liste d'afficher les valeurs de la colonne Ville ainsi filtrées et ainsi de suite jusqu'à n'obtenir qu'une valeur de surface de vente que j'afficherais ...
Seulement cela m'est hors de portée.
Si c'est possible, je veux bien qu'on m'explique !

Merci .
 

skut

XLDnaute Nouveau
Re : Listes déroulantes conditionnées

Merci Jeanpierre.
Seulement, je souhaiterais les résultats sur la feuille "recherche" pour ne pas que l'on voit toute la base de donnée affichée. Et c'est de l que me vient le problème.
 

Discussions similaires

Statistiques des forums

Discussions
314 204
Messages
2 107 186
Membres
109 770
dernier inscrit
cazenavevar