Áno písal som to natvrdo. Iba som postupne vyďobával v každej Table jej subTable (v danom riadku - väčšinou {0} a v danom [stĺpci]), až som sa dostal k dátam. Iba som to zreťazil.
Asi by to šlo aj inak, napr. načítať to ako text a parsovať (rozdeliť podľa značiek), alebo má na to možno PQ aj origo fičurku na výcuc dát podľa značky, ale to nepoznám.
Ak máte novší Excel skúste použiť funkciu FILTER
Pokus
Tam som použil myslím príkaz Table.Combine, ktorý spôsobí spojenie Tabuliek pod seba s tým, že sa "zlícujú" rovnako nazvané stĺpce. A na to treba tú predprípravu názvov, ktorú Vám ale ťažko urobíme bez vzorového súboru. V Poznámkovom bloku ak si otvoríte ten XML, mohli by ste sa v ňom vyznať natoľko, aby ste vyrobil vymyslené 2 riadky dát. Nejde nám samozrejme o dáta, ale o štruktúru. Potom by bodol manuálne vyrobený požadovaný výsledok z tých 2 vymyslených riadkov dát. A snáď sa nám to poddá :)
Napr. takto?
Ten Kod sa môže v spodnej tabuľke aj opakovať?
Kod je číslo alebo znakočíslo?
Hore vypísať iba prvých 5?
Všetko píšem teraz len z brucha, bez skúšania.
"...Můj kód házel chybu..."
Myslíte ktorý?
Ten prvý práveže vyzerá priechodne...
Ten druhý hodí chybu:
-za 1. lebo je tam EN vzorec aj EN oddeľovač parametrov,
-za 2. lebo to, čo by vrátil "With" (ak by tam bol lokáln vzorec) je už FormatConditions, teda nemôžete vo FormatConditions hľadať ešte .Selection.FormatConditions(1).Interior. Daný objekt takú vlastnosť nemá.
To čo chcete dosiahnuť, teda zafarbiť všetky bunky v I:AV, ak v $I$1>$AV$1 je víkend, je práve najlepšie urobiť pomocou PF.
Druhá možnosť, sledovať makrom zmenu v bunkách $I$1>$AV$1, a vykonať manuálne vyfarbenie buniek, mi príde ako úplná zbytočnosť.
Takže tá funkcia si má vo VBA prečítať posledný list v poradí? Lebo takú funkcionalitu Excel inak nemá.
Alebo sú tie listy nazývané nejakým pravidlom? Napr. DD.MM.YYYY? Potom sa dá aj cez INDIRECT/NEPŘÍMÝ.ODKAZ vzorcom.
Samotné určenie času potom riešiť podmienkou IF/KDYŽ (v závislosti na predchádzajúcej odpovedi prípadne matica), ale Vy ste nenapísal jediné vodítko, ktorým smerom sa ubrať. Doplňte.
EDIT: Tu máte niektoré z príkladov, ako sa dá Váš dotaz vyložiť. Rôzne.
To je maticový vzorec (Array Formula), ten sa nezadáva iba ENTER ale pomocou Ctrl + Shift + ENTER.
Navyše pri presúvaní vzorca alebo jeho multiplikovaní, je vhodné nastaviť aj potrebné oblasti ako Absolútne odkazy (nie ako Relatívne). Rozdiel si určite dokážete nájsť :)
Pridávam aj pokus s pomocou PowerQuery.
Mrknite napr. na stackoverflow
Skúsil som odtiaľ túto:
Function Translate$(sText$, FromLang$, ToLang$)
Dim p1&, p2&, url$, resp$
Const DIV_RESULT$ = "<div class=""result-container"">"
Const URL_TEMPLATE$ = "https://translate.google.com/m?hl=[from]&sl=[from]&tl=[to]&ie=UTF-8&prev=_m&q="
url = URL_TEMPLATE & WorksheetFunction.EncodeURL(sText)
url = Replace(url, "[to]", ToLang)
url = Replace(url, "[from]", FromLang)
resp = WorksheetFunction.WebService(url)
p1 = InStr(resp, DIV_RESULT)
If p1 Then
p1 = p1 + Len(DIV_RESULT)
p2 = InStr(p1, resp, "</div>")
Translate = Mid$(resp, p1, p2 - p1)
End If
End Function
Tak skúste pokus numero uno
???
A ako zistíme, na ktorý deň pripadá koľko hodín?
Napr. Franta 10.-13. - 4 dni - 44 hodín - 11 hodín na deň?
Lojza má v jeden deň 8 a v druhý nenaväzujúci iba 4
Pepa 15. - 20. - 6 dní - 48 hodín - 8 hod na deň
Ako sa ten súčet hodín v stĺpci E delí na jednotlivé dátumy?
Aj tak neviem naisto, či potom dobre rozumiem...:
Sub Vymaz_B_AA()
Dim R As Long, i As Long, B(), rngBAA As Range, HLADAJ
HLADAJ = 703320
With ThisWorkbook.Worksheets("List1")
R = .Cells(Rows.Count, 2).End(xlUp).Row
B = .Cells(1, 2).Resize(R).Value2
For i = 1 To R
If B(i, 1) = HLADAJ Then
If rngBAA Is Nothing Then
Set rngBAA = .Range("B1:AA1").Offset(i - 1, 0)
Else
Set rngBAA = Union(rngBAA, .Range("B1:AA1").Offset(i - 1, 0))
End If
End If
Next i
End With
If Not rngBAA Is Nothing Then rngBAA.ClearContents
End Sub
Akurát som odoslal EDIT do príspevku. Mal som preklep v oblasti C1:AA1 vs B1:AA1.
To čo upravujete Vy, teda AB na AA, neodpovedá požiadavke, ktorú ste napísal, a to, že chcete AB hodnoty ponechať.
To .Cells(i, "AB") v kóde slúži práve na to, aby sa uložili oblasti, ktoré sa majú previesť neskôr na hodnoty. Nie zmazať ani nie ponechať vzorec. V AB je totiž vzorec, nemôžete mu zmazať zdrojové hodnoty C,B,K,AA, nezostane mu výsledok.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.