Excel - řazení listů dle abecedy

Od: Datum: 12.11.12 15:41 odpovědí: 5 změna: 01.12.15 16:23

Dobrý den, prosím vás o radu. Dají se listy v excelu seředit dle abecedy? Nikde jsem nápovědu nenašla. Případně prosím poradit jak na to. Díky


Seznam odpovědí:
 
moment čekejte prosím, probíhá přenos dat...
Zobrazení struktury odpovědí v otázce
Skrytí struktury odpovědí v otázce
Zobrazení struktury odpovědí v otázce

 

Odpovědi na otázku:
Datum: 12.11.12 15:47

Listy v Excelu jsou řazeny dle "abecedy"... List 1 - List X (číslovky jsou řazeny vzestupně).

Pokud jste si však listy pojmenovala podle sebe a chcete je seřadit, tak je to věc jiná... nevím, jestli existuje příkaz, který to udělá, nicméně lze listy seřadit ručně - stisknutím a držením levého myšítka na název listu a následně jeho tažením vlevo či vpravo můžete listy přeházet dle vlastního uvážení.

Ohodnoceno: 0x
 
Od: axus®
Datum: 12.11.12 17:09
avatar

Zdroj http://support.microsoft.com/kb/812386

Otevri si pozadovany Excel.

Pravym tlacitkem klikni na zalozku listu (Sheet1,...) nebo jak se to u tebe jmenuje a v kontextovem menu vyber View Code (pokud mas cestinu, tak to bude nejaky cesky ekvivalent).

Do okna, ktere se otevre, vloz sekvenci uvedenou na konci tohoto prispevku, pak File - Close & Return to...

Pro serazeni jdi do menu Nastroje nebo v novych Officech do zalozky View - Makra - spustit Makro

Vyber nahrane Makro (zrejme budes mit pouze jedno) a spust ho.

Zepta se te to, zda se ma radit vzestupne ci sestupne a je hotovo.

Nyni ta slibena sekvence:


Sub Sort_Active_Book()
Dim i As Integer
Dim j As Integer
Dim iAnswer As VbMsgBoxResult
'
' Prompt the user as which direction they wish to
' sort the worksheets.
'
iAnswer = MsgBox("Sort Sheets in Ascending Order?" & Chr(10) _
& "Clicking No will sort in Descending Order", _
vbYesNoCancel + vbQuestion + vbDefaultButton1, "Sort Worksheets")
For i = 1 To Sheets.Count
For j = 1 To Sheets.Count - 1
'
' If the answer is Yes, then sort in ascending order.
'
If iAnswer = vbYes Then
If UCase$(Sheets(j).Name) > UCase$(Sheets(j + 1).Name) Then
Sheets(j).Move After:=Sheets(j + 1)
End If
'
' If the answer is No, then sort in descending order.
'
ElseIf iAnswer = vbNo Then
If UCase$(Sheets(j).Name) < UCase$(Sheets(j + 1).Name) Then
Sheets(j).Move After:=Sheets(j + 1)
End If
End If
Next j
Next i
End Sub
Ohodnoceno: 2x
 
Od: jbs
Datum: 15.03.14 15:00

Fantazie - to jsem dlouho hledal, funguje na 100%

Ohodnoceno: 0x
 
Od: hate
Datum: 01.12.15 13:10

Dik, presne co jsem potreboval :)

Ohodnoceno: 0x
 
Datum: 01.12.15 16:23
avatar

Hm. *bum*

Teď ještě zkuste tuhle proceduru spustit na zamknutém sešitu nebo na sešitu se skrytými listy. Procedura vám kixne. Zrovna tak v ní chybí vypnutí aktualizace obrazovky a obraz bude během třídění blikat.

Jestli tato procedura funguje na 100 procent, tak já jsem papež.

Ohodnoceno: 0x
 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz

 
Copyright © 2004-2016 Poradna Poradte.cz. Všechna práva na poradně Poradte.cz vyhrazena.