Eli tällainen ongelma.
Onnistun lähettämään taulukosta 1 tiettyjä solun arvoja taulukkoon 2 MUTTA kun arvot on lähetetty ja palataan taulukkoon yksi niin pitäisi palauttaa yhden solun arvoksi alkuperäinen lista josta käyttäjä on valinnut 2:desta vaihtoehdosta toisen.
Eli ongelmana on tuon solun palautuminen alkuperäiseen muotoonsa (lista). Kuinkas se onnistuu, olisiko esim Kundella ratkaisua asiaan ?
Ajatellaan vaikka että lista sijaitsee taulukossa 1 solussa F11
VBA ongelma
15
442
Vastaukset
en tajunnut pätkääkään...
- kapoo
Eli Taul1:sessä solut A11 A12 on tyhjiä soluja joihin käyttäjä asettaa jonkun numeroarvon esim 1. Sitten solussa A13 on lista joka pitää sisällään kaksi vaihtoehtoa (Avoinna ja suljettu). Käyttäjä valitsee toisen vaihtoehdon listasta.
Näin solujen arvoksi tulee esim. 1 1 Suljettu
Makro vie ylläolevat arvot toiseen välilehteen esim Taul2:seen ja paluttaa ylläolevat solut tyhjiksi. Eli kaikki toimii hyvin muuten mutta kun tuo solu A13 jossa lista on pitäisi palautua takaisin samanlaiseksi listaksi kuin se olikin eikä tyhjäksi soluksi.
Sori jos hiukan sekavasti selitän mutta VBA on hiukan vielä hakusessa :) kapoo kirjoitti:
Eli Taul1:sessä solut A11 A12 on tyhjiä soluja joihin käyttäjä asettaa jonkun numeroarvon esim 1. Sitten solussa A13 on lista joka pitää sisällään kaksi vaihtoehtoa (Avoinna ja suljettu). Käyttäjä valitsee toisen vaihtoehdon listasta.
Näin solujen arvoksi tulee esim. 1 1 Suljettu
Makro vie ylläolevat arvot toiseen välilehteen esim Taul2:seen ja paluttaa ylläolevat solut tyhjiksi. Eli kaikki toimii hyvin muuten mutta kun tuo solu A13 jossa lista on pitäisi palautua takaisin samanlaiseksi listaksi kuin se olikin eikä tyhjäksi soluksi.
Sori jos hiukan sekavasti selitän mutta VBA on hiukan vielä hakusessa :)jos solussa A13 on kelpoisuusehtona lista, jossa 2 jäsentä Avoinna ja Suljettu
Koodin pätkä Range("A11:A13").ClearContents tai Range("A11:C13") = "" tyhjentää solut
Ja kun solua A13 klikkaa niin valinnat(Avoinna ja Suljettu) on käytössä.
Mitenkäs se "lista" on tehty soluun A13?
Keep EXCELing
@Kunde- kapoo
kunde kirjoitti:
jos solussa A13 on kelpoisuusehtona lista, jossa 2 jäsentä Avoinna ja Suljettu
Koodin pätkä Range("A11:A13").ClearContents tai Range("A11:C13") = "" tyhjentää solut
Ja kun solua A13 klikkaa niin valinnat(Avoinna ja Suljettu) on käytössä.
Mitenkäs se "lista" on tehty soluun A13?
Keep EXCELing
@Kunde"Lista" on tehty näin
Soluissa AN15 ja AN16 on "Avoinna" ja "Suljettu" teksti. Sitten kelpoisuustarkistuksen kautta listan teko tuohon kyseiseen A13 soluun.
Oisko listan tekoon ollut parempi tapa tuolla vba puolella ? Periaatteessa kuinka lista on tehty ei ole merkitystä minulle. Kunhan tuo teksti vain on siinä. Tekstin pohjaväri "Avoinna" täytyy olla punainen että se erottuu joukosta. "Suljettu" tekstin pohjaväri voi olla se perusvalkoinen. - Kapoo
kapoo kirjoitti:
"Lista" on tehty näin
Soluissa AN15 ja AN16 on "Avoinna" ja "Suljettu" teksti. Sitten kelpoisuustarkistuksen kautta listan teko tuohon kyseiseen A13 soluun.
Oisko listan tekoon ollut parempi tapa tuolla vba puolella ? Periaatteessa kuinka lista on tehty ei ole merkitystä minulle. Kunhan tuo teksti vain on siinä. Tekstin pohjaväri "Avoinna" täytyy olla punainen että se erottuu joukosta. "Suljettu" tekstin pohjaväri voi olla se perusvalkoinen.Sori Kunde !
Idiootti kysyy kysymyksiä ennenkuin kokeilee kunnolla. Homma toimii vallan mainiosti vaikka .ClearContents käyttääkin. Oletin tyhmyyksissäni että tuo sana poistaa listan solusta. Tyhmä minä !!!!
Mutta kiitos kuitenkin .
Kyselin tuolla Visual basic puolella neuvoa myös toiseen ongelmaan johon en ole saanut vastausta oisko sulla tietoa asiasta?
Eli haluaisin soluun A11 ja sellaisen jutun että jos käyttäjä kirjoittaa jotain lauseita siihen niin ne aina tulisi siihen isoilla kirjaimilla. Ja vastaavasti A12 sellainen että aina ensimmäinen kirjain lauseessa olisi iso.
Kiitos jos jaksoit lukea näinkin pitkälle =) Kapoo kirjoitti:
Sori Kunde !
Idiootti kysyy kysymyksiä ennenkuin kokeilee kunnolla. Homma toimii vallan mainiosti vaikka .ClearContents käyttääkin. Oletin tyhmyyksissäni että tuo sana poistaa listan solusta. Tyhmä minä !!!!
Mutta kiitos kuitenkin .
Kyselin tuolla Visual basic puolella neuvoa myös toiseen ongelmaan johon en ole saanut vastausta oisko sulla tietoa asiasta?
Eli haluaisin soluun A11 ja sellaisen jutun että jos käyttäjä kirjoittaa jotain lauseita siihen niin ne aina tulisi siihen isoilla kirjaimilla. Ja vastaavasti A12 sellainen että aina ensimmäinen kirjain lauseessa olisi iso.
Kiitos jos jaksoit lukea näinkin pitkälle =)ko. taulukon moduuliin...
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A11")) Is Nothing Then
Range("A11") = UCase(Range("A11"))
End If
If Not Intersect(Target, Range("A12")) Is Nothing Then
Range("A12") = StrConv(Range("A12"), vbProperCase)
End If
End Sub
Keep EXCELing
@Kunde
- Kapoo
Kiitos kunde ! Kokeilen koodirivistöä kun pääsen oikealle tietokoneelle. Mutta eiköhän tuo luulis toimivan.
P.s Liityin päiviä sitten kundepuu palstaan mutta kun mailiin tulee aktivointi viesti ja linkki jota painaa se vie palstan sivuile ja ilmoittaa tilin olevan inactive =(Sorry mun webbisivut päivittämättä muitten kiireiden takia. Yritän saada ne ajan tasalle keväämmällä ilmoittelen sitten...
- kapooo
kunde kirjoitti:
Sorry mun webbisivut päivittämättä muitten kiireiden takia. Yritän saada ne ajan tasalle keväämmällä ilmoittelen sitten...
koodi toimii hyvin tuollaisenaan
Kokeilin muuttaa koodia sen verran että isoilla kirjoitettu olisikin kahdessa solussa esim A11 ja A12 ja tuo toinen vaihtoehto olisi myös kahdessa solussa A13 ja A14
Ei ainakaan näin toimi mitä yritin...
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A11, A12")) Is Nothing Then
Range("A11, A12") = UCase(Range("A11,A12"))
End If
If Not Intersect(Target, Range("A13, A14")) Is Nothing Then
Range("A12") = StrConv(Range("A13, A14"), vbProperCase)
End If
End Sub kapooo kirjoitti:
koodi toimii hyvin tuollaisenaan
Kokeilin muuttaa koodia sen verran että isoilla kirjoitettu olisikin kahdessa solussa esim A11 ja A12 ja tuo toinen vaihtoehto olisi myös kahdessa solussa A13 ja A14
Ei ainakaan näin toimi mitä yritin...
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A11, A12")) Is Nothing Then
Range("A11, A12") = UCase(Range("A11,A12"))
End If
If Not Intersect(Target, Range("A13, A14")) Is Nothing Then
Range("A12") = StrConv(Range("A13, A14"), vbProperCase)
End If
End SubPikku viilausta ....
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A11:A12")) Is Nothing Then
Target = UCase(Target)
End If
If Not Intersect(Target, Range("A13: A14")) Is Nothing Then
Target = StrConv(Target, vbProperCase)
End If
End Sub
Keep EXCELing
@Kunde
- kapoo
Argh melkein toimii =)
Isolla kirjoitetut toimii mut tuo toinen ei. Koodi tekee nyt sellaisen jutun että jokainen sana alkaa isolla. Ei ainoastaan pisteen jälkeen.
Noh eiköhän netistä löydy ratkaisu tuohon pieneen ongelmaan.
Kiitos !pilkun jälkeen iso kirjain- harmaita hiuksia tuotti, mutta eiköhän toi nyt aika lähellä totuutta... -;)
käytin tota WorksheetFunction.Trim(lause(i)) tossa, jotta se poistaa kaikki ylimääräisetkin välilyönnit lauseesta...
Dim lause As Variant
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A11:A12")) Is Nothing Then
Target = UCase(Target)
End If
If Not Intersect(Target, Range("A13: A14")) Is Nothing Then
lause = Split(Target, ".")
For i = 0 To UBound(lause)
lause(i) = WorksheetFunction.Trim(lause(i))
If Len(lause(i)) > 0 Then lause(i) = UCase(Left(lause(i), 1)) & Mid(lause(i), 2)
Next
Target = Join(lause, ". ")
End If
End Sub
Keep EXCELing
@Kunde
- kapoo
Kiitos kunde! Koodi toimii hienosti .
- kapoo
Pikkasen takapakkia. Koodi toimii hienosti kun tekstiä syötetään mutta heti kun makrolla lähetän tiedot toiselle välilehdelle tulee "run time 13 error Type miss match" Ja viitataan kohtaan " Target = UCase(Target) " Eli 4 riviin tuossa yläpuolella.
Voi rähmän rähmä sanon minä. Olikin liian kauon hyvä fiilis =(TArgettia voit käyttää vain taulukon tapahtumakoodissa
jos siirrät tietoa taulukosta toiseen niin esim.
Range("Taul2!A2")= Ucase( Range("Taul1!A2"))
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Eutanasia - miksi eläimelle sallitaan armokuolema, mutta ihmiselle ei?
Olen pitkään ihmetellyt yhtä asiaa Suomessa. Kun koira kärsii parantumattomasta sairaudesta ja kovista kivuista, eläinlä3211566Veli Sofia teki urosmehiläisen työn
Paljastaessaan kuinka TPS:ssä ei joukkuehenki toimi sooloilijoiden vuoksi, jonka takia koko seura ei pärjää kilpailussa614151Unisex-vessat
Ahdistaa. Miksi kaikki pitää tasapäistää tasa-arvon nimissä? Tasa-arvo on sitä, että kunnioitetaan sukupuolien erilaisu1443429Sosiaalidemokratia romahtanut kautta maailman
nuoret eivät enää kannata järjetöntä aatetta, joten demarien täytyy hakea kannattajia mamuista. Ruotsin sos.demit jo kie2282718Miksi Seta ja Sofia Virta ei vaadi muslimeita kunnioittamaan priden-arvoja?
Kuten tiedetään niin islam ei hyväksy sitä mitä pride edustaa. Seta-pomo Mikkonen nosti hirveän äläkän kun yksi tepsin1322436Vastuun ottaminen omasta hyvinvoinnista
Olen huomannut tuttavapiirissäni ihmisiä, joilla on mt-diagnooseja. Sen sijaan, että millekään asialle yritettäisiin teh2061909Sanna Marin vetänyt leukoja 11 kertaa
Tästähän oli joskus polemiikkia, kun muistaakseni lupasi kymmenen tai jotain vedellä. No nyt niin on, ainakin omien san61542Sofia Virralle täydet 12 pistettä!
Kun ei jäänyt mukaan vähemmistöjen sortamista epäsuorasti tukevaan joukkueeseen. Urheilijoiden pitäisi olla esikuvia.3521296- 711125
Miksi Hotelli Kainuuta dissataan?
Ihmetyttää tämä jatkuva yhden yrityksen arvosteleminen. Ikäänkuin mikään ei olisi hyvin. Kuitenkin yritys työllistää, ta20977