Skúste sa zaregistrovať a priložiť prílohu, páč neviem, čoho chcete dosiahnuť ...
Private Sub Worksheet_Change(ByVal Target As Range)
Dim StartDate As Date
With ThisWorkbook
StartDate = CDate(.Worksheets("Hárok2").Range("I2").Value)
With .SlicerCaches("NatívnaČasováOs_Dátum").TimelineState
If .EndDate < StartDate Then MsgBox "Štart je väčší ako Koniec", vbExclamation: Exit Sub Else .SetFilterDateRange StartDate, .EndDate
End With
End With
End Sub
?
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
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).
Nechcem do toho Lugr-ovi kecať, ale jediné riešenie toho magical word "niekedy" je - priložiť tie prílohy, počas ktorých to nastane. Dôvodov sú mraky, vypisovať ich všetky nebudem...
Narýchlo som omrkol Lugr-ovo riešenie (14.7.2022 16:31), a na prvý pohľad okrem maličkostí, tam nevidím dôvod nefunkčnosti. Ale vymýšľať si, a prispôsobovať tomu rôzne varianty dát, ktoré môžu nastať, sa mi nechce.
Vyskúšal som zatiaľ verziu môj PC vs. Virtual PC.
-Na oboch som prihlásený do toho istého MEGA konta
-Na oboch mám v dokumentoch vytvorené zložky
...\MEGA\import\Report\
-Túto zložku
...\MEGA\
mám nastavenú na synchronizáciu v MEGA aplikácii
-To znamená, že pri zmene súboru na jednom PC, sa mi táto zmena synchronizuje s MEGA, a prejaví sa aj v druhom PC.
-Aby to nebolo také jednoduché, tak mám na jednom PC zložku Dokumenty
D:\Dokumenty\
na druhom PC
C:\Users\Elnino\Documents\
-Pri použití tohto kódu
CESTA = CreateObject("WScript.Shell").SpecialFolders("mydocuments") & "\MEGA\import\Report\"
dostanem na jednom PC
D:\Dokumenty\MEGA\import\Report\
na druhom PC
C:\Users\Elnino\Documents\MEGA\import\Report\
-TAKŽE JE TO VŠETKO SPRÁVNE, a netuším, čo stále riešite s tými kontami, ktoré Vás skutočne nemusia trápiť !!!
-Jedine, že by ste to nemali tak, ako ste popísali. Pretože to asi nepopisujete presne. Prejdite si zarážku po zarážke, čo som teraz napísal, a čeknite, či to máte tak isto.
Áno v rýchlosti 2 chyby. Ak by ste sa poriadne pozrel na vzorec, tak na to prídete (tiež som to poriadne neskontroloval).
1. Všetky odkazy musia ísť na rozsah riadkov 10:30, nesprávne som dal omylom 11:30.
2. V zhone som nezadal správne absolútne odkazy na riadok v súčtoch obchodníkov. Takže v prvej bunke nemá byť K10 ale K$10.
Upravte vždy iba prvú bunku a vzorec rozkopírujte.
Úprava oboch verzií aj s ošetrením prevodu textu na číslo.
Office 2017 neexistuje (...,XP,2003,2007,2010,2013,2016,2019,2021,365). Od 2007 je k dispozícii objekt Tabuľka (ListObject niekedy označovaná ako ObjectTable alebo ExcelTable). Ponúka rôzne výhody, ako napr. rýchle filtre, automatické oblasti, automatické naťahovanie vzorcov a formátov,... v Hárok2 spolu s KT.
Makro by som asi aj vynechal. Veď zadajte údaje na koniec Tabuľky, a hore vo filtri dajte zoradiť Z-A dátum. Ale aj to iba pre Váš vizuál, KT a vzorcom súčtov je to šumák.
Verzia Office?
To pridanie jedného riadku - to ide iba o jednorazovú záležitosť? Alebo vždy pri nejakej akcii (makro)?
Ako často budete meniť tých obchodníkov ako často pridávať/uberať v zozname)? Ide o to, že by bolo lepšie na takýto sumár použiť KT.
Prečo je v tej tabuľke vpravo všade r. 2017?
Šanca tu je. Ja to asi cez týždeň skúsim. Teraz som si tam vytvoril účet. Musím to reálne vyskúšať, lebo nikto ste mi to nevysvetlil, ako je možné, že Vás zaujíma zmena názvu účtu, keď tú zložku máte synchronizovanú. Teda by ste ju mali mať všetci na svojom PC pod svojim účtom. Keď to budem mať sprevádzkované (musím si ešte raz prečítať celé vlákno) ozvem sa.
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
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
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.
API, 1. odkaz cez Google, odskúšal som na E2019x64 Pro SK:
Private Declare PtrSafe Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Private Const kCapital = 20
Private Const kNumlock = 144
Public Function CapsLock() As Boolean
CapsLock = KeyState(kCapital)
End Function
Public Function NumLock() As Boolean
NumLock = KeyState(kNumlock)
End Function
Private Function KeyState(lKey As Long) As Boolean
KeyState = CBool(GetKeyState(lKey))
End Function
Sub pokus()
MsgBox "CL : " & CapsLock & vbNewLine & _
"NL : " & NumLock
End Sub
EDIT: Jaj aha, Vy to chcete nastaviť, nielen prečítať...
To Vážne? Akú chybu to napíše? To si myslíte, že som jasnovidec? Áno som! A stavím sa, že tam nemáte to, čo popisujete, že tam máte. Teda, že stĺpec v Tabuľke (nie tabuľke) sa volá "příjmení, jméno".
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.