26. december 2011 - 00:26Der er
16 kommentarer og 1 løsning
skjule rækker
'jeg er gået lidt i stå.. prøvet at lave en macro, som skjuler række 17, 'hvis række 17 er skult i forvejen, så skal den skule række 16 i stedet, 'hvis række 16 er skult i forvejen, så skal den skjule række 15 i stedet, 'osv. indtil række 5. Række 5 må skjules, men det må række 4 ikke. ' tilsvarende vil jeg gerne lave en macro, som gør det omvendte. 'altså vise række 5, hvis række 5 er vist, så vis røække 6 osv. indtil række 17. 'række 17 må gerne vises
Her er 2 eksempler du måske kan bruge som "byggesten" - 2 makroer der hhv viser hvordan man skjuler en række ad gangen eller viser 1 række ad gangen...
Sub vis() Range("A5").Select For x = 1 To 10 If ActiveCell.EntireRow.Hidden = True Then ActiveCell.EntireRow.Hidden = False End If ActiveCell.Offset(1, 0).Select
Next End Sub
Sub skjul()
Range("A15").Select For x = 1 To 10 If ActiveCell.EntireRow.Hidden = False Then ActiveCell.EntireRow.Hidden = True End If ActiveCell.Offset(-1, 0).Select
Jeg ønsker hele rækken skjult - den skal bare KUN skjule én række pr. gang jeg kører makroen. Kurts skjuler ALLE rækker ved kørsel af makroen, dog én efter en ..? :-)
Sub skjul() For r = 17 To 5 Step -1 If Rows(r).Hidden = False Then Rows(r).Hidden = True Exit For End If Next r End Sub Sub vis() For r = 5 To 17 If Rows(r).Hidden = True Then Rows(r).Hidden = False Exit For End If Next r End Sub
Jeg her ikke helt 100% sikker på at jeg forstår hvornår det er du vil skjule - du skriver at hvis række 17 er skjult skal række 16 skjules - hvad hvis ingen rækker er skjult?
prøv disse 2 istedet: skjul makroen skjuler intet hvis række 17 ikke er skjult - ellers tager den en række ad gangen - og modsat med makroen :-)
Sub vis2()
Range("A4").Select For x = 1 To 13 If ActiveCell.Offset(x + 1, 0).EntireRow.Hidden = False Then ActiveCell.Offset(x, 0).EntireRow.Hidden = False End If Next x
End Sub
Sub skjul2()
Range("A4").Select For x = 1 To 13 If ActiveCell.Offset(x + 1, 0).EntireRow.Hidden = True Then ActiveCell.Offset(x, 0).EntireRow.Hidden = True End If Next x
MEN supertekst virker næsten efter hensigten. Det eneste der går galt er i makroen 'skjul', hvor, når den har skjult den sidste i rækken og man klikker, så viser den en række, klikker man igen, skjuler den en række osv... Kan dette fikses?
Hov - måske lidt sent at sige nu, men er det muligt at slette værdien i i celle x,b og x,c, hvor x svarer til den række som lige er blevet skjult, tænkte lidt på: (r,b)="" &(r,c)="" eller noget i den stil?
Sub skjul() For r = 17 To 4 Step -1 If Rows(r).Hidden = False And r > 4 Then Range("B" & r & ":" & "C" & r) = "" Rows(r).Hidden = True Exit For End If Next r End Sub
Den virker lige efter hensigten, du for sej supertekst!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.