Makrolla solut osiin ja taulukoksi

Anonyymi-ap

Pitäisi saada tälläinen makro, enkä itse osaa

Makro jakaa solun osiin ja laittaa tiedot allekkain

Solun sisällä oleva erotinmerkki vaihtelee tilanteittain ja solualueen koko ja sijainti vaihtelee
Yhden kokonaisuuden / tilanteen sisällä kaikki erotinmerkit ovat samat
Yhden solun sisältö ( vaikka B2) on esim.
tammi;helmi;maalis ja määrä vaihtelee
Toisen solun sisältö (vaikka B3) on esim.
maanantai;tiistai;keskiviikko ja määrä vaihtelee
Ja rivimäärä vaihtelee

Makron vastaus olisi:
tammi
helmi
maalis
Välissä yksi tyhjä solu
maanantai
tiistai
keskiviikko

Kun käyttäjä käynnistää makron, hän valitsee inputboxin avulla:
erotin merkin
ja
käsiteltävän sarakkeen, josta makro osaisi ottaa kaikki täytetyt solut käsittelyyn mukaan
ja
Solun, josta alkaen vastaukset tulevat

Löysin netistä makroja, jotka toimivat osittain kuvatun mukaan
Yksi makro tekee juuri noin kuten kuvasin, mutta käyttäjä ei voi tehdä mitään valintoja.
Toisessa makrossa käyttäjä voi valita erotinmerkin inboxilla, mutta makro jakaa vain yhden solun osiin eikä muita valintoja voi tehdä

Tällä palstalla on ollut Excelin vba-koodauksen superosaajia.
Voisitteko tehdä tuollaisen makron?

Kovasti kiitoksia jo etukäteen

1

804

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      Tarvittavat lähtötidot valitaan tässä InputBoxien sijaan UserFormilla. Tarvitaan kolme TextBoxia ja CommandButtonia (ja oman mielen mukaan muuta):
      TextBox1 - erotin
      TextBox2 - alue, jolta tiedot luetaan. Alueen voi valita CommandButton1:llä
      TextBox3 - solu, josta lähtien tulostetaan. Alueen voi valita CommandButton2:lla
      CommandButton1 - tulostaa rivit alkaen
      CommandButton2 - päivittää luettavaksi alueeksi valittuna olevan alueen
      CommandButton3 - päivittää tulostuksen alkamaan valittuna olevasta solusta

      UserForm1 aukeaa makrolla riveiksi ja jää näkyviin kunnes se suljetaan. Oletuksena tulostettavaksi valitaan rivit, jotka ovat valittuna kun makro käynnistetään ja tulostus tulee siitä yhden rivin päähän.

      Formin moduliin:

      Private Sub CommandButton1_Click()
          tee
      End Sub

      Private Sub CommandButton2_Click()
          UserForm1.TextBox2.Text = osoite(Selection)
      End Sub

      Private Sub CommandButton3_Click()
          UserForm1.TextBox3.Text = tulostusosoite(Selection)
      End Sub

      Private Sub UserForm_Activate()
          UserForm1.TextBox2.Text = osoite(Selection)
          tulostus = osoite(Cells(Selection.Row   Selection.Rows.Count   1, Selection.Column))
          Debug.Print tulostus
          UserForm1.TextBox3.Text = tulostus
      End Sub

      Tavalliseen moduliin:

      Sub riveiksi()
          UserForm1.TextBox2.Text = osoite(Selection)
          UserForm1.TextBox3.Text = tulostusosoite(Cells(Selection.Row   Selection.Rows.Count   1, Selection.Column))
          UserForm1.Show False
      End Sub

      Function osoite(r As Range) As String
          osoite = WorksheetFunction.Substitute(r.Address, "$", "")
      End Function

      Function tulostusosoite(r As Range) As String
          o = osoite(Selection)
          l = InStr(o, ":") - 1
          If l < 0 Then l = Len(o)
          tulostusosoite = Left(o, l)
      End Function

      Sub tee()
          erotin = UserForm1.TextBox1.Text
          Set alue = Range(UserForm1.TextBox2.Text)
          Set tulos = Range(UserForm1.TextBox3.Text)
          r = tulos.Row
          c = tulos.Column
          For Each s In alue
              t = Split(s, erotin)
              For i = 0 To UBound(t)
                  Cells(r, c) = t(i)
                  r = r   1
              Next i
              r = r   1
          Next s
      End Sub

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

    Luetuimmat keskustelut

    1. Rasismia kaikkialla näkevät ovat Suomen tyhmimpiä ihmisiä

      ja monillahan kuluu myös mielialalääkkeitä, eli päässä on ongelmia. Mutta he eivät tajua kuinka paljon ja ihan todellis
      Maailman menoa
      367
      7101
    2. Ei kahta sanaa etteikö Petteri Orpo hyväksy rasismia

      Koska jatkaa hallituksessa rasistisen perussuomalaisiksi itseään kutsuvan puolueen kanssa. Se on Petteri Orpon arvomaai
      Maailman menoa
      82
      6037
    3. Mitkäs nuorisoporukat ovat toisia nuoria ryöstelleet (selvää rassismia)

      No poliisi kertoo, että maahanmuuttajataustaisia ovat, ja isot porukat sillä yhden suomalaisen uhrin kimpussa on ollut j
      Maailman menoa
      200
      5521
    4. Pitkän linjan yritysjohtaja: Suomen tapahtumat eivät ole Aasian kärkiuutinen

      Viimeaikaista kohua on käytetty sisäpoliittisena lyömäaseena, Thomas Zilliacus sanoo. – Koska asiaa kuitenkin kommentoi
      Maailman menoa
      84
      4280
    5. Demarit ovat oikeasti törppöjä eli heikkoälyisiä

      ja todistavat sitä päivittäin täällä lapsellisilla jutuillaan. Kauheasti on hehkuttaneet kuinka demarien kannatus vaan
      Maailman menoa
      56
      3496
    6. HS 12/25 kysely: persut romahti, demarit raketoi

      Kyyti on kylmää persuleirissä, saattaa vetää siellä silmätkin viirulleen. Sen sijaan SDP:n puoluetoimistolla voidaan pok
      Maailman menoa
      70
      3449
    7. Perussuomalaiset eivät harrasta maalittamista kuten vasemmisto

      Huomaa tässä keinotekoisessa "rasismi"-kohussakin kuinka vasemmistolaiset maalittavat Perussuomalaisia. Me emme vastaava
      Maailman menoa
      6
      3403
    8. Juuri Suomen valtamedian toimittajat teki "silmävääntelystä" sen kohun

      ja ilmeisesti ottivat yhteyttä myös ulkomaisiin medioihin, että katsokaas tätä. Mutta Japanin medioissa on asiaan suhta
      Maailman menoa
      60
      3368
    9. SDP:n kansanedustaja Marko Asell: Suomen myönnettävä maahanmuuton ongelmat

      Hänen mielestään Suomen pitää pyrkiä rajoittamaan jyrkästi turvapaikanhakijoiden pääsyä maahan ja hän arvioi, että maaha
      Maailman menoa
      58
      3164
    10. Töppö-persut ovat todella tyhmiä

      sen kertoo tämäkin avaus: "Persujen suosio vain laskee" Töppö-persu vaan unohtaa, että ennen tätä galluppia persujen kan
      Maailman menoa
      37
      3084
    Aihe