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.
Piilotetut rivit näkyviin yksi kerrallaan
16
403
Vastaukset
- 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.
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
Suureksi onneksesi on myönnettävä
Että olen nyt sitten mennyt rakastumaan sinuun. Ei tässä mitään, olen kärsivällinen ❤️871833Perusmuotoiset TV-lähetykset loppu
Nyt sanoo useiden HD-muotoistenkin kanavien kohdalla äly-TV, ettei kanava ole käytössä, haluatko poistaa sen? Kanavia1451298YLE Äänekosken kaupunginjohtaja saa ankaraa arvostelua
Kaupungin johtaja saa ankaraa kritiikkiä äkkiväärästä henkilöstöjohtamisestaan. Uusin häirintäilmoitus päivätty 15 kesä621120- 64988
Hyvin. Ikävää nainen,
Että vainoat ja stalkkaat miestäni.onko tarkoituksesi ehkä saada meidät eroamaan?no,siinä et tule onnistumaan82921Uskomaton tekninen vaaliliitto poimii rusinoita pullasta
Korni näytösesitelmä menossa kaupunginvaltuustossa. Juhlia ei ole kokouksista tiedossa muilla, kuin monipuolue paikalli85850Linnasuolla poliisi operaatio
Kamalaa menoa taas meidän ihanassa kaupungissa. https://www.uutisvuoksi.fi/paikalliset/864606029836Martina lähdössä Ibizalle
Eikä Eskokaan tiennyt matkasta. Nyt ollaan jännän äärellä.127833Katsoin mies itseäni rehellisesti peiliin
Ja pakko on myöntää, että rupsahtanut olen 😆. Niin se ikä saavuttaa meidät kaikki.47827- 57810