Gå til innhold

Excel 2007 - skjule rader?


Balthasar

Anbefalte innlegg

Videoannonse
Annonse

Heisann

 

Rullegardin som i Datavalidering? Da kan du bruke en makro a la denne (høyreklikk arkfane, Vis kode, lim inn):

 

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$5" Then
Select Case Target(1).Value
	Case "Skjule"
		Rows("7:12").Hidden = True
	Case Else
		Rows("7:12").Hidden = False
End Select
End If
End Sub

 

Merk at makroer krever at de er aktivert for å virke, og at ingenting funker på Excel2008 for Mac. Så sjekk om sensor har selvlysende eple på topplokket.

 

HTH. Beste hilsen Harald

Lenke til kommentar

hehe, så det er altså mulig :). Makroer er aktivert da solverknapp er vesentlig i en sånn oppgave.

 

Stemmer med rullegardin som i datavalidering.

 

Men skjønner fremdeles ikke helt. Er her snakk om hvis celle e5 lik 1 så skal 9:17 skjules, e5 er lavere eller lik 2 så skal 10:17 skjules, e5 lavere eller lik 3 så skal 11:17 skjules, osv. Hvordan blir dette da?

 

Takker for svar!

Lenke til kommentar

Ja absolutt alt er mulig med en makroaktivert excelfil. Ok, lineær numerisk logikk, det var ikke lett å skjønne innledningsvis.

 

Private Sub Worksheet_Change(ByVal Target As Range)
Dim X As Long, R As Long
On Error Resume Next
If Target.Address = "$E$5" Then
Application.ScreenUpdating = False
X = Application.WorksheetFunction.RoundUp(Target(1).Value, 0)
Select Case X
	Case 1 To 10
		For R = 8 To 8 + X - 1
			Rows(R).Hidden = False
		Next
		For R = 8 + X To 17
			Rows(R).Hidden = True
		Next
	Case Else
		Rows("8:17").Hidden = False 'fjern linjen hvis ønsket
End Select
Application.ScreenUpdating = True
End If
End Sub

-metodikken er ubrukelig på tekstverdier selvfølgelig, da må vi gjøre noe annet.

 

Edit: missa avrund opp, rettet nå.

 

HTH. Beste hilsen Harald

Endret av Harald Staff
Lenke til kommentar

tusen takk, den funka den :), men hvorfor funker ikke denne?

Private Sub Worksheet_Change(ByVal Target As Range)

Dim X As Long, R As Long

On Error Resume Next

If Target.Address = "$E$19" Then

Application.ScreenUpdating = False

X = Application.WorksheetFunction.RoundUp(Target(1).Value, 0)

Select Case X

Case 1 To 20

For R = 21 To 21 + X - 1

Rows®.Hidden = False

Next

For R = 21 + X To 40

Rows®.Hidden = True

Next

Case Else

Rows("21:40").Hidden = False 'fjern linjen hvis ønsket

End Select

Application.ScreenUpdating = True

End If

End Sub

 

 

Ellers så har jeg et problem til som angår kolonner, men har ikke helt tatt stilling til hva som skal gjøres med den, med er nok ikke umulig at det kommer et innlegg til :)

 

Takk igjen for kanonhjelp!

 

Edit: fungerer som den skal den over også, men får ikke begge til å fungere samtidig?

Edit 2: fiksa det, så midlertidig løst :)

Endret av elvis
Lenke til kommentar
tusen takk, den funka den :), men hvorfor funker ikke denne?

Edit: fungerer som den skal den over også, men får ikke begge til å fungere samtidig?

Edit 2: fiksa det, så midlertidig løst :)

Hvis du prøver å forvirre meg så kryss av for Svært vellykket :)

Men om virkeligheten er 19 så er det ikke et produktivitetsfremmende tiltak å skrive om til 5 bare for eksempelets skyld.

 

Beste hilsen Harald

Lenke til kommentar
tusen takk, den funka den :), men hvorfor funker ikke denne?

Edit: fungerer som den skal den over også, men får ikke begge til å fungere samtidig?

Edit 2: fiksa det, så midlertidig løst :)

Hvis du prøver å forvirre meg så kryss av for Svært vellykket :)

Men om virkeligheten er 19 så er det ikke et produktivitetsfremmende tiltak å skrive om til 5 bare for eksempelets skyld.

 

Beste hilsen Harald

hadde to sånne rullegardinfunksjoner som det skulle gjøres det samme med om du ikke forstod :). Den ene var det 10 variabler og den andre 20!

Lenke til kommentar
  • 3 uker senere...

Nei enten er hele kolonne I skjult eller så er den synlig. Metodikken er den samme, du adresserer kolonnen enten via nummer (tell fra venstre) eller bokstav i gåsetegn:

 

Columns(9).Hidden = True

Columns("I").Hidden = True

 

Beste hilsen Harald

Takk for sist svar, det har fungert utmerket.

 

Sitter nå med et tilsynelatende like vanskelig problem som virkelig får testet hvis-funksjonens begrensninger. Problemet er å finne ut om det lar seg løse, og hvordan det da evt. skal skrives?

 

Problemet lyder:

Hvis D6<1 så skal cellen være lik 0, hvis D6>1 så skal cella være lik D50 dersom D50 er større enn 0 og hvis den ikke er det så skal cella være lik C50.

 

Er det mulig?

 

EDIT: Fiksa det!

Endret av elvis
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...