< návrat zpět

MS Excel


Téma: Kontrola hodnoty v bunkách rss

Zaslal/a 22.1.2016 15:51

Dobrý deň
Potreboval by som pomoc pri kontrole hodnôt v bunkách v jednotlivých listoch.
V zošite mám hárky A,B,C,D,K , v ktorých mám tabuľku z hodnotami v bunkách G5-AI53, akurát na hárku K je tabuľka G-AI77. Potreboval by som, keď sa zmení zápis v jednotlivej bunke, aby to zapísalo na hárok Zoznam, tak ako je to navrhnuté. Všetky bunky po skončení mesiaca sú zapísané. Môže byť makro.
Pozor je to pre Excel 2003
Ďakujem

Příloha: rar29469_zosit11.rar (5kB, staženo 31x)
Zaslat odpověď >

Strana:  « předchozí  1 2
#029521
avatar
V makro som začiatočník.
Verzia od vovka.h je dobrá, takto si to predstavujem
Keď pracujem na jednom počítači, tak všetko ide OK. Akonáhle sa to nahodí na "server", kde sa pripája viacej počítačov, tak kontrola prestane fungovať.
Díkcitovat
#029537
avatar
Není vyloučené, že kontrola při umístění sešitu na síti nepřestává fungovat, ale že jenom funguje se zpožděním. Změna, provedená v Excelu, se nepromítá bezprostředně na disk, ale provádí se až při automatické aktualizaci ve stanovených časových intervalech. To je také příčinou datových kolizí při sdílení sešitu. Navíc uvidět provedenou změnu z jiného počítače vyžaduje, aby se změněný sešit do tohoto počítače nově načetl.
Je možné nastavit režim práce sešitu tak, aby se sešit na disku aktualizoval po každé významné změně. To ovšem vyžaduje kousek programu ve VBA, který určí, co chceme pokládat za "významnou změnu". Aktualizovat po každé události Change by totiž zpravidla neúměrně a dramaticky zpomalilo práci se sešitem.
Téma režimu práce sešitu v podmínkách sdílení není jednoduché a pro "začátečníka v makrech" je přímo nevhodné. Proto jsem silně doporučil sdílení nepovolovat. V režimu bez sdílení by podle mne žádné problémy se sítí vznikat neměly (s výjimkou průběžného monitorování změn z jiného počítače).citovat
#029554
avatar
Ďakujem všetkým, za ochotu a pripomienky.
Kontrola pracuje s miernym oneskorením. Dnes som to otestoval a pracuje to ako som si to predstavoval.
Ešte raz ďakujemcitovat
#031829
avatar
Čus, makra, který zasíláte fungují na výbornou, konkrétně soubor "zurnal16".. nicméně mam větší soubor, kde je spoustu výpočtů a když jsem zavedl makro pro zápis změněných buněk, tak když napíšu hodnotu ve sledované oblasti, dám enter a čekám cca 1,5s než mohu psát do další buňky, je tohle normální? nedalo by se to nějak pozměnit nebo udělat jinak, aby zápis proběhl hned a nebyla tam tak velká časová prodleva nebo je to vlastnost hlídání změn? Jde o to, že mam desítky listů a v každém se hlídá stejná oblast a je při vyplňování je to katastrofa 7citovat
#031843
elninoslov
Skúste trošku pozmeniť makrá na :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name = "Zoznam" Then Exit Sub
If Intersect(Target, Range("G5:AI53")) Is Nothing Then Exit Sub
With Target
Call PopisZmeny(Sh.Name, .Address(0, 0), .Value)
End With
End Sub


a

Sub PopisZmeny(List As String, Poloha As String, Napln As Variant)
Dim User As String
With Application
.EnableEvents = False
User = .UserName
With Sheets("Zoznam")
.Cells(.Cells(1, 7) + 1, 1).Resize(, 5) = Array(Now, List, Poloha, Napln, User)
End With
.EnableEvents = True
End With
End Sub

či sa to nezlepší. Mám tu jeden obdobný problém. Excel pri viac listoch takmer exponenciálne spomaľuje. Aj pri zadávaní údajov, ale najmä pri pridávaní nových listov. Žiaľ som rovnako bezradný. Skúste.citovat
icon #031844
eLCHa
Možná jsem mimo, ale nechce se mi to číst. Takže se případně omlouvám.

Donedávna jsem používal soubor, u kterého jsem potřeboval sledovat změny. Obsahoval desetitisíce vzorců a tento log mne absolutně nezdržoval, protože všechno šlo mimo zápis do jakéhokoliv listu - tedy nebyla spuštěna rekalkulace. Data jsem udržoval v listboxu a pokud došlo k uložení sešitu, zapsal jsem je do souboru csv. Pokud k uložení nedošlo - data byla zapomenuta.citovat
#031848
avatar

elninoslov napsal/a:

Skúste trošku pozmeniť makrá na :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name = "Zoznam" Then Exit Sub
If Intersect(Target, Range("G5:AI53")) Is Nothing Then Exit Sub
With Target
Call PopisZmeny(Sh.Name, .Address(0, 0), .Value)
End With
End Sub

a

Sub PopisZmeny(List As String, Poloha As String, Napln As Variant)
Dim User As String
With Application
.EnableEvents = False
User = .UserName
With Sheets("Zoznam")
.Cells(.Cells(1, 7) + 1, 1).Resize(, 5) = Array(Now, List, Poloha, Napln, User)
End With
.EnableEvents = True
End With
End Sub
či sa to nezlepší. Mám tu jeden obdobný problém. Excel pri viac listoch takmer exponenciálne spomaľuje. Aj pri zadávaní údajov, ale najmä pri pridávaní nových listov. Žiaľ som rovnako bezradný. Skúste.


pomohlo to jedrobně možná tak o pár milisekund, ale pořád žádná sláva, bohužel.. asi s tím nic nepůjdecitovat
#031949
avatar
dalo by se původní makro upravit tak (žurnal 16), aby se spouštělo pouze na některých listech? mám List1, kde jsou vypsány listy, které by se evidovali, nastavil jsem jména do tabulky a tím pádem by šlo o celou tabulku a makro by hlídalo listy jen z této tabulky, které by se rozšiřovala.. možná by to rychlosti pomohlo, mám cca 10listů, kde změny hlídat nepotřebujicitovat

Strana:  « předchozí  1 2

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

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.

On-line nástroje