Avatar billede msoee Nybegynder
28. oktober 2008 - 11:45 Der er 9 kommentarer og
1 løsning

Vis / skjul makro

Skal lave lidt bogføring som jo hurtigt kan få en pæn række posteringer, en meget minimal udgave kan ses her:

http://www.msoee.dk/bogfoer.xls

Hvad jeg så gerne vil, er at lave en makro til hver "konto" (kolonnerne med de grønne titler). Lige nu har jeg smidt teksten specifikation ind der hvor jeg vil smide mine knapper ind.

Hvad makroen skal gøre, er at den skal skjule de øvrige grønne kolonner, samt skjule de rækker i den kolonne man står på, som ikke indeholder tal.

Tager vi udgangspunkt i kontoen mad, vil arket dermed komme til at se sådan ud: http://www.msoee.dk/bogfoer_skjult.xls
Avatar billede excelent Ekspert
28. oktober 2008 - 16:45 #1
hvis du indsætter knapper i de celler, så forsvinder de når kolonnen skjules
prøv i stedet om dette eks. kan bruges
http://pmexcelent.dk/bogfoer_v2.xls
Avatar billede msoee Nybegynder
28. oktober 2008 - 18:19 #2
Ser smart ud, men bliver det ikke lidt voldsomt hvis man nu forestiller sig at der pludselig blev 15 grønne rækker? Er det ikke muligt at lave en form for on/off knap som enten skjuler alle på nær den kolonne knappen er bundet til, og når man så trykker igen viser den alle?

Og ville også utroligt gerne hvis man kunne skjule de rækker hvori der ikke var indtastet noget, så mad f.eks. blev begrænset til rækkerne som har numrene 4 og 6 :)
Avatar billede excelent Ekspert
28. oktober 2008 - 19:09 #3
jo det gør det da vist
hvis det er knappeløsning du vælger kan koden se sådan ud for de 2 første

Private Sub CommandButton1_Click()
If Range("I1:L1").EntireColumn.Hidden = True Then Range("H1:L1").EntireColumn.Hidden = False Else Range("H1:L1").EntireColumn.Hidden = True
Range("H1").Columns.EntireColumn.Hidden = False
End Sub

Private Sub CommandButton2_Click()
If Range("H1,J1:L1").EntireColumn.Hidden = True Then Range("H1:L1").EntireColumn.Hidden = False Else Range("H1:L1").EntireColumn.Hidden = True
Range("I1").Columns.EntireColumn.Hidden = False
End Sub
Avatar billede excelent Ekspert
28. oktober 2008 - 19:10 #4
følgende skal stå på 1 linie i begge koder:

If Range("I1:L1").EntireColumn.Hidden = True Then Range("H1:L1").EntireColumn.Hidden = False Else Range("H1:L1").EntireColumn.Hidden = True
Avatar billede excelent Ekspert
28. oktober 2008 - 19:32 #5
Denne kan pastes som den er (knap 3)
sig til hvis du skal have hjælp til de 2 sidste

Private Sub CommandButton3_Click()
If Range("H1:I1,K1:L1").EntireColumn.Hidden = True Then _
Range("H1:L1").EntireColumn.Hidden = False Else Range("H1:L1").EntireColumn.Hidden = True
Range("J1").Columns.EntireColumn.Hidden = False
End Sub
Avatar billede msoee Nybegynder
29. oktober 2008 - 07:59 #6
Det er "excelent"!

Nu mangler vi bare hvis den så også kunne skjule de tomme rækker, så f.eks. knappen over "mad" sørger for at det kun er de to linjer hvorpå der er posteret, samt sum-linjen som vises ned ad :)
Avatar billede excelent Ekspert
29. oktober 2008 - 16:01 #7
Prøv disse 3 første kan bruges

Private Sub CommandButton1_Click()
If Range("I1:L1").EntireColumn.Hidden = True Then _
Range("H1:L1").EntireColumn.Hidden = False Else Range("H1:L1").EntireColumn.Hidden = True
Range("H1").Columns.EntireColumn.Hidden = False
rk = Cells(1000, "H").End(xlUp).Row
Range("H4:H" & rk).EntireRow.Hidden = False
If Columns("I").EntireColumn.Hidden = True Then
Range("H4:H" & rk).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End If
End Sub

Private Sub CommandButton2_Click()
If Range("H1,J1:L1").EntireColumn.Hidden = True Then _
Range("H1:L1").EntireColumn.Hidden = False Else Range("H1:L1").EntireColumn.Hidden = True
Range("I1").Columns.EntireColumn.Hidden = False
rk = Cells(1000, "I").End(xlUp).Row
Range("I4:I" & rk).EntireRow.Hidden = False
If Columns("J").EntireColumn.Hidden = True Then
Range("I4:I" & rk).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End If
End Sub

Private Sub CommandButton3_Click()
If Range("H1:I1,K1:L1").EntireColumn.Hidden = True Then _
Range("H1:L1").EntireColumn.Hidden = False Else Range("H1:L1").EntireColumn.Hidden = True
Range("J1").Columns.EntireColumn.Hidden = False
rk = Cells(1000, "J").End(xlUp).Row
Range("J4:J" & rk).EntireRow.Hidden = False
If Columns("K").EntireColumn.Hidden = True Then
Range("J4:J" & rk).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End If
End Sub
Avatar billede msoee Nybegynder
29. oktober 2008 - 16:43 #8
Præcis som jeg havde tænkt mig det skulle være!

Smid et svar til den her...

Som en lille ekstra ting, er der en nem måde hvorpå man kan oprette nye kolonner, hvor både knap og tilhørende makro følger med? eller skal de laves manuelt i tilfælde af at man i kampens hede mangler en nye kolonne(konto) i arket?
Avatar billede excelent Ekspert
29. oktober 2008 - 17:23 #9
Nej ikke ud over at du kan kopiere koden og så rette den til desværre
Avatar billede msoee Nybegynder
30. oktober 2008 - 21:04 #10
Det er bare helt i orden, jeg takker og bukker for den perfekte hjælp :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester