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
345
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
Olen tosi outo....
Päättelen palstajuttujen perusteella mitä mieltä minun kaipauksen kohde minusta on. Joskus kuvittelen tänne selkeitä tap152121Kotkalainen Demari Riku Pirinen vangittu Saksassa lapsipornosta
https://www.kymensanomat.fi/paikalliset/8081054 Kotkalainen Demari Riku Pirinen vangittu Saksassa lapsipornon hallussapi842058- 1011367
Vanhalle ukon rähjälle
Satutit mua niin paljon kun erottiin. Oletko todella niin itsekäs että kuvittelet että huolisin sut kaiken tapahtuneen101166Hommaatko kinkkua jouluksi?
Itse tein pakastimeen n. 3Kg:n murekkeen sienillä ja juustokuorrutuksella. Voihan se olla, että jonkun pienen, valmiin k1431165Maisa on SALAKUVATTU huumepoliisinsa kanssa!
https://www.seiska.fi/vain-seiskassa/ensimmainen-yhteiskuva-maisa-torpan-ja-poliisikullan-lahiorakkaus-roihuaa/1525663791122Omalääkäri hallituksen utopia?
Suurissa kaupungeissa ja etelässä moinen onnistunee. Suuressa osassa Suomea on taas paljon keikkalääkäreitä. Mitenkäs ha171853Aatteleppa ite!
Jos ei oltaisikaan nyt NATOssa, olisimme puolueettomana sivustakatsojia ja elelisimme tyytyväisenä rauhassa maassamme.249846- 61818
- 59811