liste de validation sans doublon et cascade.

  • Initiateur de la discussion Initiateur de la discussion Jouxte
  • Date de début Date de début

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 !

Jouxte

XLDnaute Occasionnel
Bonjour à toutes et tous,
Il y a déjà beaucoup de posts sur ce sujet, mais aucun ne correspond vraiment à ce que je cherche.
L'onglet "Tarif" comprend plus de 3 000 lignes, plus de 1 300 produits différents et 100 conditionnements différents.
J'aurais souhaité dans l'onglet "Adh" créer une liste déroulante des 1 300 produits (B10:B58) sans doublons et si possible par ordre alphabétique, en déterminer en colonne E les conditionnements possibles pour le produit sélectionné colonne B, de sorte à pouvoir en déterminer la référence en colonne D.
Merci par avance pour votre aide si possible sans macro.
Ci-joint fichier.
 

Pièces jointes

Bonjour jouxte, piga25, JB,

Il est possible d'obtenir une solution entièrement par formules mais c'est compliqué et fastidieux.

Par VBA c'est relativement simple, voyez le fichier joint.

Les macros sont dans les 2 premières feuilles (clic doit sur l'onglet et Visualiser le code).

Le tableau de la 1ère feuille est organisé en tableau Excel ce qui permet la duplication des formules en colonnes A et D.

A+
 

Pièces jointes

Re,
J'ai choisi d'utiliser la proposition de jb.
Dans mon tableau définitif, je colle les codes sur la feuille choisie en modifiant :b10:b20 en
If Not Intersect([b10:b58], Target) Is Nothing And Target.Count = 1 Then
J'ai créé des noms de plage identiques à ceux créés par jb. J'ai l'impression qu'ils ne sont pas utiles.

Lorsque je clique pour entrer un produit l’éditeur m'annonce une erreur de compilation
type défini par l'utilisateur non défini
Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean

Par ailleurs, j'ai des noms de produits très long. Est-il possible de modifier la largeur accordée au nom de produit ?

Merci par avance pour votre aide.
 
Bonjour,

Version intuitif multi-mots (on peut frapper plusieurs mots du produit pour retrouver le produit + rapidement parmi les 3.000 produits)

>Lorsque je clique pour entrer un produit l’éditeur m'annonce une erreur de compilation
type défini par l'utilisateur non défini
Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean


Supprimer ce :

Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean

>Par ailleurs, j'ai des noms de produits très long. Est-il possible de modifier la largeur accordée au nom de produit ?

Il faut :
-cliquer sur l'onglet Développeur
-cliquer sur l'équerre
-cliquer sur le combobox1
-faire apparaitre les propriétés
-modifier columnwidth: 180;30

liste triée:
http://boisgontierjacques.free.fr/fichiers/DonneesValidation/IntuitifTableur2col.xls
Formulaire:

http://boisgontierjacques.free.fr/fichiers/DonneesValidation/DevisFormMultiMotsIntuitif.xls

jb
 

Pièces jointes

Dernière édition:
Re,

On peut faire une recherche intuitive du produit avec la liste de validation :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'---recherche intuitive---
If Intersect(Target(1), Range("B10:B" & Rows.Count)) Is Nothing Then Exit Sub
If Target.Count = 1 Then Target.Select
Target(1, 4) = "" 'RAZ
If IsError([Produit]) Then Target(1) = ""
If IsEmpty(Target(1)) Then Exit Sub
If Application.CountIf([Produit], Target(1)) Then Exit Sub
Dim x As Variant
x = Application.VLookup("*" & Target(1) & "*", [Produit], 1, 0)
Target(1) = IIf(IsError(x), "", x)
End Sub
C'est bien sûr moins complet qu'avec une ComboBox.

Fichier (2).

A+
 

Pièces jointes

Bonjour jouxte, piga25, JB, & Job75,
Bonjour à toutes et à tous.

Voici un essai avec deux (02) Tableaux Croisés Dynamiques avec une macro, qui permet d'actualiser uniquement les tableaux croisés dynamiques.

Salutations distinguées.
 

Pièces jointes

Dernière édition:
Bonjour bcharef,

Ta solution avec les 2 TCD de la feuille "Listes" est en effet très simple.

Pour la mise à jour des TCD il vaut mieux mettre cette macro dans le code de la feuille "Tarif" :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
ThisWorkbook.RefreshAll
End Sub
La feuille "Listes" sera masquée.

A+
 
Bonjour bcharef, piga25, jb, & Job75 et le forum,
Merci pour vos propositions qui conviennent toutes parfaitement.
Je suis parti avec la solution de jb que je viens d'installer sur le fichier réel.
J'ai commis une petite erreur dans les données à coller dans Adh.
Le userbox est parfait (produit et conditionnement) mais les données à coller sont produit (en colonne B), la Ref (en colonne D) et le volume de la colonne D du tarif (en colonne E ) au lieu du Cond.
Merci par avance.
 
- 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

  • Question Question
Microsoft 365 Problème Code VBA
Réponses
9
Affichages
392
Retour