Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  21 22 23 24 25 26 27 28 29   další » ... 140

ADO 7,844
XLM 7,848
PQ 17,352

Z toho mála co o PQ zatím vím mi to dává i smysl. ADO i XLM provádí v podstatě 1 operaci, kdežto PQ má sérii kroků. Ale to jen tipuji příčinu.

Mezi ADO a XLM by bylo ještě zajímavé srovnávat kontrolu a doplnění více listů. Ale na to nemám čas.

@elninoslov
Seznam listů v sešitu zjistíte pomocí ADO
connection.OpenSchema(20) '20 = adSchemaTables
Načte do RecordSet, takže máte jedniý přístup do zavřeného sešitu.

Množná jsem mimo, ale nestačilo na to podmíněné formátování?

Bez přílohy
Funkce INDEX + POZVYHLEDAT s argumentem Shoda = 1 nebo -1

je to marný

Mno, když to vemu kolem a kolem.
Nechce se mi to klíčovat, ale řekl bych že postup je následující
1) Nejdříve si děláte výpis existujících souborů na následující líst
To umí PowerShell (Get-ChildItem) - když to dobře načtete do Collection, tak se zbavíte úvodní procedury Recurse2 nebo tak nějak a zároveň 1 cyklu (cestu souboru vyhledáte pomocí Key)
2) Pak pokud existuje v souboru list načítáte z něj 2 hodnoty a ty vkládáte do sloupce
Test existence listu například pomocí ADO jak jsem psal včera (Connection.OpenSchema), pokud by navíc byla jistota, že ty listy jsou vždy stejné, dá se ADO rovnou využít na vrácení hodnoty (když už je otevřené).
Mělo by to být celkem rychlé - závisí to na umístění souborů (pokud je to na síti, je tam vždycky riziko)

Pokud by na začátku tématu byla příloha a popsaný problém, je možné, že bych vám to napsal i zadarmo, protože to je zajímavý problém. Za ty kecy o mistrech světa se omezím pouze na toto nasměrování, i tak je to více, než si zasloužíte. Pokud po vás totiž něco chceme, tak k tomu máme důvod. V opačném případě tady potom následují další a další dotazy (své by mohl říct elninoslov - to téma už si nepamatuji, ale většina z nás je alergická na "super, to je ono. a prosím šlo by ještě..."). Navíc, já jsem toho viděl hodně, ale aby někdo zaplnil 1,6GB RAM jsem neviděl a proto vám na tento podle vás obecný dotaz nikdo nebyl schopen bez přílohy odpovědět.

Jednu radu zadarmo vám ale dám
Nepoužívejte ActiveWorkbook, ale ThisWorkbook nebo Workbooks(jméno). Protože nejhorší věci jsou ty, které fungují jen z 99%...

@elninoslov

Vložení vzorce na neexistující list vyvolá dialog na vyhledávání souborů, řekl bych.

Asi bych to zkusil jimak
1 Ověření existence listu pomocí ado
2 vložení hodnoty

Ale nejsem u pc

Pletete jablka z hruškami

1.1.2017 = 42 736 => neděle
Tedy den týdne = 7

Pak ale nemůžete formátovat výsledek funkce DENTÝDNE - tedy 7, protože to je 7.1.1900 a tedy sobota

zeptat se na rozeznání buňky s a bez vzorce a dostat přednášku o používání zámku a ručního formátování. No, asi mně něco uniká...

Ano uniká jedna zásadní věc. Tento obecný dotaz jste napsal vy, ale odpověď není pouze pro vás. Mohou se tady kouknout i další a ti by to mohli považovat za dobrý nápad. A protože není, reaguji.

Co si děláte ve svém excelu vy je mi jedno a pokud neumíte používat základní nástroje jako Přejít na je vaše věc, klidně si komplikujte život VBA+podmíněné formátování. Nechápu, kde berete ten pocit, že mám potřebu dávat zrovna vám ve svém volném čase přednášky.

Jak vyhledat vzorce napsal marjankaj a já pouze doplnil pár informací. Toť vše.

Pak je ještě možno MSQuerySELECT
t2.[Objednávka],
Count(t2.Dodavatel) AS Pocet
FROM
(
SELECT DISTINCT
t1.[Objednávka],
t1.Dodavatel
FROM
`C:\...\Sešit1.xlsx`.`List1$` AS t1
WHERE
t1.Dodavatel Is Not Null
) AS t2
GROUP BY
t2.[Objednávka]

Případně rovnouSELECT
t4.[Objednávka],
t4.Dodavatel,
t3.Pocet
FROM
`C:\...\Sešit1.xlsx`.`List1$` AS t4
LEFT JOIN
(
SELECT
t2.[Objednávka],
Count(t2.Dodavatel) AS Pocet
FROM
(
SELECT DISTINCT
t1.[Objednávka],
t1.Dodavatel
FROM
`C:\...\Sešit1.xlsx`.`List1$` AS t1
WHERE
t1.Dodavatel Is Not Null
) AS t2
GROUP BY
t2.[Objednávka]
) AS t3 ON
t4.[Objednávka] = t3.[Objednávka]

Tabulka umožňuje vložit maticový vzorec s automatickým "rozkopírováním". Takže je to vlastně jednoduché.

Maticově=SUMA(KDYŽ([Dodavatel]<>"";KDYŽ([Objednávka]=[@Objednávka];1/COUNTIFS([Objednávka];[Objednávka];[Dodavatel];[Dodavatel]);0);0))

Můj dotaz byl obecného rázu

Hehe, OK, tak tedy obecně.
Najděte problematické místo a to upravte tak, ať to nežere paměť. ;)))

Ještě vám věnuji jeden příspěvek.

Vložil jste tady kód, o kterém tvrdíte, že je funkční. Ten kód neprojde ani kompilací, takže v tu chvíli se tím přestávám zabývat.
Když už ale toto přeskočím, tak je tam funkce GetInfoFromClosedFile, o které se můžu jen domýšlet, co dělá.

Nezlobte se, ale chcete po nás poradit, sám tomu věnujete 10 minut času a my to máme zkoumat?

Tady vám bez přílohy poradí opravdu jen kouzelník. Výmluva o firemních datech a externích souborech neobstojí. Vy chcete poradit a vy byste měl připravit nějakou funkční alternativu (pro ukázku stačí i 5 souborů). Když už tady dáte pouze kód, tak by měl být alespoň detailně okomentovaný.

Ten kód je strašný, ale žádný učený z nebe nespadl. Nicméně makro, které jede několik hodin zahoďte a dělejte to raději ručně. Když už se vám to podaří zprovoznit, tak vypadne proud nebo se vám spustí aktualizace windows.
Cyklus 9000*2500 musí dojet max do 10 minut a to přeháním.

Ta úloha by mohla být zajímavá, kdyby byl lepší váš přístup.

Nemůže fungovat.
Na začátku máte end if bez if.

Jestli je možno použít pomocný sloupec tak
Junik:=(COUNTIFS(Tabulka1[[#Záhlaví];[Objednávka]]:[@Objednávka];[@Objednávka];Tabulka1[[#Záhlaví];[Dodavatel]]:[@Dodavatel];[@Dodavatel])=1)/1Pak výsledek=SUMIFS([Junik];[Objednávka];[@Objednávka])
Asi to půjde i bez toho pomocného, ale teď nemám čas to koumat.


Strana:  1 ... « předchozí  21 22 23 24 25 26 27 28 29   další » ... 140

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