Dodii, pientä onkelman tynkää liittyen Excel comboboxiin:
1. kolumnissa (vaikka T:T) löytyy läjä satamia, joissa on käyty, eli siellä voi olla jokin satama neljäkin kertaa ymsyms.
2. Käytän Comboboxia löytääkseni sataman, jossa ollaan käyty "jossakin vaiheessa", sisältö comboboxiin on haettu: (LIST FILL RANGE: T:T)
ONGELMA:
1. Haluaisin satamat lajiteltuna comboboxiin aakkosjärjestyksessä
2. Tuplat pois
3. Combobox listaa myös tyhjät solut, eli sisältöä on noin 2% listassa. Miten saan boxin poistamaan listalta tyhjät solut
4. Satamia tulee koko aika lisää, saako boxin updeittaamaan sen mukaan?
Kiitokset jo etukäteen vastauksen uhranneelle!
-Suht aloittelija vielä
Teet ensin listan, jossa tarkistelet, että nuo ehdot toteutuvat ja siiten vasta teet sen listan perusteella comboboxin.
Tuo ei ihan vastannut kysymykseen, niitten tyhjien rivien poisto? Aakkosjärjestys? Ja tuola menetelmällä se on jo työläämpää päivittää kolumneja kuin käyttää itse työkirjaa..
Siis luot listan. Tarkistat, että onko listan soluun kirjoitettu mitään. Poistat solun jos ei. Siirrät soluja aakkosjärjestykseen(tätä algoritmia voi optimoida mukavasti). Tarkistat, että onko kahta samaa(ne ovat nyt vierekkäin). Muodostat listan pohjalta comboboxin. Ei tuohon mene edes minuuttia.
Visual basicilla ymmärtääkseni tuo pitäisi järjestyä suht yksinkertaisella kirjoittamisella, sitä siis tässä ajan takaa, että oppisi sitä kuuluisaa koodaamistakin :) Ja siinä on sellainenkin pikku mutka, että muutkin käyttävät tätä exceliä kun itse olen lomalla, ja he eivät tiedä puoliakaan verrattuna omaan vaatimattomaan taitooni excelin käytössä, ja en siis haluaisi joka kerta töihin tullessani siivota heidän aiheuttamia sotkuja..
Siis tarkoitin että luot ohjelman, joka tekee yllä mainitut asiat.
Tarkoitatko, että samaa exel taulukkoa? Jos niin, niin voit tehdä ohjelman, joka lisää sen automaattisesti taulukon loppuun. esim. painaa nappulaa ja lukee arvon solusta ja lisää sen taulun loppuun.
Jos tarkoitit, että samaa exel ohjelmaa, niin saat kertoa lisää ongelmasta.
SIinähän se kun ohjelmia en osaa luoda =)
Joo k.o. tiedot ovat siis Excelissä, ja käyttäen excelin visual basic editoria pitäisi k.o. homma ratketa.
Satamat ovat käyntijärjestyksessä kolumnilla D:D (List fill range) ja tuota listaa käyttäen satamat pitäisi saada Comboboxiin aakkosjärjestysessä, ja ilman tyhjiä soluja, eli kun comboboxin listaa vierittää alaspäin, tulee boxiin tyhjää (eli ne loput 30000 tyhjää solua).
Ymmärtääkseni combobox pystyy lajittelemaan listan, ja poistamaan tyhjät solut..
Oliko tämä yhtään selkeämpi =)
Googlesta löytyy useita apuja hakusanoilla:
combobox empty
combobox alphabetical
Sitten vain lisäksi silmukka, joka käy läpi kaikki alkiot ja poistaa jos vieressä on samanlainen.
Siis se menee jotenkin näin:
Private Sub ComboBox1_Change()
..jotain jotain...sort.SortFields.Clear ..jotain jotain...sort.SortFields.Add Key:=Range("T1"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal jotain.sort .SetRange Range("T1:T136") .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Columns("T:T").Select ActiveSheet.Range("$T$1:$T$136").RemoveDuplicates Columns:=1, Header:=xlNo End Sub
Googlesta on etitty , myös ehdottamillasi vinkeillä eikä siellä löydy ku perus höpöhöpöä..
Mod. lisäsi kooditagit
Aihe on jo aika vanha, joten et voi enää vastata siihen.