Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

SebastienF

XLDnaute Nouveau
Bonjour à Tous,

Simple utilisateur d'Excel, j'aimerais mettre en place un petit programme permettant à des utilisateurs de retouver un CODE précis, en référence à des éléments contenus dans une base de données.

[Au préalable, j'ai bien consulté les messages existants...mais je n'ai pas réussi à en tirer grand chose -niveau trop faible pour "adapter", certainement-En conséquence, je me retrouve bloqué...🙁 ]

Plus précisement, j'ai une base de données reprennant une liste de pays, eux-mêmes découpés en Régions, elles-mêmes sous découpées par Départements, eux mêmes subdivisés par villes.
C'est un système de cascade : chaque niveau supplémentaire venant apporter du détail au précédent...

Ainsi, l'outil que j'aimerais mettre en place permettrait aux utilisateurs de choisir :
> parmi une liste de pays ( dans 1ère liste déroulante)
> puis la région ( dans une 2ème liste de choix ) en référence à la réponse à la première liste
> puis le département ( dans une 3ème liste de choix ) en référence à la réponse de la deuxième liste...
Aux différentes réponses, est rattaché un code...

Mon problème est :
1) de pouvoir déjà proposer une liste de pays sans doublons
2) de limiter la 2ème liste de choix à la réponse de la 1ère liste (cascade) et ainsi de suite...

Ci joint une "esquisse" de mon programme ainsi qu'une exrtraction de la base de donnéees...😱

Merci par avance si vous avez la réponse à mon problème...
 

Pièces jointes

Re : Liste déroulante

déjà pour les listes sans blanc voici uneformule a pappliquer sur ta liste de validation
insetrion _ liste de validation _ dans autrise liste et source coller la formule

'=DECALER(Liste1;0;0;NBVAL(Liste1))

"liste"est une plage nommée ou est ta liste

Cordialement
 
Re : Liste déroulante

Bonjour,

Voir PJ

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect([A2:A10], Target) Is Nothing And Target.Count = 1 Then
    Sheets("base").[N2] = Empty
    Sheets("base").[A1:E1000].AdvancedFilter Action:=xlFilterCopy, _
      CriteriaRange:=Sheets("base").[N1:N2], CopyToRange:=Sheets("base").[G1], Unique:=True
  End If
  If Not Intersect([B2:B10], Target) Is Nothing And Target.Count = 1 Then
     Sheets("base").[N2] = Target.Offset(0, -1)
     Sheets("base").[O2] = Empty
     Sheets("base").[A1:CE1000].AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Sheets("base").[N1:O2], CopyToRange:=Sheets("Base").[H1], Unique:=True
  End If
  If Not Intersect([C2:C10], Target) Is Nothing And Target.Count = 1 Then
    Sheets("base").[N2] = Target.Offset(0, -2)
    Sheets("base").[O2] = Target.Offset(0, -1)
    Sheets("base").[P2] = Empty
    Sheets("base").[A1:E1000].AdvancedFilter Action:=xlFilterCopy, _
      CriteriaRange:=Sheets("base").[N1:P2], CopyToRange:=Sheets("base").[I1], Unique:=True
   End If
   If Not Intersect([d2:d10], Target) Is Nothing And Target.Count = 1 Then
    Sheets("base").[N2] = Target.Offset(0, -3)
    Sheets("base").[O2] = Target.Offset(0, -2)
    Sheets("base").[P2] = Target.Offset(0, -1)
    Sheets("base").[Q2] = Empty
    Sheets("base").[A1:E1000].AdvancedFilter Action:=xlFilterCopy, _
      CriteriaRange:=Sheets("base").[N1:Q2], CopyToRange:=Sheets("base").[J1:K1], Unique:=True
   End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect([d2:d10], Target) Is Nothing And Target.Count = 1 Then
     Sheets("base").[Q2] = Target
     Sheets("base").[A1:E1000].AdvancedFilter Action:=xlFilterCopy, _
      CriteriaRange:=Sheets("base").[N1:Q2], CopyToRange:=Sheets("base").[K1], Unique:=True
       Target.Offset(0, 1) = Sheets("base").[K2]
   End If
End Sub

JB
Formation Excel VBA JB
 

Pièces jointes

Re : Liste déroulante

Un grand Merci à Toutes et à Tous !!

aussi, le programme d'Allegro50 m'a neanmoins permis de voir encore plus loin dans ce projet...
Pour être bref, cet outil sert à définir un code précis (de 8 caractères max.) correspondant à une zone géographique précise.
Son mode de fonctionnement est assez simple :
> en entrant les premières lettres d'un pays, l'outil va chercher dans l'onglet "base" toutes les lignes correspondantes, à savoir les régions, elles mêmes divisées provinces, puis villes...
Tout ceci apparait dans la listbox1.
> puis, en cliquant sur la ligne désirée de la listbox1, le code correspondant à au pays, à la région,...apparait dans les textbox2 à 5.

Aussi, comment pouvoir faire de même mais inversement ?

Je m'explique :
J'aimerais proposer une autre option (complémentaire), à savoir :
l'utilisateur connait le code et aimerais savoir à quel pays, province, région...il correspond.

>J'entre mon code de 2 à 8 caractères maximum dans la TextBox6...
et sur le même principe que la ListBox1, j'ai la correspondance de ce code dans la listbox7.

Is it possible ?

PS / Pour des raisons de mémoires, j'ai seulement gardé la France da ma base de données
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
567
Réponses
1
Affichages
455
Retour