Question

Je ne parviens pas à trouver cette information: Est-il possible d'afficher les étiquettes dans ces deux types de listes plutôt que les vraies valeurs? Bien sûr, quand une étiquette est sélectionnée, la valeur de la cellule ou la combobox (comme un contrôle de formulaire) obtient la valeur réelle.

Exemple: * Les données Produit A <------> 10 Produit B <------> 11 Produit C <------> 22

comboBox montre: le produit A, le produit B et C du produit Si je sélectionne un je reçois la valeur 10, B la valeur 11 et C la valeur 22

Merci d'avance

B Miloud.

Était-ce utile?

La solution

La façon typique de le faire est d'avoir une table de consultation. Il y a une fonction nommée quelque chose comme VLOOKUP (qui est un nom partiel) que vous pouvez utiliser dans les formules pour récupérer la valeur. Je l'ai fait quelque chose comme ça à mon travail, et je créé une table de recherche dans une feuille de calcul séparée, puis appelé la fonction de recherche dans mon principal.

Vous pouvez également utiliser des macros, mais est trop la peine à mon avis, le problème actuel.

Autres conseils

Validation des données : Vous ne pouvez pas avoir deux valeurs par ligne. Vous pouvez utiliser une table de consultation pour convertir une valeur à l'autre. Ou vous pouvez combiner les valeurs comme « ProductA_10 » et utiliser une formule pour extraire le « 10 » où vous en avez besoin.

Formulaire Combobox :. Cette option a également limité et n'offre pas vraiment quelque chose de plus que DV fait pour ce que vous voulez

Boîte à outils Combobox : Cela peut faire à peu près tout ce que vous voulez. Vous définissez la propriété ColumnCount à 2, la propriété BoundColumn à 2, et la propriété ColumnWidths à quelque chose comme « 1, 0 » pour cacher la deuxième colonne. Si je devais ProduitA-C dans A1: A3 et 10-12 dans B1: B3, alors j'utiliser le code comme celui-ci dans un module standard pour remplir le combobox

Sub LoadCombobox()

    Dim rCell As Range

    For Each rCell In Sheet1.Range("A1:A3").Cells
        Sheet1.ComboBox1.AddItem rCell.Value
        Sheet1.ComboBox1.List(Sheet1.ComboBox1.ListCount - 1, 1) = rCell.Offset(0, 1).Value
    Next rCell

End Sub

Et le code comme celui-ci dans le module de la feuille de mettre une valeur dans une cellule (F1 dans cet exemple)

Private Sub ComboBox1_Change()

    Me.Range("F1").Value = Me.ComboBox1.Value

End Sub

Chaque fois qu'une nouvelle valeur dans la zone de liste déroulante est sélectionnée, F1 est mis à jour. Nous pouvons utiliser la propriété Valeur de la combobox parce que nous avons mis la propriété BoundColumn à la colonne avec la valeur que nous voulons.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top