Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Duplikati u ComboBox-u

[es] :: Office :: Excel :: Duplikati u ComboBox-u

[ Pregleda: 2496 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

neptuncokg
Predrag M
racunovodja
Kragujevac

Član broj: 230353
Poruke: 326
93.86.110.*



+9 Profil

icon Duplikati u ComboBox-u27.12.2009. u 13:28 - pre 173 meseci
Rešio sam da se obračunam sa svim problemima vezanim za UserForm i vezu sa excelom. Dakle:
ComboBox(cmb1) vuče podatke iz Sheeta "BAZA" (A2:A6). To su nazivi - imena i prezimena. Klikom na ime iz padajuće liste cmb1 - u txt1 i txt2 se upisuju podaci iz kolona "B" i "C" - telefon i mesto. Kao vlookup u excelu. Problem je sledeći: Ako se u kolini NAZIV (pa samim tim i u cmb1) nađu dva, tri i više ISTIH imena (npr. dva Petra Petrovića), koji imaju različite telefone i različita mesta i različite pozicije u listi, u txt1 i txt2 se upisuju podaci - telefon i mesto SAMO PRVOG nađenog naziva. I to bez obzira što se klikne na drugi ili treći naziv-duplikat. Evo procedure koja to reguliše:

Private Sub cmb1_Click()
Dim qx As Variant
qx = cmb1.Text
On Error GoTo errHandle
txt1.Text = Sheets("baza").Range("A1").Offset(Application.WorksheetFunction.Match(qx, Sheets("baza").Range("A2:A200"), 0), 1)
txt2.Text = Sheets("baza").Range("A1").Offset(Application.WorksheetFunction.Match(qx, Sheets("baza").Range("A2:A200"), 0), 2)
Exit Sub
errHandle:
txt1.Value = ""
txt2.Value = ""
End Sub

Svakako treba da se izmeni, ili dopiše, ali šta? U prilogu je kompletan primer. Hvala unapred i pozdrav svim ljubiteljima excela i VBA.
Prikačeni fajlovi
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2267
*.3dnet.co.yu.

Sajt: www.gowi.rs


+109 Profil

icon Re: Duplikati u ComboBox-u28.12.2009. u 22:20 - pre 173 meseci
Match funkcija nalazi prvo pojavljivanje zadatog teksta u nizu i zato ti se dešava kao što si opisao.

Rešenje je veoma jednostavno uz drugačije korišćenje combo boxa

Combo box možeš popuniti sa sve tri kolone. U svojstvima ComboBoxa
1/ U svojstvu Row Source navedi opseg A1:C6 umesto A1:A6
2/ Column Count stavi 3
3/ Column Width stavi neke pogodne širine za sve prikaz tri kolone u padajućoj listi npr. 90 pt;20 pt;40 pt
4/ Bound column ostaje 1 to je vrednost koju uzima Combo box

Sada kad izabereš neku od vrednosti iz Combo boxa lako možeš preuzeti i vrednosti iz ostalih kolona
Me.cmb1.Column(1) - daje odgovrajuću vrednost iz druge kolone (B1:B6)
Me.cmb1.Column(2) - daje odgovarajuću vrednost iz treće kolone (C1:C6)

Na taj način ne samo da rešavaš problem nego i je korisniku jasnije šta je izabrao iz padajuće liste - ovako kad ima dve iste vrednosti bez dodatnih informacije malo je konfuzno.

Nije to loše Rembrante, samo što ne bi dodao još malo boje?
Prikačeni fajlovi
 
Odgovor na temu

neptuncokg
Predrag M
racunovodja
Kragujevac

Član broj: 230353
Poruke: 326
91.150.122.*



+9 Profil

icon Re: Duplikati u ComboBox-u29.12.2009. u 00:20 - pre 173 meseci
Zaista šteta što ranije nisam postavio ovo pitanje. Silno vreme sam izgubio deklarišući promenljive i praveći vezu cmb-baza, baza-txt, i tako u krug - sve sa offset i match-om. Znao sam za opciju više kolona u comboboxu, i koristio sam to, ali zaobilazno, preko pomoćnih txt-ova koja sam vezivao samo za column(3) gde sam stavljao redni broj, kao "link" polje. Ispred nosa mi je bila ova "direktna veza" cmb-txt, ali je jednostavno nisam video. Sad me čeka prerada jedno desetak procedura na "isti kalup". Taman ću da uvežbam, za kaznu... H v a l a ! Pozdrav.
 
Odgovor na temu

Ivek33

Član broj: 66174
Poruke: 2898



+66 Profil

icon Re: Duplikati u ComboBox-u29.12.2009. u 18:33 - pre 173 meseci
Citat:
neptuncokg:Silno vreme sam izgubio deklarišući promenljive i praveći vezu cmb-baza, baza-txt, i tako u krug - sve sa offset i match-om. Znao sam za opciju više kolona u comboboxu, i koristio sam to
Pitam se onda, zašto ići sa upotrebom Form i VBA ?
Negdje na forumu sam pročitao da treba izbjeći VBA koliko se god može
I meni se čini jednostavniji ComboBox kako si krenuo a i u mom attachu ( uz sortiranje imena ).
Osim ako mora biti Form pa je rješenje od @Jpece pravo rješenje





pozdrav
Prikačeni fajlovi
 
Odgovor na temu

neptuncokg
Predrag M
racunovodja
Kragujevac

Član broj: 230353
Poruke: 326
91.150.122.*



+9 Profil

icon Re: Duplikati u ComboBox-u29.12.2009. u 22:58 - pre 173 meseci
Ne treba biti izričit u odluci - forma ili ne. Upravo sam ja citirao na forumu instruktora sa "Praktikuma" u delu - "... gde god možeš da izbegneš VBA, ti ga izbegni". Naravno da to ne treba shvatiti bukvalno. Jeste jednostavnije uraditi nešto u excelu, nego u VBA (ako je moguće), ali vizuelni efekat, ozbiljnost, pa često i mogućnosti su svakako na strani forme. Uostalom, naš "excel nasušni" je ipak program za rad sa tabelama. To što ga neki od nas (i sebe tu ubrajam) koriste i za druge stvari (rad sa bazama, objektno programiranje i sl.), ja bih pripisao nedostatku znanja iz drugih programa (Acces, C#, Java...). Dobro, ne mislim da svi treba da budemo pravi programeri, ali često dođem u situaciju da me isprave kad kažem "...Programiranje u excelu". Oni baš zlobni to zovu - tabeliranje. Kad je reč o mom slučaju, na žalost, osim excela i VBA nemam nikakva programerska iskustva (ne računajući malo DOS-a i CLIPPER-a). A kako stoje stvari, mislim da će tako i ostati. I na kraju, ako moram da izaberem, - COMBOBOX u formi, ili na sheetu ? Pa, i jedno i drugo, ali forma ipak ima one privlačne plavo-belo-sive (neodoljive) kontraste. Hvala na odgovoru. Pozdrav.
 
Odgovor na temu

[es] :: Office :: Excel :: Duplikati u ComboBox-u

[ Pregleda: 2496 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.