Frage

Ich bin nicht in der Lage, diese Informationen zu ermitteln: Ist es möglich, Etiketten zu zeigen, in diesen zwei Arten von Listen, anstatt die wahren Werten? Natürlich, wenn ein Etikett gewählt wird, wird der Wert der Zelle oder die Combobox (als Form Steuerung) den realen Wert.

Beispiel: * Daten Produkt A <------> 10 Produkt B <------> 11 Produkt C <------> 22

Combobox zeigt: Produkt A, Produkt B und Produkt C Wenn ich A wähle ich den 10-Wert erhalten, B, um den 11-Wert und C des 22 Wert

Vielen Dank im Voraus

Miloud B.

War es hilfreich?

Lösung

Der typische Weg, dies zu tun, ist eine Lookup-Tabelle haben. Es gibt eine Funktion so etwas wie VLOOKUP genannt (die ein Teil des Namens ist), dass Sie in Formeln verwenden können, um den Wert abzurufen. Ich habe so etwas wie dies in meinem Job, und ich erstellt eine Lookup-Tabelle in einer separaten Tabelle, und dann wird die Lookup-Funktion in meinem Haupt genannt.

Sie können auch Makros verwenden, aber das ist zu viel meiner Meinung nach für das aktuelle Problem stören.

Andere Tipps

Datenvalidierung : Sie können nicht zwei Werte pro Zeile. Sie können eine Lookup-Tabelle verwenden einen Wert in einem anderen zu umwandeln. Oder Sie können die Werte wie „ProductA_10“ kombinieren und eine Formel verwenden, um die „10“ zu extrahieren, wo Sie es brauchen.

Form Combobox . Dies hat auch nur begrenzte Möglichkeiten hat und wirklich nicht bieten etwas mehr als DV macht für das, was Sie wollen

Toolbox Combobox : Dies kann nur das tun, was Sie wollen. Sie würden die Spaltenanzahl Eigenschaft auf 2, die gebundene Spalte Eigenschaft auf 2, und die Eigenschaft Spalten um so etwas wie auf „1; 0“ in die zweite Spalte zu verbergen. A3 und 10-12 in B1: Wenn ich ProduktA-C in A1 hatte B3, dann würde ich Code wie diesen in einem Standardmodul verwenden, um die Combobox zu füllen

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

Und Code wie folgt in dem Modulblatt einen Wert in einer Zelle zu setzen (F1 in diesem Beispiel)

Private Sub ComboBox1_Change()

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

End Sub

Jedes Mal, wenn ein neuer Wert in der Combobox ausgewählt ist, wird F1 aktualisiert. Wir können die Value-Eigenschaft des ComboBox verwenden, weil wir die gebundene Spalte Eigenschaft auf die Spalte mit dem Wert legen wir wollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top