Avatar billede bjarnehansen Seniormester
03. december 2015 - 15:55 Der er 10 kommentarer og
1 løsning

finde sidste række og kolonne

Hej Forum.


Hvis jeg f.eks vil skjule kolonnerne [A:B, AH:BC], vil koden så sådan ud.
Sheets(1).Range("A:B, AH:BC").EntireColumn.Hidden = True

Hvis jeg i stedet for kun at skjule til kolonne BC, vil skjule til enden af arket (uden at skulle bladre ud for at finde kolonne XFD, der er den sidste kolonne i Excel 2010).
Hvordan vil koden så se ud og er det muligt at definere ?
Sheets(1).Range("A:B, AH:??").EntireColumn.Hidden = True



Det samme hvis jeg f.eks vil skjule række [6:39,74:489], vil koden således ud.
Sheets(1).Range("6:39,74:489").EntireRow.Hidden = True

Hvis jeg i stedet for kun at skjule til række 489, vil skjule til enden af arket (uden at skulle bladre ned for at finde den sidste række, som jeg ikke engang ved hvad hedder).
Hvordan vil koden så se ud og er det muligt også at definere ?
Sheets(1).Range("6:39,74:??").EntireRow.Hidden = True

På forhånd tak
Avatar billede jens48 Ekspert
03. december 2015 - 19:59 #1
Koden til sidste række kunne for eksempel se sådan ud:

Sheets(1).Range("6:39, 74:" & ActiveSheet.UsedRange.Rows.Count).EntireRow.Hidden = True

For sidste kolonne har jeg delt den op i to dele:

Sheets(1).Range("A:B").EntireColumn.Hidden = True
Sheets(1).Range(Range("AH1"), Cells(1, ActiveSheet.UsedRange.Columns.Count)).EntireColumn.Hidden = True
Avatar billede bjarnehansen Seniormester
05. december 2015 - 09:42 #2
vi har testet det men det virker ikke..
Avatar billede jens48 Ekspert
05. december 2015 - 10:53 #3
Hvilken version bruger du? Kan  du viise hele koden?
Avatar billede gnaske Nybegynder
06. december 2015 - 08:45 #4
Hej Jens.

Jeg arbejder sammen med Bjarne og vi bruger Excel 2010.

Det vi skal bruge, er at lukke "opdelte" kolonner og rækker og når den sidste del lukkes, lukkes helt til enden af arket.

Vi ønsker dog ikke at definere "enden af arket" med et kolonne bogstav eller et række tal, men med en kode.

Eksempel:
- Luk kolonne: A:B  +  F:og til enden af arket.      (Kolonne C:E vil være åbne).
- Luk række:    1:2  +  5:og til enden af arket.      (Række 3:4 vil være åbne).

Det hele åbnes igen:
  Sheets(x).Rows.Hidden = False
  Sheets(x).Columns.Hidden = False

Den sidste del af de 2 koder du sendte, virkede ikke.
Koden lukkede fint første del, men ikke sidste del.

Mvh.
Ib
Avatar billede gnaske Nybegynder
06. december 2015 - 09:29 #5
Hej igen Jens.

Hvis alt virker på Gratis Upload, skulle det være muligt at downloade TEST her.
http://gupl.dk/f/8upv7u7a00

Mvh.
Ib
Avatar billede jens48 Ekspert
06. december 2015 - 13:26 #6
Det var mig der havde misforstået spørgsmålet. Her er hele den rettede makro:

Private Sub CommandButton1_Click()
'*' Lukker

    If Sheets(1).Rows("6").EntireRow.Hidden = True Then
    MsgBox "  Arket er lukket !!", vbExclamation, "Åben ark"
    Exit Sub
    End If
   
    Sheets(1).Range("6:10, 21:1048576").EntireRow.Hidden = True
   
    Sheets(1).Range("E:H, L:XFD").EntireColumn.Hidden = True
   
    Application.Goto reference:="R1C1"
   
End Sub
Avatar billede bjarnehansen Seniormester
06. december 2015 - 14:25 #7
og det er så lige meget om det er en excel2007, 2010, 2013 at arket bliver kørt på, er det altid 1048576 og XFD der er den sidste række og kolonne ?
Avatar billede gnaske Nybegynder
06. december 2015 - 16:20 #8
Hej Jens og Bjarne.

Jeg mener sidste række og kolonne er forskellig, afhængig af Excel versionen.
Netop derfor søgte jeg en kode, der skjulte "indtil sidste række/kolonne", så alle versioner var dækket ind.

Men koden virker i Excel 2010 ;)

Mvh.
Ib
Avatar billede jens48 Ekspert
06. december 2015 - 22:15 #9
Det virker ikke hvis det er gemt i Excel 97-2003 version. Men brug denne makro istedet. Så er der ingen problemer:

Private Sub CommandButton1_Click()
'*' Lukker
    If Sheets(1).Rows("6").EntireRow.Hidden = True Then
    MsgBox "  Arket er lukket !!", vbExclamation, "Åben ark"
    Exit Sub
    End If
    On Error Resume Next
    Sheets(1).Range("6:10, 21:1048576").EntireRow.Hidden = True
    Sheets(1).Range("6:10, 21:65536").EntireRow.Hidden = True
    Sheets(1).Range("E:H, L:XFD").EntireColumn.Hidden = True
    Sheets(1).Range("E:H, L:IV").EntireColumn.Hidden = True
    Application.Goto reference:="R1C1"
End Sub
Avatar billede gnaske Nybegynder
11. december 2015 - 10:31 #10
Hej Kasper.

Så tror jeg, jeg fik løst problemet.

I Excel, fanen Udvikler:
Jeg startede en indspilning af Macro, hvorefter jeg step by step, først mærkede kolonnerne op og skjulte dem.
Næst det samme med rækkerne.
Herefter stoppede jeg indspilningen og så havde jeg koden.

For at få koden til at køre på Ark1 fra andre Ark Faner, tilføjede jeg bare Sheets("Ark1") de rigtige steder i koden.

Koden ser sådan ud.

Private Sub CommandButton1_Click()
'*' Cmb på Ark2
'*' Lukker Ark1
   
    Sheets("Ark1").Select
   
    If Sheets("Ark1").Rows("6").EntireRow.Hidden = True Then
    MsgBox "  Ark1 er lukket !!", vbExclamation, "Åben ark"
    Exit Sub
    End If
   
    Application.ScreenUpdating = False
   
    Sheets("Ark1").Columns("E:H").Select
    Selection.EntireColumn.Hidden = True
    Sheets("Ark1").Columns("L:L").Select
    Sheets("Ark1").Range(Selection, Selection.End(xlToRight)).Select
    Selection.EntireColumn.Hidden = True
    Sheets("Ark1").Rows("6:10").Select
    Selection.EntireRow.Hidden = True
    Sheets("Ark1").Rows("21:21").Select
    Sheets("Ark1").Range(Selection, Selection.End(xlDown)).Select
    Selection.EntireRow.Hidden = True
   
    Application.ScreenUpdating = True
    Application.Goto reference:="R30C1"

End Sub

Download test på linket.
http://play48.com/gratisupload/userprofiles/6uvZ1O9wuU/02%20Luk%20Kol%2DR%E6k%20til%20enden%20af%20arket%2Exlsm

Mvh.
Ib
Avatar billede gnaske Nybegynder
11. december 2015 - 10:40 #11
Sorry - Det var selvfølgelig Jens og ikke Kasper.

Jeg skriver samme tekst i et andet forum, hvor jeg svarer Kasper på samme problemløsning og kopierede bare teksten fra det ene forum til det andet.

Sådan kan det gå i farten.

Det ville nu være rart, hvis man kunne gå ind og editere i en allerede oprettet tekst, men det kan man måske også, bare uden jeg har fundet ud af hvordan !
Hmmmm....

Mvh.
Ib
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