Sarakkeiden kopiointi makrolla Libre Office Calcilla

Öynappi

Koitin tehdä Libre Officella makroa, joka kopioisi sarakkeesta B valitut tiedot sarakkeiden E ja F väliin luotavaan uuteen sarakkeeseen ilman kaavoja.

Makro toimii jos leikepöytä on alunperin tyhjä, tai sisältää sarakkeen B tiedot, mutta jos leikepöydällä sattuu olemaan valmiiksi muuta tietoa, niin ne kopioituvat uuteen sarakkeeseen haluttujen tietojen sijaan.

En oikein ymmärrä, miten yksinkertainen copy-paste käsky voi yhdessä tapauksessa toimia, mutta toisessa ei. Olen yrittänyt kiertää ongelmaa niinkin, että laittaisin makron tyhjentämään leikepöydän ennen suoritusta, mutta sekään ei tunnu onnistuvan.

Voisiko joku kertoa ratkaisun tähän ongelmaan, tai yleisemminkin että miten makron saisi toimimaan juuri niin kuin se nauhoitetaan? Myöskin koko sarakkeen kopiointi sellaisenaan kelpaisi ratkaisuksi, kunhan kaavat eivät siirry mukana.

5

266

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Öynappi

      Noniin, ongelma alkaa vähän selkiintyä. Nimittäin vika ei olekaan itse makrossa, vaan painonapissa jonka pitäisi suorittaa ko. makro.

      Eli ongelma muuttuikin muotoon: Miksei ohjausobjekti suorita makroa normaalisti?

    • ...

      Numeroiden kopiointi käyttämättä leikepöytää

      sub kopy
      Sheet = ThisComponent.Sheets.getByName("Luvut")
      oRange = Sheet.getCellRangeByName("B1:B100")
      oRanges = ThisComponent.createInstance("com.sun.star.sheet.SheetCellRanges")
      oRanges.insertByName("", oRange)

      oCells = oRanges.getCells()
      oEnum = oCells.createEnumeration()
      rivi=0
      Do while oEnum.hasMoreElements()
      oCellRef = oEnum.nextElement()
      Sheet.getCellRangeByName("Q"&rivi 1).setvalue(oCellRef.value)
      rivi = rivi 1
      Loop
      end sub

    • Öynappi

      Kiitoksia vastauksesta.

      En tuota kyllä toimimaan saanut, vaikka suoraan kopioin. Ymmärsin kyllä idean ja niinhän se varmaan olisi fiksuinta toteuttaakin, mutta käyttökokemus kun on sitä luokkaa, että makron nyt jotenkin osaan nauhoittaa ja koodista ymmärrän ihan hiukan, niin en sitä sitten sen kummemmin osannut soveltaa.

      Ja edelleenkin suuri kysymysmerkki on tuossa ohjausobjektissa ja leikepöydän käytössä. Sama vika nimittäin toistui toisessakin makrossa jota koitin tehdä. Tarkoitus oli kopioida viidestä eri puolilla sijaitsevasta solusta tiedot siististi nappia painamalla yhteen sarakkeeseen, mutta ei vaan onnistu sekään. 4 viimeistä solua kopioituu normaalisti, mutta ensimmäiseen tulee väkisin ennen napin painallusta leikepöydällä ollut tieto. Valitsemalla työkaluista "Suorita makro" se toimii kyllä.

      Varmaan ongelman pystyisi kiertämään tekemällä ensin jonkin näennäisen kopioinnin solusta Z45 soluun Ö86, mutta sekään nyt ei pidemmän päälle kovin elegantilta ratkaisulta vaikuttaisi. Ja nimenomaan sen ongelman perimmäinen syy olisi mielenkiintoista ymmärtää.

    • En varmaankaan ymmärrä, mitä ajetaan takaa, eikä makrokoodiakaan ole nähtävillä, mutta tässä on laskentataulukko, jossa tiedostossa on mukana makro.

      http://www.saunalahti.fi/rjaaskel/1/Menu/OOo/KopsaaFlle.ods

      Makro kopioi valittuna olevat solujen arvot samasta sarakkeesta (vaikkapa B) uuteen F-sarakkeeseen (jonka makro luo) alkaen solusta F1 tiiviisti . Paitsi jos valinta tehdäänkin otsikosta, niin että koko sarake on valittuna. Silloin kopio tulee rivikohdille.

      Koska makrollinen tiedosto on aina riski, kannattanee ensin avata talletettu tiedosto makrot kiellettynä ja tarkastella makroja makrohallinnan kautta. K_L_F -moduulista löytyy tyhjä main ja Siirto1, joka on kytketty painikkeeseen KopsaaFlle.
      Jos makrossa ei vaikuta olevan mitään huolestuttavaa, niin sitten vasta suoritetaan vaikkapa Tiedosto - Lataa uudelleen ja suljetaan se makroikkunakin.

      Niukka testiaineisto on taulukon B-sarakkeessa ja 1. rivillä on vähän testauksen aputietoja.
      Jos makro tuntuu toimivan, se kannattanee sitten kopioida sovellukseen ja muuttaa myös painikkeen kytkentä sitä vastaavaksi.

      Testasin LibO 4.1:ssä ja AOO 4.0:ssa.

    • Öynappi

      Kiitoksia vaivannäöstä!

      Vika löytyi lopulta melko yllättävästä paikasta. Nimittäin ohjausobjektin 'Yleistä' lehdellä oli jostain syystä 'Kohdistus napsauttamalla' vaihtunut tilaan 'Kyllä'. Ainakin pikaisella testauksella se näytti ratkaisevan molemmat ongelmat kokonaan. Luultavimmin olen sen vahingossa itse säheltänyt jossain kohtaa ja se on sitten jäänyt oletusarvoksi.(?) En kyllä olisi kovin äkkiä sitä älynnyt, jos en olisi linkittämääsi tiedostoon verrannut, joten säästit minulta aika monta työtuntia. Kiitos! :)

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. PÄIVÄN PARAS: Nigerialainen haki turvapaikkaa Suomesta, lähti takas huilaamaan

      kotimaahansa, koska turvapaikan saaminen kesti niin kauan. Ja tämän kertoo ihan Yle, eikä yhtään toimittaja kyseenalaist
      Maailman menoa
      150
      3755
    2. Mikä vasemmistolaisista jankkaavaa vaivaa?

      Pahasti on ihon alle, siis korvien väliin sinne tyhjään tilaan, päässeet kummittelemaan. Ei ole terveen ihmisen merkki
      Maailman menoa
      96
      3622
    3. Ohjelma "Rikollisjengien Ruotsi" hyvin paljasti jakautuneen maan

      eli ns. ruotsalaiset yhdellä puolella, muslimit ja muut kehitysmaalaiset toisella puolella. Siinäkin hyvin näki mitä ma
      Maailman menoa
      42
      3163
    4. Pidennetään viikko 8 päiväiseksi

      Ja jätetään työpäivien määrä nykyiseen 5:een. Tuo olisi kompromissiratkaisu vellovaan keskusteluun työajan lyhentämisest
      Maailman menoa
      18
      2511
    5. Miksi eristäydyt?

      Onko jokin syy kun vetäydyt omiin oloihin?
      Ikävä
      181
      2182
    6. Jos Katja Ståhl ei pääse juontamaan Elämäni biisiä, kenet haluaisit nähdä juontohommissa?

      Katja Ståhl on ollut kuluvalla viikolla sairaalahoidossa. Jos Katja Ståhl ei pääse juontamaan Elämäni biisiä, kenet halu
      Tv-sarjat
      25
      1377
    7. Kuvaile kaivattuasi kolmella emojilla.

      :) 😛😆😱
      Ikävä
      96
      1229
    8. Tiesitkö? Tuure ja Saana Boelius ovat sisaruksia!

      Tiesitkö? Tuure Boelius ja Saana Boelius ovat tänä syksynä kumpainenkin reality-ohjelmissa tv:ssä: Tuure Petollisissa ja
      Suomalaiset julkkikset
      24
      1061
    9. Jos elämäsi ihminen

      on osoittanut kiinnostuksensa, niin kannattaa vastata edes jotain vaikka mikä olisi. Toista mahdollisuutta ei välttämätt
      Ikävä
      69
      1018
    10. Vähäkankailla ollut ongelmia vuokra-asunnossa

      Aina ne ikävätkin asiat tulevat mediaan. Jasmin ja Marko saaneet edellisestä asunnostaan häädöt ja Jasmin todettu varatt
      Kotimaiset julkkisjuorut
      117
      1005
    Aihe