Piilotetut rivit näkyviin yksi kerrallaan

Tupmo

Kun esim. riville 6 syötetään dataa, niin alempi piilotettu rivi (esim. rivi 8) tulisi näkyviin. Ja samoin jos riville 7. syötetään lukuja, rivi 9. tulisi näkyviin ja niin eespäin...

Jotain koodin pätkää kaipailis tähän.

16

390

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • sqlääää

      Miksi?

      • Tupmo

        Taulukkopohja sisältää paljon tyhjiä rivejä mahdollista tarvetta varten. Selkeyttäisi jos taulukko olisi ennen tietojen syöttämistä kompaktimmassa paketissa eli turhat rivit piilotettuna. Eikä näitä tarvitsisi sitten tyhjiä rivejä tarvitsisi piilottaa jälkikäteen.


      • sqlääää
        Tupmo kirjoitti:

        Taulukkopohja sisältää paljon tyhjiä rivejä mahdollista tarvetta varten. Selkeyttäisi jos taulukko olisi ennen tietojen syöttämistä kompaktimmassa paketissa eli turhat rivit piilotettuna. Eikä näitä tarvitsisi sitten tyhjiä rivejä tarvitsisi piilottaa jälkikäteen.

        Auttaisko joku tuon tyylinen makro?

        https://www.extendoffice.com/documents/excel/4017-excel-auto-hide-rows-if-blank.html


    • ko. taulukon moduuliin....
      muuta rivit sopivaksi

      Private Sub Worksheet_Change(ByVal Target As Range)
      On Error Resume Next
      If Not Intersect(Target, Rows("6:20")) Is Nothing Then
      Application.EnableEvents = False
      Target.Offset(2, 0).EntireRow.Hidden = False
      Application.EnableEvents = True
      End If
      End Sub

      Keep EXCELing
      @Kunde

      • Tupmo

        Ei onnistu. Mitkä rivit tuohon pitäisi syöttää? Piilotetut rivit vai myös kaksi ylempää riviä? Kokeilin kyllä molempia niin ei näyttänyt tapahtuvan mitään kun ylimmälle riville tekstiä syötin.


      • sqlääää
        Tupmo kirjoitti:

        Ei onnistu. Mitkä rivit tuohon pitäisi syöttää? Piilotetut rivit vai myös kaksi ylempää riviä? Kokeilin kyllä molempia niin ei näyttänyt tapahtuvan mitään kun ylimmälle riville tekstiä syötin.

        Ei ole Excel-konetta lähettyvillä, mutta luultavasti tuossa linkin takana olevaa koodinpätkää pitäisi muuttaa kohdissa "xRg.EntireRow.Hidden" muotoon "xRg.Offset(2,0).EntireRow.Hidden", jotta se muuttaisi kaksi riviä alempana olevan rivin näkyvyyttä.


      • Tupmo kirjoitti:

        Ei onnistu. Mitkä rivit tuohon pitäisi syöttää? Piilotetut rivit vai myös kaksi ylempää riviä? Kokeilin kyllä molempia niin ei näyttänyt tapahtuvan mitään kun ylimmälle riville tekstiä syötin.

        mun koodissa piilota rivit 8- haluamasi määrä alaspäin
        sitten liität koodin ko.taulukon moduuliin ja alat syöttelemään tietoja niin poistaa piilotuksen aktiivinen solu 2
        eli kun lisäät tietoa (muutat solunarvoa) 6 rivillä niin 8 rivi tulee näkyviin ja 7 rivillä sitten 9 rivi tulee näkyviin jne...


      • Tupmo

        Jepa! Toimii! Onnistuisipa vielä niin, että piilottasikin rivin sitten jos taas poistan arvon rivilta. Siis jos koko rivillä ei missään solussa mitään arvoa niin piilottaisi sen rivin. Haluisin kuitenkin että ylimmät kaksi riviä olisi aina näkyvissä.


    • Kundepuu

      Private Sub Worksheet_Change(ByVal Target As Range)
      On Error Resume Next
      If Not Intersect(Target, Rows("6:20")) Is Nothing Then
      Application.EnableEvents = False
      If WorksheetFunction.CountA(Target.EntireRow) = 0 Then
      Target.Offset(2, 0).EntireRow.Hidden = True
      Else
      Target.Offset(2, 0).EntireRow.Hidden = False
      End If
      End If
      Application.EnableEvents = True
      End Sub


      Sub Resetoi()
      Application.EnableEvents = True
      End Sub


      Keep EXCEling
      @Kunde

      • Tupmo

        E-sarakkeessa onkin kaava mikä olisi hyvä siinä olevan...eli ei ole koko rivin arvot 0. Miten muokataan koodia?


    • muuta koodissa
      If WorksheetFunction.CountA(Target.EntireRow) = 1 Then

      Keep EXCEling
      @Kunde

      • Tupmo

        Jep. Vielä kun tuon saa toimimaan kaikilla välilehdillä. Toimii ekalla mutta ei seuraavilla.


    • kunde

      Liitä allaoleva koodi ThisWorkBook(TämäTyökirja) moduuliin ja poista vanha koodi ko.taulukon moduulista.

      Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
      On Error Resume Next
      If Not Intersect(Target, Rows("6:20")) Is Nothing Then
      Application.EnableEvents = False
      If WorksheetFunction.CountA(Target.EntireRow) = 1 Then
      Target.Offset(2, 0).EntireRow.Hidden = True
      Else
      Target.Offset(2, 0).EntireRow.Hidden = False
      End If
      End If
      Application.EnableEvents = True
      End Sub

      Keep EXCELing
      @Kunde

      • Tupmo

        Mulla on tuossa välilehdet 3-23 missä haluisin tuon toimivan, mutta lisäksi muita joita en haluisi tuon sotkevan. Onnistuuko rajata tiettyihin välilehtiin jollain koodilla?


    • melkoista lypsämistä, eikö toiveet voisi esittää kerralla ....

      Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
      On Error Resume Next
      If Sh.Index > 2 And Sh.Index < 24 Then
      If Not Intersect(Target, Rows("6:20")) Is Nothing Then
      Application.EnableEvents = False
      If WorksheetFunction.CountA(Target.EntireRow) = 1 Then
      Target.Offset(2, 0).EntireRow.Hidden = True
      Else
      Target.Offset(2, 0).EntireRow.Hidden = False
      End If
      End If
      End If
      Application.EnableEvents = True
      End Sub

      Keep EXCEling

    • Tupmo

      Vähän uutta vielä tämä makrojen maailma. Kiitosta vaan avusta. Nyt toimii nuo.

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

    Luetuimmat keskustelut

    1. Oletko tyytyväinen viime tapaamiseemme?

      Vai toivoitko sen menevän toisella tavalla? Miten?
      Ikävä
      87
      3217
    2. Nyt se sit loppuu

      Et ei enää nähdä ja yhteyttä pidetä.
      Ikävä
      62
      2937
    3. Kuoleman pelko katosi

      Olen pelännyt koko elämän ajan kuolemaa mutta yhtäkkiä kun hindut paljastivat totuuksia uskonnoista noin aloin yhtäkkiä
      Hindulaisuus
      432
      2445
    4. Viikonloppu terveiset kaivatulle

      tähän alas ⬇️⬇️⬇️
      Ikävä
      80
      2283
    5. Myötähäpeä kun näkee sut,

      tekisit jotain ittelles. Ihan hyvällä tämä!
      Ikävä
      74
      2189
    6. Jos sitä keittelis teetä

      Ja miettis mitä mies siellä jossain touhuilee... ☕️
      Ikävä
      95
      2026
    7. Huomenta ........

      Huomenta 💗 Tiedän, että tuntuisit hyvälle.
      Ikävä
      12
      1626
    8. Kuhmolainen on selvästi kepun lehti

      Kuhmolaise etukannessa oli Kuva kun Jaskalle annettiin karhu patsas.mutta kukmolaislehti oli niin kepulainen että Jaskan
      Kuhmo
      20
      1603
    9. Toiselle puolikkaalleni

      Sinulla ei taida olla kaikki nyt ihan hyvin? Minua itketti eilen kauheasti, sinunko itkuja itkin? Kyllä kaikki selviää j
      Ikävä
      34
      1518
    10. Ei mun tunteet

      ole mihinkään kadonnut. Enkä mä sua inhoa tai ole kyllästynyt. Mä ymmärsin, ettet ole kiinnostunut minusta, ainakaan sil
      Ikävä
      30
      1440
    Aihe