Terve,
Minulla on VBA:lla koodattuna ohjelmaa ja eräässä Formissa on Listbox ja kolme OptionButtonia. ListBoxiin tulee näkyviin luonnollisesti lista ja Optionbuttoneilla valitaan "Lisää", "Muokkaa" tai "Poista".
Jos valitsen OptMuokkaa eli "Muokkaa" ja sen jälkeen ListBoxixta muokattavan asian ja tämän jälkeen tulenkin toisiin aatoksiin ja valitsenkin OptPoista eli "Poista", niin miten saan ListBoxissa säilymään sen kohteen valittuna joka oli valittuna kun OptMuokkaa oli valittuna?
Sitten vielä toinenkin kysymys:
Jos täytän Listboxin .AddItem -käskyllä, niin voin poistaa sieltä rivin .RemoveItem -käskyllä taikka tyhjentää koko listan .Clear -käskyllä, mutta jos käytän listan täyttämiseen Excelin nimettyä aluetta ja .RowSource -käskyä, niin kumpikaan .RemoveItem eikä .Clear oikein pure. Millä listan saa tyhjäksi jos se on täytetty RowSource -käskyllä?
-Pasi-
Listboxin valinnan säilyminen
4
588
Vastaukset 4
- Kunde
ekaan mahdoton vastata tietämättä koodiasi ja jälkimmäinen on helppo
Listbox1.RowSource=""- Pasi
Olipas tosiaankin helppo homma tuo listan tyhjennys. Tässä hieman koodia (jossa lista on täytetty hiaman vaikeammalla tavalla kuin .RowSource jne.):
Private Sub UserForm_initialize()
' Täytetään ComboBox ja valikot
OptMuuntaja20_1_Click
OptMuuntajaLisää_Click
CboMuuntajaRyhmä.AddItem "Dyn"
CboMuuntajaRyhmä.AddItem "Yzn"
End Sub
Private Sub OptMuuntaja20_1_Click()
' Tyhjennetään muuntajalista ja haetaan siihen 20/1 kV muuntajat
Dim Rivinumero As Integer
LstMuuntajat.Clear
Cells.Find(What:="20 / 1 kV muuntajat", After:=Range("B6"), LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Activate
Rivinumero = ActiveCell.Row 2
While Cells(Rivinumero, 2).Value ""
LstMuuntajat.AddItem Cells(Rivinumero, 2).Value
Rivinumero = Rivinumero 1
Wend
End Sub
Private Sub OptMuuntaja1_04_Click()
' Tyhjennetään muuntajalista ja haetaan siihen 1/0,4 kV muuntajat
Dim Rivinumero As Integer
LstMuuntajat.Clear
Cells.Find(What:="1 / 0,4 kV muuntajat", After:=Range("B6"), LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Activate
Rivinumero = ActiveCell.Row 2
While Cells(Rivinumero, 2).Value ""
LstMuuntajat.AddItem Cells(Rivinumero, 2).Value
Rivinumero = Rivinumero 1
Wend
End Sub
Private Sub OptMuuntaja20_04_Click()
' Tyhjennetään muuntajalista ja haetaan siihen 20/0,4 kV muuntajat
Dim Rivinumero As Integer
LstMuuntajat.Clear
Cells.Find(What:="20 / 0,4 kV muuntajat", After:=Range("B6"), LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Activate
Rivinumero = ActiveCell.Row 2
While Cells(Rivinumero, 2).Value ""
LstMuuntajat.AddItem Cells(Rivinumero, 2).Value
Rivinumero = Rivinumero 1
Wend
End Sub
Private Sub OptMuuntajaLisää_Click()
' Aktivoidaan sarakkeita kun toiminnoksi valitaan "Lisää"
Sub_tyhjennäMuuntajaArvot
LstMuuntajat.ForeColor = &H80000011
LstMuuntajat.Enabled = False
LblMuuntajaHakunimi.Enabled = True
TxtMuuntajaHakunimi.Enabled = True
TxtMuuntajaHakunimi.SetFocus
End Sub
Private Sub OptMuuntajaMuokkaa_Click()
' Aktivoidaan sarakkeita kun toiminnoksi valitaan "Muokkaa"
Sub_tyhjennäMuuntajaArvot
LstMuuntajat.ForeColor = &H80000006
LstMuuntajat.Enabled = True
LblMuuntajaHakunimi.Enabled = False
TxtMuuntajaHakunimi.Enabled = False
LstMuuntajat.SetFocus
End Sub
Private Sub OptMuuntajaPoista_Click()
' Aktivoidaan sarakkeita kun toiminnoksi valitaan "Poista"
Sub_tyhjennäMuuntajaArvot
LstMuuntajat.ForeColor = &H80000006
LstMuuntajat.Enabled = True
LblMuuntajaHakunimi.Enabled = False
TxtMuuntajaHakunimi.Enabled = False
LstMuuntajat.SetFocus
End Sub
Private Sub LstMuuntajat_Change()
' Haetaan valitun muuntajan arvot näkyviin
Dim MuuntajaTyyppi As String, Rivinumero As Integer, EtsittäväMuuntaja ' As String
If OptMuuntaja20_1 = True Then MuuntajaTyyppi = "20 / 1 kV muuntajat"
If OptMuuntaja1_04 = True Then MuuntajaTyyppi = "1 / 0,4 kV muuntajat"
If OptMuuntaja20_04 = True Then MuuntajaTyyppi = "20 / 0,4 kV muuntajat"
Cells.Find(What:=MuuntajaTyyppi, After:=Range("B6"), LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Activate
Rivinumero = ActiveCell.Row
EtsittäväMuuntaja = LstMuuntajat.Value
Cells.Find(What:=EtsittäväMuuntaja, After:=Cells(Rivinumero, 2), LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Activate
Rivinumero = ActiveCell.Row
CboMuuntajaRyhmä.Value = ""
TxtMuuntajaHakunimi.Value = Cells(Rivinumero, 2).Value
TxtMuuntajaSn.Value = Cells(Rivinumero, 3).Value
TxtMuuntajaP0.Value = Cells(Rivinumero, 4).Value
TxtMuuntajaPk.Value = Cells(Rivinumero, 5).Value
TxtMuuntajaZk.Value = Cells(Rivinumero, 6).Value
TxtMuuntajaRk.Value = Cells(Rivinumero, 7).Value
TxtMuuntajaXk.Value = Cells(Rivinumero, 8).Value
TxtMuuntajaZ0.Value = Cells(Rivinumero, 9).Value
TxtMuuntajaR0.Value = Cells(Rivinumero, 10).Value
TxtMuuntajaX0.Value = Cells(Rivinumero, 11).Value
End Sub
Sub Sub_tyhjennäMuuntajaArvot()
' Tyhjennetään muuntajan sähköisten arvojen kentät
CboMuuntajaRyhmä.Value = Empty
TxtMuuntajaHakunimi.Value = Empty
TxtMuuntajaSn.Value = Empty
TxtMuuntajaP0.Value = Empty
TxtMuuntajaPk.Value = Empty
TxtMuuntajaZk.Value = Empty
TxtMuuntajaRk.Value = Empty
TxtMuuntajaXk.Value = Empty
TxtMuuntajaZ0.Value = Empty
TxtMuuntajaR0.Value = Empty
TxtMuuntajaX0.Value = Empty
End Sub
Formin yhdessä Framessa on siis Optionbuttonit "OptMuuntajaLisää", "OptMuuntajaMuokkaa" ja "OptMuuntajaPoista" sekä Listbox "LstMuuntajat". Samassa Framessa on lisäksi Label "LblMuuntajaHakunimi" sekä TextBox "TxtMuuntajaHakunimi"
"OptMuuntaja20_1", "OptMuuntaja1_04" ja "OptMuuntaja20_04" ovat toisessa framessa ja "TxtMuuntajaSn" jne ovat kolmannessa framessa.
Excel-taulukossa on lista muuntajista ja niiden sähköisistä arvoista joita haetaan (ja tarkoitus on muokata).
Kun valitsen esimerkiksi "Muokkaa" ja sen jälkeen jonkun muuntajan ListBoxista, tulevat muuntajan sähköiset arvot näkyviin. Tämän jälkeen jos valitsenkin "Poista", niin haluaisin että äsken ListBoxixta valittu muuntaja säilyisi valittuna. - Pasi
taikasanasta .ListIndex
- Kunde
Pasi kirjoitti:
taikasanasta .ListIndex
voisit nimetä muuntajan nimen sisältävän solun esim. "20 / 1 kV muuntajat" ja käyttää seuraavaa koodia sitten
olettaen että sulla on muuntajan nimet B sarakkeessa ja aina yhtenäisellä alueella muuntajittain ja tyhjä rivi välissä seuraavan muuntajan tietoihin
Dim rarray As Variant
rarray = Range("20 / 1 kV muuntajat").CurrentRegion
With Me.LstMuuntajat
.List() = rarray
.ListIndex = 0
End With
TxtMuuntajaSn = LstMuuntajat.List(LstMuuntajat.ListIndex, 1)
TxtMuuntajaP0 = LstMuuntajat.List(LstMuuntajat.ListIndex, 2) jne...
toi on aika mukava keino ja nopea
;-)Kunde
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Mikä on totta mikä ei?
Onko juoru vai ei että nimeltä mainitsematon henkilö on tehnyt naiselle/naisille jotain joka on väärin?231335Viesti sinulle
Tiedät että tunteet ja ajatukset ja meillä on vahva yhteys mistä molemmat tiedetään. Odotan sinua ☀️601173- 82921
Mitä sinulle on tapahtunut lapsena
Kun olet noin sairas päästäsi? Pikkupojalle ( Miehen kehossa)105894Haluan purkaa vielä tuntemuksia
Tykkään sinusta kovin paljon❤️ olen surullinen tilanteestasi ja siitä mitä me olemme yhdessä joutuneet kokemaan. Tämä ei21777Persujen Puhoksen retki
Perussuomalaiset olivat tehneet turistibussimatkan Puhokseen. Tosin raukat olivat niin peloissaan, etteivät uskaltaneet257729- 120705
Tunteiden käsittely kertoo ihmisestä.
Kun puhutaan "tavallisesta" ihmisestä, joka on suht tasapainoinen eläjä, niin puhutaan oikeastaan taitavasta tunteiden k210679- 62668
- 100606
Jopa poliisi nauraa paskaista pelkuripersuille
Puhoksessa jäi "isänmaantoivot" bussiin vapisemaan :-D https://www.is.fi/politiikka/art-2000012319632.html286563Just saying
Mies joka antaa naiselle turvallisen olon, on seksikäs. Ei kieroja kikkoja ja haluaa olla vain sen yhden naisen mies.104518- 9510
Pilkettä sunnuntain silmässä
😉 Jos tästä ketjusta löytyisi yksi ihminen, joka saisi sut hymyilemään tänään… Millainen hän olisi? Ei tarvitse kerto73481- 34455
- 39454
- 47440
Oliko Jani Halmeen aika jo tippua TTK:sta?
Jani Halme ja Claudia Ketonen joutuivat jättämään TTK:n. Halme ja Ketonen saivat viimeiseksi jäänestä tanssista, sambas23427Päivän aivopieru Trumpilta
Trump julisti sodan hyttysiä vastaan. Myös punkit ovat Trumpin sodan kohteena. Eikö vieläkään USA:n kansa tajua tuon uko45423Aika on tuonut järkeä
Sä et tiedä musta kaikkea. Jos tietäisit, ymmärtäisit, miksi me ei sovita yhteen. Öljy ja vesi. En mä ole valehdellut,42423