Příspěvky uživatele


< návrat zpět

Strana:  « předchozí  1 2 3 4 5 6 7 8 9   další » ... 10

V panelu nástrojů Rychlý přístup mám svojí ikonu a na ní navázanou níže uvedenou proceduru. Používám ji pro zafiltrování libovolné tabulky podle hodnoty v aktuální buňce. Léta mi to funguje bez potíží, ale v poslední době to v některých tabulkách nasadí filtr do nesprávného sloupce, obvykle do iCol + 1.
Kde může být problém?
Upřesňuji, že obě tabulky (tedy kde to funguje i kde to nefunguje) mají data souvisle od sloupce A, žádný sloupec není skrytý...
Předem dík, M
Sub FiltrPodleHodnoty()
Dim iCol As Integer, Dim rgTab As Range, Dim strVal As Variant
iCol = ActiveCell.Column
Set rgTab = ActiveCell.CurrentRegion
strVal = ActiveCell.Value
On Error Resume Next
ActiveSheet.Range(rgTab.Address).AutoFilter Field:=iCol, Criteria1:=strVal
ActiveWindow.SmallScroll Down:=-100
On Error GoTo 0
End Sub

Aha dík, Application.DisplayStatusBar = True to vyřešilo.
Při otevírání sešitu tam mám zálohovací rutinu, která do Status baru vypisuje aktuální kroky které zrovna provádí. Na jejím konci jsem ukončil hlášení nesprávným způsobem, tedy
Application.DisplayStatusBar = False namísto Application.StatusBar = ""

Zvláštní, že jsem si toho po celé ty roky nevšiml 4

Ahoj,
ukázalo se, že jeden můj excelový sešit (VBA) po otevření způsobí, že Excel přestane nabízet automatický Průměr, Počet a Součet ve spodním stavovém řádku vpravo (viz obrázek). Zatím to dovedu uvést do původního stavu jenom restartem celého excelu.
V možnostech excelu jsem to nenašel a neumím to ani vygúglit bo nevím jak se tato fíčurka jmenuje česky, natož anglicky.

Předem dík za radu či alespoň za název této funkcionalitky

Bylo mi divné, že App.EnableEvents někdy funguje a někdy ne 4, tak jsem to obvykle obešel jinak.
S tou globální proměnnou to zřejmě bude lepší, vyzkouším.

Každopádně dík za upřesnění.

Takže jsi na to přišel sám, paráda.
Jen upozornění na ošidnost událostních procedur pověšených na změnu - ty se spouští pokaždé když dojde k změně v daném prvku, tedy i když se ten prvek mění makrem. Takže i když načítáš nějaký záznam jiným makrem, přičemž to změní hodnotu v txtID, tak v tom okamžiku proběhne ta tvoje vyhledávající rutina, takže ve finále se to vlastně provede dvakrát. A docela dobře by se to mohlo i zacyklit. Zde je možné použít buď jiné události než change, anebo v momentě když si to nepřejeme, to potlačit pomocí Application.EnableEvents = False. Anebo to spouštět tlačítkem

Ve čtvrté verzi (Ucim_sa_VBA4.xlsm) bylo i listování záznamy, ale tys mi poslal něco, co je verzí 3, čili ještě bez toho. Pokud by sis v tom udělal pořádek, asi bys nic nezkazil...

A to hledání chceš spouštět tlačítkem z listu anebo to chceš startovat z prostředí formuláře? Anebo obojí?

Vidím, že listování záznamy z mé poslední přílohy jsi neimplementoval ale neva.
Uložení původních hodnot záznamu předtím, než uložíš změněné hodnoty (tedy jestli jsem to podle popisu správně pochopil) najdeš v příloze

Přiznám se, že moc těm otázkám nerozumím. Naznačuješ, že ty jednotlivé kroky si implementuješ do svého souboru, ale ten nepřikládáš - asi tam máš nějaká data které nechceš zveřejňovat. Ale tím pádem jsme odkázani na slovní popis, který nese jen část informace plus kognitivní zkreslení.

Buď si ty svoje data nějak anonymizuj či jinak vhodně pozměň, (zachovej datové typy) ale bez přiloženého kompletního souboru je to odsouzeno nezdaru z uondání.

Dim OBLAST1_paste1 As Range
Dim x As Integer

Set OBLAST1_paste1 = Worksheets("List16").Range("C8:C19")
x = 15
OBLAST1_paste1.Value = x

Jasně že tam lze ještě hodně vylepšit - např. zadávání datumu pomocí kalendáře anebo pomocí lomítka (jednou rukou), kontrola zdali je zadaná hodnota opravdu datum atd...
Nebo informační hláška při editaci záznamu, kolik hodnot se chystáš v daném záznamu změnit. Taky v tom svém formuláři zatím nemáš ComboBox, Listbox, OptionButton, CheckBox jakožto užitečné a elegantní vychytávky pro maximalizaci uživatelského komfortu...

Tak soubor v příloze už obsahuje to úplné minimum, které opravdický funkční formulář musí umět, čili umožňuje listovat jednotlivými záznamy a editovat je. V případě, že je na listě nasazený filtr, tak neviditelné řádky ignoruje.

Pro listování bylo potřebné změnit vlastnost formuláře ShowModal na False (i když dalo se to ošetřit i přes ignoraci chyby On Error Resume Next). Toto rovněž umožňuje při otvřeném formuláři kopírovat hodnoty z a do formu, což při ShowModal = True nejde.

Věřím, že přidání poznámky, vyčištění kolonek atd zvládneš sám. Rovněž odstranění záznamu by už neměl být problém. Šak uvidíme... (možná)

To je důvod, proč jsem do formu přidal textbox s informací o číslu řádku.
Doufám, že s verzí 2 už ses seznámil a můžeme přistoupit k verzi 3. Pro účely zjišťování posledního řádku se vyplatí mít extra funkci, která jej spolehlivě najde i v případě, když je v tabulce zapnutý nějaký filtr - takže to tam taky najdeš.
Pro ukládání údajů z formuláře na list používám jednu rutinu, které předávám dva argumenty: číslo řádku a informaci o tom, jestli se jedná o nový záznam anebo editaci existujícího.
Všimni si jaké typy procedur jsou v kódu formuláře (událostní) a že ty volané je lepší mít v samostatném modulu.

Tak fajn. V přiloženém souboru je vyřešené načítání dat z listu do formuláře.
Kód je komentovaný, takže to určitě pochopíš.
Prvky formuláře jsem trochu přejmenoval, aby bylo zřejmé o jaký typ jde (txt... = textbox, btn...= tlačítko) a pak co nese za informaci. Čili txtID je mnohem výstižnější než Textbox4.
Jak si všimneš, u některých prvků jsem měnil vlastnosti.

Až to vstřebáš, tak další částí bude ukládání dat z formu na list

OK, no to bude na dýl.
Jestli rozumím správně vyjádření "ako si uložím do Hárok2 data ešte pred prepísaním ?", tak chceš po vyplnění formuláře uložit data do tabulky. Ale jistotu nemám, mate mně tam to "ešte pred prepísaním".
Slušný form má umožńovat načtení zaznamu z listu do formu, listování jednotlivými záznamy, editaci existujících záznamů a uložení nového. S čím chceš začít?

Posílám v příloze. Zamykání si uprav, s průřezem nejde pracovat při zamčeném listě, tak jsem zamykací ceremonie deaktivoval
V kódu pro list 5, na kterém se ten průřez (angl. Slice) nachází je událostní procedura Worksheet_PivotTableUpdate, která pak volá rutinu VytvorSoubor, které předává název, jaký má vytvořit.
Zbytek si musíš dotvořit dle svých představ, které jsou popsány jenom mlhavě


Strana:  « předchozí  1 2 3 4 5 6 7 8 9   další » ... 10

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

Vynásobit hodnoty kurzem - Power Query

Alfan • 26.4. 7:56

Relativní cesta - zdroje Power Query

Alfan • 26.4. 7:54

Vynásobit hodnoty kurzem - Power Query

elninoslov • 26.4. 7:54

Vynásobit hodnoty kurzem - Power Query

lubo • 25.4. 19:18

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 15:12

Relativní cesta - zdroje Power Query

Alfan • 25.4. 15:08

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 14:21