Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  51 52 53 54 55 56 57 58 59   další » ... 122

Pred nejakou dobou sa tu riešilo počítanie týždňov, podľa ISO je prvým týždňom roku 2015 obdobie 29-12-2014 až 4.1.2015.

Pokiaľ ti nevadia pomocné stĺpce, tak v prílohe. Funguje až od excel 2010. Mám dojem, že musíš mať povolené analytické funkcie. Vyskúšaj.

Šlo by to i bez pomocných stĺpcov, ale zbytočne moc práce, to robiť nebudem.

jen my není pořád jasné proč prochází všechny datumy a neoznačí přímo poslední
Priznám sa, že asi presne nerozumiem, na čo sa pýtaš.
Pokiaľ by si chcel, aby sa do KT preniesli rovno iba data za aktuálny deň, tak je možné upraviť priamo dotaz, ktorý do excelu (stále riešiš pravdepodobne výmenu dát s SQL serverom, však?) dotiahne iba dáta za tento konkrétny dátum.

Pokiaľ ale chceš v exceli dáta za nejaký rozsah dátumov (eventuálne všetky) a ide ti len o to, aby bol aktuálny dátum vybraný v sliceri, no tak, pokiaľ to má byť makrom (vadí ti, že by si to mal zaklikávať ručne), tak nepoznám spôsob, ktorý by to dokázal bez nejakého cyklu. Problém je totiž v tom, že pravdepodobne nie je možné (neprišiel som na spôsob, akým by to možné bolo) nastaviť vlastnosť selected u všetkých položiek naraz na false. Minimálne u jednej musí byť true. Úplne rovnako ti to vytvorí záznamník makra. Pokiaľ to robíš ručne, tak skutočne stačia iba 2 kliky:
1. zrušenie filtra
2. kliknutie na konkrétnu položku
Záznamník ale zapíše príslušnú hodnotu vlastnosti selected u každej položky - preto potom v kóde ten cyklus, ako som uviedol, vo VBA to pravdepodobne inak, než nastaviť to u každej položky jednotlivo, asi nepôjde. Excel samotný na to asi používa niečo rýchlejšie, o VBA je známe, že to nie je vždy najrýchleší spôsob.
Priznám sa ale, že pokiaľ riešiš to, že kód beží kvôli kýženému výsledku pár sekúnd, tak mi to príde ako úsilie neprimerané k tomu, čo chceš nakoniec získať, t.j. úsporu pár sekúnd. Za seba by som to rád uzavrel, nemám dôvod riešiť vec, ktorá mi príde ako absolútne zbytočná.

Ešte som napísal rutinu na zápis názvu listu do bunky A1, pokiaľ by si chcel použiť riešenie z predošlého príspevku. Vlož si do modulu v tom mustri a môžeš spustiť. Pozor: pokiaľ bude v bunke A1 nejaká hodnota, tak makro ju prepíše názvom listu:Sub DoplNazovDoSheetu()
Dim Sh As Worksheet, mySh As Worksheet
For Each Sh In ThisWorkbook.Sheets
Set mySh = Sh
With mySh
.[A1] = .Name
End With
Next Sh
Set mySh = Nothing
End Sub

btw, opäť zavádzajúci názov vlákna - u problému, ktorý riešiš, sa nejedná o import

No, celé sa mi to robiť nechce, ale pichol som aspoň s tým prvým: List1 až List15 obshuje tabulku (pokaždé na jiném místě) kde bych potřeboval propsat data z Listu "přehled" do stanovených buňěk - příklad v List1.
Na Liste1, 2 a 3 máš vzorec, ten stačí skopírovať na ďalšie listy. Potom sa ti budú tie dáta z Listu Přehled zobrazovať na príslušných listoch. Do bunky A1 si musíš podoplňovať názvy jednotlivých listov. Buď ručne, alebo si napíšeš jednoduché makro, ktoré to tam jednorazovo zapíše.

edit: na Liste1 v stĺpci F som omylom nechal nejaké vzorce, tie môžeš zmazať, prílohu už kvôli tomu zipovať a posielať znovu nebudem.

Ako som uviedol, riešením je použitie ThisWorkbook.Path. Zdráhal si sa sem dať prílohu, mám sto chutí tuná s vysvetľovaním končiť, páč mám za to, že doplnenie do kódu by si pri troche snahy zvládol a lenivosť nechcem podporovať, o dôvodoch si môžeš myslieť, čo chceš. Ale urobím dobrý skutok a dole nájdeš minimálnu modifikáciu tvojho kódu, ktorá pracuje s tým, čo z nejakého dôvodu nazývaš relatívnym odkazom. Bude fungovať za podmienky, že xls i txt sa budú nachádzať v rovnakom adresári, predpokladám, že aspoň uvedená podmienka platí, ako si tvrdil. Tú spústu balastu, x-krát úplne zbytočne select atd. som neriešil, doplnil som skutočne akurát novo zadeklarovanú premennú, naplnil ju hodnotou a na ňu odkázal. T.j. 3 riadky, pokiaľ by som to chcel urobiť prasácky, tak by to bol jeden:

Private Sub CommandButton1_Click()
' Vloží data z cesty viz. níže. Soubor musí být s pøíponou .txt, jinak nebude makro fungovat.

Dim myPath As String
myPath = ThisWorkbook.Path & "\"

Range("A1").Select
Columns("A:DD").Select
Selection.ClearContents
Range("A1").Select

With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & myPath & "kriteria.txt", Destination:=Range("$A$2"))
'.CommandType = 0
.Name = "kriteria"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 852
.TextFileStartRow = 1
.TextFileParseType = xlFixedWidth
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1)
.TextFileFixedColumnWidths = Array(8, 6, 12, 9, 9, 10, 10)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Columns("C:H").Select
Selection.ColumnWidth = 13.14
Columns("A:B").Select
Selection.ColumnWidth = 2.86
Selection.ColumnWidth = 6.71
Columns("A:L").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Columns("C:V").Select
Selection.NumberFormat = "0.00"
Range("I1").Select

End Sub

edit: Teraz som si uvedomil, že to svoje makro si asi celé nahral záznamníkom, akurát ho potom dal pod tlačítko, to bola jediná úprava. Takže, pravdepodobne som príliš trdý, pokiaľ ťa viním z lenivosti, proste úprava makra je zatiaľ nad tvoje sily. V tom prípade beriem späť tú lenivosť. Zaujímalo by ma ale v takom prípade, ako by si si predstavoval pomoc bez toho, aby si zverejnil kód. Niečo mi tu nehrá 1

@Johan, no vidíš, na základe peknej prílohy úplne jednoduché 1
Napr. takto:=MATCH(1;NOT(ISNUMBER(A1:AD1))*(A1:AD1<>"");0)
vzorec musí byť v tomto prípade maticový

príspevok som zeditoval a doplnil, tak skús prípadne ešte to, inak už ma v tejto chvíli nenapadá nič..

jj textové pole, v EN Text Box. obdélník mi umožňuje i tu buňky vybrat, pokud najedu kurzorem mimo text - v prípade, že Fill je nastavený na No Fill. U textového poľa to nejde. V oboch prípadoch sa ale dá použiť pre posun na bunku pod daným objektom šípka na klávesnici (arrow key).

marjankaj, prestaň byť prostoreký, naši drahí neplatiaci zákazníci na to nie sú zvedaví 1

Objekt na karte Insert (vložit) -> Text
Prípadne nejaký Shape by to mohol byť, napr. Obdĺžnik a v ňom ten text formou linku: Insert->Illustrations->Shapes, česky zrejme Vložit->Obrázky->Tvary ? Obdĺžnik mám tiež upresniť? 1

Pozor, kolega hľadá písmená, nechce hľadať čísla, takže asi špatne.. Nejaká tajná príloha by nebola?

žeby textbox?

Môžeš vyskúšať, ale netuším, či sa to nejako zrýchli, inak neviem:

Sub GroundHogDay()
Dim today As Date
Dim todayString As String
Dim Item As SlicerItem, Slc As SlicerCache

today = Now
todayString = Format$(today, "yyyy-mm-dd")
Set Slc = ThisWorkbook.SlicerCaches("Prurez_ProcessingDate")

With Slc
.ClearManualFilter
.SlicerItems(todayString).Selected = False
For Each Item In .SlicerItems
Item.Selected = Not Item.Selected
Next Item
End With

Set Slc = Nothing
ThisWorkbook.RefreshAll
End Sub

edit: ešte ma napadlo, počas behu toho makra na začiatku zastaviť prepočítavanie, stránkovanie a prípadne povolenie udalosti, t.j. Calculation, ScreenUpdating, EnableEvents a na konci to vrátiť na pôvodné hodnoty. To, by, myslím, pomôcť v zrýchlení už mohlo znateľne..

Tlačítko? Isteže ide. Ale pokiaľ má spustiť akurát prepočet, tak aká je výhoda tlačítka proti F9, eventuálne Ctrl+Alt+F5 (Refresh All, je k tomu i ikona, čiže tlačítko)? Dobre teda, tlačítko. V kóde bude jedno z nasledujúcich:

všetky otvorené súbory Excel: Application.Calculate (alebo iba Calculate)
konkrétny list: Worksheets(1).Calculate
konkrétny rozsah (range): Worksheets(1).Rows(2).Calculate
celý súbor: activeworkbook.RefreshAll

edit: RefreshAll (Ctrl+Alt+F5) v prípade datových pripojení, čo asi nebude (neviem) tvoj prípad.

Do úvahy prichádza ešte Ctrl+Alt+F9, vo VBA: Application.CalculateFull

@Dejavu
v plnom rozsahu platí to, čo tu uviedol kolega, ktorému ďakujem za jeho čas, ktorý tomu venoval.
Opäť operuješ s pojmom relatívny odkaz (na cestu). Mám za to, že teda myslíš premennú?, do ktorej by šiel uložiť reťazec s cestou k daným 2 súborom. Ako som zmienil, je možné použiť vlastnosť Path objektu Workbook. Pokiaľ sa teda bude kód nachádzať v danom .xls, tak cez ThisWorkbook.Path. V prípade, že by sa kód nachádzal napr. v nejakom inom xls (nepredpokladám, ale nevidím ten kód, čiže možné to je), tak v prvom kroku uložiť xls, do ktorého nejakým spôsobom prenášaš dáta z txt, do objektovej premennej typu Workbook a pre zistenie cesty potom použiť vlastnosť Path u danej objektovej premennej.
Buď to zvládneš z popisu sám (asi by si mal), alebo sem daj prílohu, prípadne aspoň ten kód. Keby si sem býval dal prílohu (dôvody, po tom, čo ich uviedol eLCHa, sú už snáď pochopiteľné), mohlo to byť dávno vyriešené. Takto akurát mrháme časom a riešime zbytočne, či som podráždený 1


Strana:  1 ... « předchozí  51 52 53 54 55 56 57 58 59   další » ... 122

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