Příspěvky uživatele


< návrat zpět

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

"Zdroj dat" ...
= Excel.CurrentWorkbook(){[Name="Tabulka1"]}[Content]Zde třeba nevím, kde Excel vzal název pro zdroj dat "Tabulka1" (to jen na okraj)

Potřebuji v průběhu postupného vyplňování záznamů v zájmu chronologického a i jiného řazení a seskupování některé řádky (ručně) přesouvat.
Kde? Ve zdrojových datech?
Ano, ve zdrojových datech. Prostě záznamy v evidenci (1 záznam = 1 řádek), tedy ve zdrojových datech z hlediska Dotazu, doplňuji postupně, ale podklady, ze kterých záznamy dělám, se ke mně nedostávají v pořadí, jak je potřebuju mít v evidenci. Proto musím občas jednotlivé řádky přehazovat, neboli jinak seřadit. (To dělám ručně, protože klíč k nějakému automatickému seřazení, s ohledem na požadovaná kriteria řazení, nelze definovat.) Existence dotazu navázaného na zdrojová data ale nedovolí řádky buňky (ve zdrojových datech) přeskupovat - hláška: "Toto nebude fungovat, protože byste tím posunuly buňky tabulky v listu".
P.S.: teď jsem přišel na to, že když označím celý řádek tabulky, tak takto jej lze přesunout. Původně jsem označoval pouze vyplněné buňky v řádku a ty přesouval.
Takže tím je problém, zdá se, vyřešen... 1
Přesto děkuji za ochotu a snahu pomoct.

Ještě taková věc, na kterou jsem teď narazil. Pro následující kalendářní rok použiju vždy kopii sešitu z minulého roku, jen promažu data. Důvod tohoto postupu je ten, že v průběhu roku provedu obvykle nějaká dílčí vylepšení, tak abych použil v násl. roce aktuální poslední verzi.
Teď ale, když jsem doplnil do sešitu ten dotaz a překlopím soubor na další rok (i s tím dotazem), tak ten dotaz tak nějak tu výchozí tabulku svazuje a omezuje a nedovolí manipulaci s řádky, jak jsem zjistil.
Potřebuji v průběhu postupného vyplňování záznamů v zájmu chronologického a i jiného řazení a seskupování některé řádky (ručně) přesouvat.
Jak na to? Dotaz odstranit a vytvořit jej až na konci roku, kdy jsou už všechny záznamy provedeny a seřazeny? Nebo je jiná možnost?

veny napsal/a:

v dotazu máte seskupené řádky a tam si přidejte seskupení na sloupce které chcete přidat

Děkuji za navedení..., v podstatě to bylo jednodušší, než jsem čekal..

Z důvodu velikosti mi původní příloha nešla vložit, musel jsem data v sešitě redukovat...

Dobrý den, vytvořil jsem v Excelu svůj vůbec první dotaz v životě. Jedná se o sešit, kde vedu roční evidenci odpadů. Zapotil jsem se, byla to práce pokus-omyl, nicméně podařilo se.
Zcela se neorientuju v pojmech, tak popíšu svůj problém jak umím. Dotazem extrahuju do nového listu vybrané sloupce v podobě souhrnných údajů o množství odpadu, podle hodnot ve 3 jiných sloupcích, a to ještě s vynecháním prázdných řádků (databáze obsahuje v některých sloupcích vzorce, takže je databáze dimenzována s větším počtem řádků, než je skutečná naplněnost daty). V tabulce vzešlé z dotazu potom pomocí filtru zobrazím pouze partnera (firmu), které chci poslat souhrny odpadů, které jsme jí předali, pro odsouhlasení. V této podobě tabulku vyexportuju do PDF souboru. Také pomocí této tabulky zase použitím jiného filtru vyplňují roční hlášení o odpadech.
Následně jsem však usoudil, že potřebuju do výsledné tabulky z výchozího listu s evidencí přidat ještě některé další sloupce, a to pro lepší vypovídací schopnost tabulky. Jsou to sloupce: "kategorie" (odpadu), "název druhu" (odpadu) a "ORP - název". Jde to, nebo musím vytvořit úplně od začátku nový dotaz? Zkoušel jsem všechno možné, hledal jsem řešení i na internetu, vše bez úspěchu. Sešit přikládám. Výchozí list se jmenuje "Evidence", Tabulka vzniklá dotazem se jmenuje "Souhrny". To, že jsou některé buňky vybarveny, je nepodstatné.
Prosím o radu či pomoc.

Začátečník napsal/a:

Přesunout Application.DisplayAlerts = False v proceduře Nacti_osobni_udaje_Click za dialog pro otevření souboru.
Vypadá to, že ten přesun problém opravdu vyřešil. Já tomu sice nerozumím, ale nějak se s tím vyrovnám...
Mockrát děkuju za pomoc.

Stalker napsal/a:

Umístit do standardního modulu
Private Sub HideLabel1()
List1.Label1.Visible = False
End Sub
Díky za reakci. Makro jsem dle rady přemístil do modulu. Label teď funguje jak má. Ale dochází ke konfliktu makra:

Private Sub Nacti_osobni_udaje_Click()

s makrem:

Private Sub Nacti_osobni_udaje_MouseMove

obě v objektu List1
Jsem v koncích a tlačí mě čas, poradíš, prosím?

Začátečník napsal/a:

Kdyby byl soubor tak by se to možná dalo i posoudit lépe, kde je chyba.
Je to na tomto fóru docela standard, přikládat vzorové soubory.
Tomu jsem se chtěl vyhnout, nu co už... já jdu s prosíkem. Přikládám přílohu.
Záležitost a problém, o který jde, je na listu "Vstupní data":
- CommandButton (Nacti_osobni_udaje)
- Label1

Začátečník napsal/a:

pavelo napsal/a:Hmm..., to je hezké, ale co s tím, jak to mám opravit, aby to bylo funkční?
Že by to šlo opravit zadáním správného názvu spouštěného makra?
Application.OnTime Now + TimeValue("00:00:04"), "HideLabel1"
Zase tak omezený nejsem. Vyzkoušel jsem. Když jsem to takto upravil, tak se to celé zacyklilo a musel jsem natvrdo shodit Excel... V okně se zprávou Excelu stálo:
Makro 'C:\Users\...\Název_sešitu.xlsm'!Hidelabel1 nelze spustit. Toto makro není pravděpodobně v sešitu k dispozici nebo jsou zakázána všechna makra.
Nemůže být problém v tom, kde to makro (ta makra) jsou umístěna?

Začátečník napsal/a:

Makro List1.HideLabel1 neexistuje
existuje pouze HideLabel1
Hmm..., to je hezké, ale co s tím, jak to mám opravit, aby to bylo funkční?

Dělal jsem úpravy, tak jsem nevědomky změnil název volaného makra. Po úpravě viz níže se zdálo, že problem je vyřešn, ale při testování tlačítka samotného (Nacti_osobni_udaje_Click) dochází k nějakému konfliktu (nepracuje) s tím makrem ke zobrazení/skrytí Label1. !?
run-time error "50290"
A taky po každém spuštění Makra CommandButton s chybou dojde ke zmenšení textu Caption na tlačítku, takže je menší a menší... !?
Nevím si s tím rady 7 Private Sub Nacti_osobni_udaje_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Label1.Visible = True
Application.OnTime Now + TimeValue("00:00:04"), "List1.HideLabel1"
End Sub

Private Sub HideLabel1()
Label1.Visible = False
End Sub
Podotýkám, že všechna uvedená makra jsou v objektu List1

Dobrý den, mám potíže s chováním makra, kterým při najetí myši na tlačítko v listu má na definovanou dobu zobrazit Label. Vlastní Label je vytvořen na žádaném místě přímo v listu. Mám tento kód:Private Sub Nacti_osobni_udaje_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Label1.Visible = True Then Exit Sub
Label1.Visible = True
Application.OnTime Now + TimeValue("00:00:04"), "List1.HideLabel1"
End Sub

Private Sub WorkSheet_Deactivate()
Label1.Visible = False
End Sub

Label se zobrazí, ale po nastavené době vyskočí chybová hláška: Makro (cesta a název sešitu)List1.HideLabel1 nelze spustit. A Label zůstane visible=true. Mám to evidentně blbě. Poradí, prosím, někdo znalý?

Řádek jsem přidal, zprvu se zdálo, že zcela bez efektu... Teď už to funguje, jen někdy, jakoby nahodile nikoli. Přitom vložená sekvence vypadá jasně a srozumitelně. No, uvidíme.
Ještě jednou díky.

To Stalker: Moc děkuji za učesaný kód. Jedna věc, na kterou jsem ještě přišel už u toho mého výtvoru. Když se edituje hodnota v buňce B6 tak, že výsledkem bude hodnota stejná jako před editací, makro to vyhodnotí jako duplicitní výskyt názvu listu a vyhodí MsgBox, což může být pro uživatele poněkud matoucí. Jinak na výslednou činnost makra to vliv nemá. Ale kdyby to šlo ještě ošetřit...

Stalker napsal/a:

Kde je zakopaný pes?
1) řádně nedeklaruješ proměnné.
2) práce s definovaným názvem ve VBA -> [rok_vykaz] nebo Jménolistu.Range("rok_vykaz")
3) Tvůj kód bude neustále provádět přejmenování při jakékoliv změně na listu
4) Není ošetřen vstup (Target) na zadání jiných hodnot než čísel z rozsahu 1 až 12
Provedl jsem úpravy v kódu a už to pracuje. Určitě tam jsou nedostatky, které já ale se svými (ne)znalostmi nevidím nebo si s nimi neumím poradit. Tak bych byl vděčný, kdybys mi to naservíroval trochu názorněji.
ad4) Vstup hodnot je ošetřen ověřením dat v buňce B6, stejně tak u buňky s def. názvem rok_vykaz. Vím, z hlediska makra to není dokonalé.
'Přejmenování listu podle změny v buňce B6
Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Range("B6")
Dim sh As Worksheet
' Dim jmenoListu As String
Dim jmenoMesice As String
For Each sh In ActiveWorkbook.Sheets
jmenoMesice = Format$(DateSerial(rok_vykaz, Target, 1), "mmmm")
If sh.Name = jmenoMesice Then
MsgBox "List s názvem " & jmenoMesice & " již existuje, proto jej nebylo možné použít znovu v procesu automatizovaného pojmenování tohoto listu. Výchozí název listu můžeš ale přejmenovat ručně standardním způsobem zvolením jiného vhodného názvu.", , "Konflikt s duplicítním názvem listu"
Exit Sub
End If
Next sh
If Target = "" Then Exit Sub
Application.ActiveSheet.Name = jmenoMesice
Exit Sub
End Sub


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

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