< návrat zpět

MS Excel


Téma: uloženie hárku-listu pri prepnutí na druhý rss

Zaslal/a 17.11.2018 12:19

kabakaNašla som si makro, ktoré som si prispôsobila, upozorňuje ma na prechod z listu do listu. Ešte som k tomu pridala akciu, aby pred prepnutím predchádzajúci list uložilo.

Makro ukladá, len je to trochu zacyklené, nakoľko neovládam syntax.

Příloha: xls41913_pokus.xls (30kB, staženo 24x)
Zaslat odpověď >

#041914
avatar
Co myslíte tím, že je to "zacyklené"? Kdyby bylo makro skutečně zacyklené, tak se nedokončí, což není váš případ.

Spíše máte na mysli, že makro (resp. událost sešitu) trvá moc dlouho. No, vzhledem k tomu, že tam několikrát sešit zbytečně ukládáte, se není co divit ;-). Příkaz na uložení sešitu stačí mít v tomto případě pouze 1x, klidně hned na začátku události sešitu. Zbylé příkazy tam jsou zbytečné a jenom událost zpomalují.
P.citovat
#041915
elninoslov
Netreba to ukladať vždy pri prepnutí, ale iba ak došlo k nejakej zmene.
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Not ThisWorkbook.Saved Then ThisWorkbook.Save: MsgBox "Uložené", vbInformation
End Sub


"...list uložilo..."
??? Myslíte skutočne list ? Nie náhodou zošit ?
Ak list, tak to je niečo úplne iné.
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim sName As String
If Not ThisWorkbook.Saved Then
sName = ThisWorkbook.Path & "\" & Sh.Name
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sh.Copy
With ActiveWorkbook
.SaveAs sName & ".xlsx", xlOpenXMLWorkbook
.Close
End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox "Uložené", vbInformation
End If
End Sub
citovat
#041916
kabaka

Pavlus napsal/a:

Co myslíte tím, že je to "zacyklené"? Spíše máte na mysli, že makro (resp. událost sešitu) trvá moc dlouho. P.


Samozrejme, presne tak zacyklené v zmysle, že trvá dlho, áno príkazov som dala viac, nevedela som, že stačí 1. Zmazala som, funguje.

elninoslov napsal/a:

Netreba to ukladať vždy pri prepnutí, ale iba ak došlo k nejakej zmene. ??? Myslíte skutočne list ? Nie náhodou zošit ? Ak list, tak to je niečo úplne iné


Áno list, hárok, nie zošit.

Ukladať iba keď dôjde k zmene je dobý nápad, pôvodne taký bol plán, len som ho ešte nedotiahla do konca.

Vďaka, otestujem.

.SaveAs sName & ".xlsx", xlOpenXMLWorkbook

Upravila som, toto som vyhodila,lebo mi to ukladalo ako samostatné zošity. Len, keď som to vyhodila, tak ukladá a msgbox vyskakuje pri prepnutí listu aj keď nedôjde k žiadnemu zápisu v liste, ale aj tak vďaka, spĺňa to účely.citovat
#041918
elninoslov
Ale to makro kde sa nachádza uvedený riadok je pre prípad ukladania každého listu (ešte raz - LISTU, nie zošitu). Ako chcete inak uložiť list, ako do súboru ? Vy keď chcete ukladať zošit (nie List), tak použite to prvé makro. To je na zošit. To druhé si ani nevšímajte.citovat
#041919
kabaka

elninoslov napsal/a:

Vy keď chcete ukladať zošit (nie List), tak použite to prvé makro. To je na zošit. To druhé si ani nevšímajte.


Asi sme sa nepochopili, nechcem ukladať samostatne zo zošita jeden list. Stále sa jedná o ten istý súbor. Teda o ukladanie informácií pri prepnutní z listu do listu v jednom zošite.

Máte pravdu, to prvé makro je pre mňa dobré.
Funguje ako má.
Ste programátor, máte inú logiku chápania ako ja .... :)

Ale vďaka aj za to druhé makro, určite sa mi v budúcnosti môže zísť.citovat

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