VBA rychlost - skryti prazdnych sloupcu

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

b965029@klzlk.com
nováček
Příspěvky: 2
Registrován: květen 11
Pohlaví: Muž
Stav:
Offline

VBA rychlost - skryti prazdnych sloupcu

Příspěvekod b965029@klzlk.com » 26 kvě 2011 02:58

Ahoj Vsichni,

mohl bych poprosit o radu?
Napsal jsem si jednoduche makro, ve kterem prochazim vsechny bunky A:J, (ve kterych je znazornena stromova struktura) viz. prilozeny soubor a sloupecky ve kterych neni zadny zaznam makro skryje. Bohuzel dopredu nevim kolik bude strom obsahvat radek, proto jsem zvolil hodnotu 65000. Vyreseni ale tolika radek zabere az nekolik vterin :-( Nevite jak tohle vyresit rychleji?

Dekuji

--- Doplnění předchozího příspěvku (26 Kvě 2011 10:12) ---

Rano moudrejsi vecera.
Pokud by nekdo potreboval tak uchazejici reseni by mohlo vypadat snad takhle.

Kód: Vybrat vše

Private Const MAX_RADEK = 65000
Private Const INDEX_J_SLOUPCE = 10

Private Sub Workbook_Open()

    Dim max_index As Integer
   
    ' Projdeme vsechny listy
    For Each sht In Sheets
        max_index = 0
        ' Na kazdem listu jeho sloupce A:J
        For radek = 2 To MAX_RADEK
            ' Vsechny radky, ktere maji v oblasti A:J nejakou zkratku
            For sloupec = 1 To INDEX_J_SLOUPCE
                If sht.Cells(radek, sloupec).Value <> 0 Then ' Pokud takovou zkratku najdeme tak si uchovame index daneho sloupce
                    If sloupec > max_index Then ' Chceme vzdy ten nejvetsi index
                        max_index = sloupec
                    End If
                    Exit For
                End If
            Next sloupec
            If sloupec > INDEX_J_SLOUPCE Then ' Od ziskaneho indexu do sloupce J spracujeme vsechny sloupce
           
                sht.Cells(1, max_index).EntireColumn.AutoFit ' Na sloupci ziskaneho indexu nastavime zoztazeni bunky (podle obsahu)
                For skryty = (max_index + 1) To INDEX_J_SLOUPCE
                    sht.Cells(1, skryty).EntireColumn.Hidden = True ' Sloupec schovame
                Next skryty
                Exit For
               
            End If
        Next radek
    Next sht

End Sub
Přílohy
skryj prazdne sloupce.xlsm
Makro je poveseno na udalost List1#Worksheet_Activate
(16.11 KiB) Staženo 15 x
Naposledy upravil(a) b965029@klzlk.com dne 26 kvě 2011 16:32, celkem upraveno 1 x.

Reklama
Uživatelský avatar
Poki
Level 2
Level 2
Příspěvky: 237
Registrován: prosinec 09
Pohlaví: Muž
Stav:
Offline

Re: VBA rychlost - skryti prazdnych sloupcu

Příspěvekod Poki » 26 kvě 2011 13:33

Pokud by nekdo potreboval najit poslendi radek z oblasti, ktera je na listu vyuzita, tak tohle je velice snadne:

Kód: Vybrat vše

List1.UsedRange.SpecialCells(xlCellTypeLastCell).Row

b965029@klzlk.com
nováček
Příspěvky: 2
Registrován: květen 11
Pohlaví: Muž
Stav:
Offline

Re: VBA rychlost - skryti prazdnych sloupcu

Příspěvekod b965029@klzlk.com » 26 kvě 2011 16:29

Moc sikovna funkce. Dik!
Bozuzel jeji volani na uzamcenem listu vyhazuje run-time error 1004

kuchyn
nováček
Příspěvky: 10
Registrován: březen 07
Pohlaví: Muž
Stav:
Offline

Re: VBA rychlost - skryti prazdnych sloupcu

Příspěvekod kuchyn » 26 kvě 2011 20:36

Zdravím,
asi bych použil něco podobného s využitím UsedRange:

Sub HideColumns()
Dim Oblast As Range
Dim i As Integer

Set Oblast = ActiveSheet.UsedRange
For i = 1 To Oblast.Columns.Count
If Application.WorksheetFunction.CountA(Oblast.Columns(i)) = 0 Then
Oblast.Columns(i).EntireColumn.Hidden = True
Else
Oblast.Columns(i).EntireColumn.Hidden = False
End If
Next i
End Sub

Oblast by měla jít přizpůsobit podle potřeb.
Roman


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • PowerQuery - import dat do sloupců Příloha(y)
    od MK_Vs » 31 říj 2023 10:00 » v Kancelářské balíky
    9
    2192
    od MK_Vs Zobrazit poslední příspěvek
    02 lis 2023 09:26
  • rychlost USB Příloha(y)
    od Pajoš » 25 říj 2023 09:11 » v Problémy s hardwarem
    13
    2567
    od Pajoš Zobrazit poslední příspěvek
    01 lis 2023 10:43
  • Rychlost WIN10 - po upgrade na SSD nic moc... Příloha(y)
    od Prema844 » 05 led 2024 14:28 » v Problémy s hardwarem
    37
    3185
    od Prema844 Zobrazit poslední příspěvek
    17 led 2024 08:19
  • Rychlost portu za routerem RT-AX58U Příloha(y)
    od Miikeshek » 04 úno 2024 11:29 » v Administrace sítě
    15
    3112
    od ITCrowd Zobrazit poslední příspěvek
    09 úno 2024 08:40
  • Nejde nastavit vyšší rychlost spojení než 100/100 (Mbps) Příloha(y)
    od Kubista33a » 24 kvě 2023 12:06 » v Sítě - hardware
    8
    1719
    od ITCrowd Zobrazit poslední příspěvek
    25 kvě 2023 22:55

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti