Stránka 1 z 1

Excel VBA - combobox

Napsal: 04 lis 2010 08:36
od Branscombe
Ahoj, mám malý dotaz, zda-li lze nastavit combobox ve formuláři tak, aby při rozkliknutí byli zobrazeny k výběru hodnoty ze sloupce "J", ale při vybrání některé z těchto hodnot se zapsala do comboboxu hodnota ze stejného řádku, ale ze sloupce "A", nebo popřípadě aby se zapsaly pouze čísla před pomlčkou.

Mám ve sloupci "A" čísla "0001, 0105, 3406 atd...", ve sloupci "B" mám název "Branscombe, navstevnik, PC-HELP atd...", ve sloupci "J" je sloučím na "0001 - Branscombe, 0105 - navstevnik, 3406 - PC-HELP atd..."

V ComboBoxu ve formuláři potřebuji při výběru vidět hodnoty ze sloupce "J", ale zapsat do ComboBoxu hodnoty ze sloupce "A".

Doufám že jsem to napsal dosti srozumitelně, ale nejsem si jist že něco takového půjde ...

Re: Excel VBA - combobox

Napsal: 04 lis 2010 10:12
od navstevnik
Co takhle si v napovede precist vyznam vlastnosti ComboBoxu v User form, poexperimentovat s nastavenim.
Pro tebou zadany blok dat a ComboBox1:
RowSource - oblast bunek urcuje zdrojova data - list1!a1:j4
ColumnCount - pocet sloupcu v rozbalenem seznamu - 10 ( data z A:J)
ColumnWidths - sirky sloupcu pro zobrazeni - 1 pt;0 pt;0 pt;0 pt;0 pt;0 pt;0 pt;0 pt;0 pt;49.95 pt - budou viditelne pouze hodnoty z J:J a po vyberu se zobrazi hodnota ze sloupce A:A, tj. zobrazi se hodnota z prveho sloupce nenulove sirky zleva (TextColumn ma hodnotu -1), experimentuj
BoundColumn - je poradove cislo sloupce, ze ktereho bude vracena vlastnost Value. Napr BoundColumn = 2 vrati hodnotu ze druheho sloupce vybraneho radku bez ohledu na zobrazeni, BoundColumn = 1 vrati hodnotu z prveho sloupce (a to je dulezite pro dalsi zpracovani vyberu) , napr:

Kód: Vybrat vše

Private Sub ComboBox1_Change()
  MsgBox ComboBox1.Value
End Sub

Doplneno:
TextColumn - urcuje, ktery sloupec bude po vyberu zobrazen:
-1 - prvni sloupec zleva, jehoz sirka je nenulova
0 - zobrazi hodnotu ListIndex: 0, 1, 2, ...
>0 - zadany sloupec