< návrat zpět

MS Excel


Téma: Pomalé makro na vypnutí filtrů, seřazení rss

Zaslal/a 10.2.2023 13:30

Ahoj všem,
prosím o pomos s úpravou pomalého makra (odemknutí listu, vypnutí všech aktivních filtrů, seřazení podle data sestupně (sloupec G2:G4001), zamknutí listu - (povoleno vše krom přidání/odebrání sloupců a řádků.

makro níže:

Sub VŠE()
'
' VŠE Makro
'

'
For x = 1 To 100000
a = a + Rnd - Rnd
Next x
Application.Calculation = xlCalculationManual
Worksheets("DATABAZE ZAMESTNANCU").Unprotect Password:="pekarna"
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=1
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=2
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=3
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=4
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=5
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=6
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=7
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=8
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=9
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=10
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=11
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=12
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=13
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=14
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=15
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=16
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=17
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=18
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=19
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=20
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=21
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=22
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=23
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=24
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=25
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=26
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=27
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=28
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=29
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=30
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=31
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=32
Range("A630").Select
ActiveWorkbook.Worksheets("DATABAZE ZAMESTNANCU").ListObjects("Tabulka1").Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("DATABAZE ZAMESTNANCU").ListObjects("Tabulka1").Sort. _
SortFields.Add Key:=Range("Tabulka1[[#All],[Nástup]]"), SortOn:= _
xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("DATABAZE ZAMESTNANCU").ListObjects("Tabulka1"). _
Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWindow.SmallScroll Down:=570
Range("A2670").Select
Worksheets("DATABAZE ZAMESTNANCU").Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowSorting:=True, AllowFiltering:=True, Password:="pekarna"
Application.Calculation = xlCalculationAutomatic
End Sub

Zaslat odpověď >

Strana:  « předchozí  1 2 3   další »
#054419
avatar

elninoslov napsal/a:

a) Spúšťate to v tej mojej prílohe alebo vo Vašej ?
b) Verzia Office (rok, jazyk, 32/64 bit) ?
c) A ešte tú chybu, čo to hodí uveďte.

Pretože Office 2019 x64 SK Pro - bez problémov.


Jedu na Office 365 enterprise x86citovat
#054420
avatar

elninoslov napsal/a:

a) Spúšťate to v tej mojej prílohe alebo vo Vašej ?
b) Verzia Office (rok, jazyk, 32/64 bit) ?
c) A ešte tú chybu, čo to hodí uveďte.

Pretože Office 2019 x64 SK Pro - bez problémov.


Zkoušel jsem to ještě na svém soukromé Ntb, Také Office 365 ale pro jednotlivce a tak to funguje ale hodí mi to jen kurzor na poslední vyplněnou buňku ale obrazovka se neposune, ta zůstává na místě, kde jsem zkončil.citovat
#054421
elninoslov
Enterprise verziu k dispozícii nemám. Každopádne chýba mi odpoveď a) aj text chyby (screenshot) c).

Pre skok na bunku aj so scrolovaním nahradiť daný riadok za tento
Application.Goto Range("Tabulka1[příjmení, jméno]").Find(What:="*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False), Truecitovat
#054423
avatar

elninoslov napsal/a:

Enterprise verziu k dispozícii nemám. Každopádne chýba mi odpoveď a) aj text chyby (screenshot) c).

Pre skok na bunku aj so scrolovaním nahradiť daný riadok za tento
Application.Goto Range("Tabulka1[příjmení, jméno]").Find(What:="*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False), True


přílohou posílám PrtScr chyby
Zkoušel jsem to v té vaší verzi i v té mé.citovat
#054425
avatar

Ontik napsal/a:

elninoslov napsal/a:Enterprise verziu k dispozícii nemám. Každopádne chýba mi odpoveď a) aj text chyby (screenshot) c).

Pre skok na bunku aj so scrolovaním nahradiť daný riadok za tento
Application.Goto Range("Tabulka1[příjmení, jméno]").Find(What:="*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False), True

přílohou posílám PrtScr chyby
Zkoušel jsem to v té vaší verzi i v té mé.


Ještě ta chyba, v příloze
Příloha: png54425_2023-02-11-21_11_41-window.png (13kB, staženo 10x)
54425_2023-02-11-21_11_41-window.png
citovat
#054427
elninoslov
Tieto 2 pokusy Vám prejdú?
Sub pokus1()
MsgBox Range("Tabulka1[příjmení, jméno]").Address
End Sub

Sub pokus2()
MsgBox Range("Tabulka1[" & Worksheets("DATABAZE ZAMESTNANCU").Range("B1").Value2 & "]").Address
End Sub
citovat
#054443
avatar

elninoslov napsal/a:

Tieto 2 pokusy Vám prejdú?
Sub pokus1()
MsgBox Range("Tabulka1[příjmení, jméno]").Address
End Sub
Sub pokus2()
MsgBox Range("Tabulka1[" & Worksheets("DATABAZE ZAMESTNANCU").Range("B1").Value2 & "]").Address
End Sub


Nefunguje ani jeden....
Příloha: png54443_pokus1.png (7kB, staženo 8x)
54443_pokus1.png
citovat
#054444
elninoslov
V tomto súbore "ZoradenieLog.xlsm" som pridal 2 makrá na Log.
makro VytvorLog
makro XLog
a na začiatku premennú
Dim Subor As String
V tomto mojom skúšobnom súbore to teda je nastavené, ale chcem od Vás:
-vytvorte si kópiu toho Vášho súboru
-otvorte ju, a skontrolujte či 1 dátový riadok Tabuliek neobsahuje citlivé info (RČ, meno, mail, telefón, adresa). Ostatné riadky okrem hlavičky a 1. riadku Tabuliek, nebudú do logu zahrnuté, ani iné dáta mimo Tabuliek (objekt Tabuľka). Tieto citlivé dáta zmeňte, ale tak, aby presne zodpovedali forme predchádzajúcich, veľké malé písmená, formát číslo, text, dĺžka, počet medzier (s medzerami vôbec nehýbte, nemažte, neprepisujte, iba ich obíďte kurzorom, teoreticky môže byť chyba aj v nesprávnych medzerách Alt+0160 vs Alt+032), nemeňte vzorce, neredukujte dáta, ani nevymazávajte celé bunky, riadky, stĺpce.
-vložte na začiatok do modulu makier tú deklaráciu premennej
Dim Subor As String
a na koniec modulu makier vložte tie 2 makrá VytvorLog a XLog
-takže máte 2 súbory s tými novými makrami (VytvorLog, XLog), teda súbor "ZoradenieLog.xlsm" a kópiu Vášho súboru.
-v oboch súboroch spustite makro "VytvorLog", pričom dajte pozor, z ktorého modulu ktorého súboru makro spúšťate. Nepomýlite sa, ak bude otvorený vždy iba 1 súbor.
-spustenie je nevyhnutné urobiť na oboch PC, teda aj na tom s Office pre domácnosti, kde to šlo, aj na tom s Office Enterprise.
-pri každom súbore vznikne textový log tam, kde sa súbor nachádzal, a to v takomto tvare:
Log_13.02.2023_09_17_24_Zoradenie.xlsm.txt
-takže dokopy budú 4 txt logy.
-tieto logy, si ešte pozrite, či v nich nie sú citlivé dáta, a pripadne opakujte od kroku s úpravou dát v 1. dátovom riadku
-tie 2 logy, ktoré sú z Enterprise, ešte označte na začiatku názvu "E_...názov súboru"
-tieto 4 logy mi pošlite, či už ich spolu zabalíte, alebo pošlete v 4 postoch, alebo mi ich hoďte na mail (mám ho v info v profile).
Příloha: zip54444_zoradenielog.zip (28kB, staženo 2x)
citovat
#054449
avatar

elninoslov napsal/a:

V tomto súbore "ZoradenieLog.xlsm" som pridal 2 makrá na Log.
makro VytvorLog
makro XLog
a na začiatku premennú
Dim Subor As String
V tomto mojom skúšobnom súbore to teda je nastavené, ale chcem od Vás:
-vytvorte si kópiu toho Vášho súboru
-otvorte ju, a skontrolujte či 1 dátový riadok Tabuliek neobsahuje citlivé info (RČ, meno, mail, telefón, adresa). Ostatné riadky okrem hlavičky a 1. riadku Tabuliek, nebudú do logu zahrnuté, ani iné dáta mimo Tabuliek (objekt Tabuľka). Tieto citlivé dáta zmeňte, ale tak, aby presne zodpovedali forme predchádzajúcich, veľké malé písmená, formát číslo, text, dĺžka, počet medzier (s medzerami vôbec nehýbte, nemažte, neprepisujte, iba ich obíďte kurzorom, teoreticky môže byť chyba aj v nesprávnych medzerách Alt+0160 vs Alt+032), nemeňte vzorce, neredukujte dáta, ani nevymazávajte celé bunky, riadky, stĺpce.
-vložte na začiatok do modulu makier tú deklaráciu premennej
Dim Subor As String
a na koniec modulu makier vložte tie 2 makrá VytvorLog a XLog
-takže máte 2 súbory s tými novými makrami (VytvorLog, XLog), teda súbor "ZoradenieLog.xlsm" a kópiu Vášho súboru.
-v oboch súboroch spustite makro "VytvorLog", pričom dajte pozor, z ktorého modulu ktorého súboru makro spúšťate. Nepomýlite sa, ak bude otvorený vždy iba 1 súbor.
-spustenie je nevyhnutné urobiť na oboch PC, teda aj na tom s Office pre domácnosti, kde to šlo, aj na tom s Office Enterprise.
-pri každom súbore vznikne textový log tam, kde sa súbor nachádzal, a to v takomto tvare:
Log_13.02.2023_09_17_24_Zoradenie.xlsm.txt
-takže dokopy budú 4 txt logy.
-tieto logy, si ešte pozrite, či v nich nie sú citlivé dáta, a pripadne opakujte od kroku s úpravou dát v 1. dátovom riadku
-tie 2 logy, ktoré sú z Enterprise, ešte označte na začiatku názvu "E_...názov súboru"
-tieto 4 logy mi pošlite, či už ich spolu zabalíte, alebo pošlete v 4 postoch, alebo mi ich hoďte na mail (mám ho v info v profile).Příloha: 54444_zoradenielog.zip (28kB, staženo 1x)


Dobrý den, děkuji za pomoc. Dnes když bude čas, tak vám pošlu. Nyní bych vás chtěl poprosit ještě o drobné doplnění jiného makra. Makro níže bych potřeboval doplnit o seřazení sloupečku (příjmení, jméno)= abecedně
Moc děkuji
Petr

Sub AMU_1()
'
' AMU_1 Makro
'

'
Worksheets("DATABAZE ZAMESTNANCU").Unprotect Password:="pekarna"
ActiveSheet.ListObjects("Tabulka1").Range.AutoFilter Field:=4, Criteria1:= _
Array("T1 AMU1", "T2 AMU1", "T3 AMU1", "T4 AMU1"), Operator:=xlFilterValues
ActiveWindow.SmallScroll Down:=-416
Worksheets("DATABAZE ZAMESTNANCU").Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowSorting:=True, AllowFiltering:=True, Password:="pekarna"
End Subcitovat
#054450
elninoslov
?
Sub AMU_1() ' AMU_1 Makro
With Worksheets("DATABAZE ZAMESTNANCU")
.Unprotect Password:="pekarna"
With .ListObjects("Tabulka1")
'vyfiltruje iba to, čo končí na *AMU1
.Range.AutoFilter Field:=4, Criteria1:="=*AMU1", Operator:=xlAnd
With .Sort
.SortFields.Clear
.SortFields.Add2 Key:=Range("Tabulka1[[#All],[příjmení, jméno]]"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
.Protect DrawingObjects:=False, Contents:=True, Scenarios:=False, AllowFormattingCells:=True, AllowSorting:=True, AllowFiltering:=True, Password:="pekarna"
End With
End Sub
citovat

Strana:  « předchozí  1 2 3   další »

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

Současné rozplánování více projektů v Excelu.

exceleda • 3.3. 17:46

Současné rozplánování více projektů v Excelu.

eLCHa • 2.3. 22:03

Oddělovač polí

Milan-158 • 1.3. 16:01

Oddělovač polí

Whooocak • 1.3. 15:14

Vkládání dat z formuláře na zamknutém listu.

Milan-158 • 1.3. 15:12

Vlastne planovanie zmien

Anonym • 1.3. 7:56

Vkládání dat z formuláře na zamknutém listu.

Začátečník • 28.2. 19:34