Check Box

Pomoč pri izdelavi makrov
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

Check Box

Odgovor Napisal/-a sonofagun »

Pozdravljeni.

Na sveže se lotevam oblikovanja Dialog Box-a in že sem naletel na prve težave... Problem (na kratko kolikor se da): s pomočjo makroja določim mapo, iz katere jemljem datoteke za nadaljnjo rabo. Zdaj bi pa želel, da se mi pokaže Dialog Box, ki bo imel vse datoteke iz te mape izpisane vsako s svojim Check Box-om, da jih lahko potem poljubno izberem. Podobno stvar bi lahko naredil tudi s tipko CTRL v oknu, kjer izberem mapo (dodal bi tudi možnost da izberem datoteke), vendar bi želel opisano možnost imeti na Dialog Box-u, saj bom tam imel tudi druge možnosti, pa tudi bolj pregledno se mi zdi.
Pa če še vprašam tudi malo bolj na splošno: kako lahko pripravim poljubno število check box-ov, če ne vem koliko bom imel podatkov (enkrat bi potreboval samo 2, drugič pa 15)?

Upam, da sem bil dovolj razumljiv.

Lep pozdrav
admin
Site Admin
Prispevkov: 3691
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Check Box

Odgovor Napisal/-a admin »

Se ne potrebujete ukvarjati s posameznimi 'CheckBox'-i. V te namene uporabite ListBox kontrolo in ji nastavite parametra:

Koda: Izberi vse

ListStyle = 1 (fmListStyleOption)
MultiSelect = 1 (fmMultiSelectMulti)
S tem boste dobili seznam, kjer bo imel vak element lastno kljukico.

Še konkretneje pa pri vas to pomeni, da boste imena datotek preprosto prebrali v ListBox in pred vsako datoteko se bo "magično" pojavil prostor za kljukico... :)
lp,
Matjaž Prtenjak
Administrator
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

Re: Check Box

Odgovor Napisal/-a sonofagun »

Hvala za odgovor.

Bom še malo poklikal okrog in okrog, pa da vidim kaj mi bo na koncu uspelo naštimat :-)

Lep pozdrav
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

Re: Check Box

Odgovor Napisal/-a sonofagun »

Zdravo.

Z napredovanjem zamišljenega makroja napredujem (koliko preprostih rešitev je na tem forumu :D ), imam pa eno vprašanje: za listbox mi je uspelo določit Rowsource (ki se spreminja v odvisnosti od izbrane mape), zdaj pa me zanima, če je možno velikost (višino in širino) listboxa samodejno prilagoditi vsebini oz. številu in dolžini elementov? Če je privzeta velikost listbox-a premala, lahko za izbiro elementov sicer uporabim drsnik... ampak raziskujem možnosti :)

lep pozdrav
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

Re: Check Box

Odgovor Napisal/-a sonofagun »

Ukaz "IntegralHeight = True" mi ne deluje. Ali ima to kakšno zvezo načinom izbire RowSource-a (nek obseg na listu)?
admin
Site Admin
Prispevkov: 3691
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Check Box

Odgovor Napisal/-a admin »

sonofagun napisal/-a: za listbox mi je uspelo določit Rowsource (ki se spreminja v odvisnosti od izbrane mape), zdaj pa me zanima, če je možno velikost (višino in širino) listboxa samodejno prilagoditi vsebini oz. številu in dolžini elementov?
Ne samodejno ne!
sonofagun napisal/-a: Ukaz "IntegralHeight = True" mi ne deluje. Ali ima to kakšno zvezo načinom izbire RowSource-a (nek obseg na listu)?
Ne to, ne deluje tako kot si verjetno predstavljate; torej da bi se List Box širil, če je besedila veliko...
lp,
Matjaž Prtenjak
Administrator
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

Re: Check Box

Odgovor Napisal/-a sonofagun »

OK, to torej odpade. Kaj pa če ListBox-u predpišem število vrstic, ki je enako številu vrstic v RowSource-u? To je izvedljivo?
admin
Site Admin
Prispevkov: 3691
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Check Box

Odgovor Napisal/-a admin »

sonofagun napisal/-a:To je izvedljivo?
Preizkusite :):)... Preprosto ni izvedljivo, saj je velikost ListBox-a definirana v točkah (Pixels) in ne v številu vrstic... Vi bi torej morali vedeti koliko točk je velika ena vrstica... Če se omejite na en sam fiksen nabor znakov (font), potem to niti ni tako težko... ;)
lp,
Matjaž Prtenjak
Administrator
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

Re: Check Box

Odgovor Napisal/-a sonofagun »

Sem malo poizkušall, pa stvar načeloma deluje (treba je pač videt kaj takšno spreminjanje prinese še za preostale elemente UserForm-a, ampak gre)... dodal sem še omejitev do katere bi lahko največ povečal ListBox (in tudi UserForm), ne glede na število elementov v RowSource-u. Tu je pa težava, saj mi v primeru, da je dosežena ta največja višina, le-to sicer sfiksira, ampak drsnika za elemente ListBox-a pa nikjer - torej ne morem dostopat do vseh elemenetov! :(

Koda: Izberi vse

z = Range("g65536").End(xlUp).Row

h1 = z * 14 + 120
    
    If h1 > 400 Then
    h1 = 400
    Else
    h1 = z * 14 + 120
    End If
    
h2 = (z - 1) * 14

    If h2 > 280 Then
    h1 = 280
    Else
    h2 = (z - 1) * 14
    End If

UserForm1.ListBox1.RowSource = ("g2:g" & z)
UserForm1.Height = h1
UserForm1.ListBox1.Height = h2
UserForm1.Show
Kje sem ga pihno mimo?
admin
Site Admin
Prispevkov: 3691
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Check Box

Odgovor Napisal/-a admin »

Hm... Ne vem kaj bi lahko naredili narobe. Moje mnenje je, da vidite vse podatke. Če namreč ListBox vsebuje preveč podatkov, avtomatično izriše drsnik?
lp,
Matjaž Prtenjak
Administrator
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

Re: Check Box

Odgovor Napisal/-a sonofagun »

Ne vem, (še) ne najdem logike (če mu ne določam neke "pogojne" višine, potem pa kaže drsnik!) :? Kako pa je na splošno z avtomatskim večanjem/manjšanjem pojavnega okna v makrojih? Ne poznam točno izraza, ampak se da ustvarit tisti mali trikotnik v spodnjem desnem kotu pojavnega okna, ki ga potem primemo in "raztegujemo" po želji? Če je pač kakšna možnost... drugače pa bom pač moral dati za ziher malo več prostora v listbox-u ali pa si pomagati s fiksno višino in drsnikom :|
http://picasaweb.google.com/lh/photo/iT ... directlink

lep pozdrav in hvala za vso pomoč
admin
Site Admin
Prispevkov: 3691
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Check Box

Odgovor Napisal/-a admin »

sonofagun napisal/-a:Kako pa je na splošno z avtomatskim večanjem/manjšanjem pojavnega okna v makrojih? Ne poznam točno izraza, ampak se da ustvarit tisti mali trikotnik v spodnjem desnem kotu pojavnega okna, ki ga potem primemo in "raztegujemo" po želji? Če je pač kakšna možnost...
Ne, na žalost to v VBA obrazcih ni mogoče - so fiksne širine... No razen, če vse to sprogramirate samo - potem je mogoče :)
lp,
Matjaž Prtenjak
Administrator
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

Re: Check Box

Odgovor Napisal/-a sonofagun »

Hm, mogoče pa :D Bo pa do takrat najbrž še kr nekaj vode preteklo :)

Lep pozdrav
cedra
Prispevkov: 264
Pridružen: Po Jul 25, 2005 11:11 pm
Kraj: Kamnik

Re: Check Box

Odgovor Napisal/-a cedra »

O tem je že bilo govora skoraj tri leta nazaj. Takrat sem napisal:
Morda kot zanimivost, ki vas bo verjetno zanimala! Pri brskanju na netu sem našel Excel zvezek, kjer je prikazano in tudi v VBA kodi opisano, kako se dodajajo gumbi za miniziranje, maksimiranje. In še nekaj drugih možnosti v zvezi z formo. Moje znanje je mnogo preskromno, da bi si vedel pomagati s tem, čeprav sem kar nekaj časa poskušal. :( Zadeva je vsaj zame preveč komplicirana.
Morda bi se Matjaž ali pa kdo drug ogledal zadevo in podal neko rešitev vsaj za miniziranje in maksimiranje forme, saj bi to večkrat prišlo prav.
Naj dam še link do strani, kjer se nahaja primer:


http://www.oaltd.co.uk/Excel/Default.htm

Pod VBA programming se nahaja datoteka z imenom "FormFun.zip" Po razpakiranju boste našli zvezek s primerom.
Lahko malo pregledate kodo, morda bo vam uspelo izluščiti kako rešitev. Jaz sem takrat obupal :oops:
Morda pa se bom kdaj spet lotil reševanja tega "problema"... :roll:
lp,

cedra
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

Re: Check Box

Odgovor Napisal/-a sonofagun »

Zanimivo. Imajo na tej spletni strani precej uporabnih stvari, samo ta omenjena koda pa je zeloooo preveč za mene :-) Tak daleč s svojim znanjem še nisem, pa tudi nikjer ne piše "Copy this code to editor" :-)
Mogoče velja pogledati še datoteko Resizer.zip, mislim da je malo manj zahtevna.
Je pa vse skupaj vsekakor izziv...

Lep pozdrav
Odgovori