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
409
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
Ikävöin sinua kokoyön!
En halua odottaa, että voisin näyttää sinulle kuinka paljon rakastan sinua. Toivon, että uskot, että olen varsin hullun453141Kova karman laki
Karman lain kautta pahantekijä tehdessään pahaa toteuttaa koston ja rangaistuksen sille jolle pahaa on tehty. Tämä tarko5081917Päivieni piristys, missä olet?
Toit iloa ja valoa mun elämään ☀️ Nyt mennyt kohta viikko ettei ole nähty. Kaipaan nähdä sua silti ja pelkään vaikka tei171900Näen jatkuvasti Sompasaunalla alastomia miehiä ja naisia
jotka menevät siihen viereiseen rantaan myös uimaan alasti. Sompasaunat on siis Mustikkamaalla Helsingissä, ja kuljen si781690- 181502
Jos sinä olisit pyrkimässä elämääni takaisin
Arvelisin sen johtuvan siitä, että olisit taas polttanut jonkun sillan takanasi. Ei taida löytyä enää kyliltä naista, jo431388- 261322
Millainen kaivattusi luonne on?
Millaisia luonteenpiirteitä arvostat kaivatussa? Oletteko samanlaisia luonteeltanne?901319Helena ja Mikko Koivun ero jatkuu edelleen ja loppua ei näy.
Voi eikä, miksi menee noin vaikeaksi avioero ja sopua ei tää ex- pari vaan saa.1161157UPM suunnittelee paperintuotannon lopettamista LPR:ssa
Ilta-Sanomissa oli uutinen. Metsäyhtiö UPM suunnittelee paperintuotannon lopettamista Kaukaan-tehtaalla Lappeenrannassa1101123