Chýbal mi tam predsa posledný parameter v MATCH(). Vedľa som pridal aj ten druhý spomínaný spôsob čo čekuje stĺpec C:C.
Máte pravdu nedomyslel som to. Napadlo ma nechať A:E, do F dať dátumy výkonu, a do G výkon. Síce by sa dala robiť z toho KT so sumármi pre každého zadávateľa, zákazku, či výpis v daný deň, ale musel by sa opakovať pri zadávaní riadok v stĺpci A a C, čo by bolo naprd. Síce by sa pekne scrolovalo, ale bolo by to neprehľadné. Viac sa už radšej dnes nezamýšľam. Dobrú...
Heh, Elnino sa sem dostáva až teraz. A to iba uspať PC, páč mi tu ide celý deň na 2 veci...
Zajtra si aspoň omrknem riešenia.
Zbytočne pomalé to robiť po 1 riadku a kopírovať celé riadky. Tie listy majú rozdielnu šírku, alebo vždy rovnakú ? Navrhujem použiť UsedRange, prípadne pole+kolekciu. Ak nikto, tak možno cez obed Vám to spravím. Najlepšie by bolo priložiť fiktívne dáta s 2 listami s pár riadkami, a výsledkom. Ale nech to vyzerá ako skutočný súbor, teda či je niečo pod touto tabuľkou, či vedľa nej (súčtové riadky stĺpce). Nech je vidieť prípadná rozdielnosť v počte stĺpcov a pod.
Veď toto sú jednohubky :)
Prípadne PowerQuery. To by som v PQ možno zvládol aj ja
Vzorce máte v podmienkach upravené, stačí iba absolútny "$" odkaz na stĺpec B teda $B3. Podmienky nastaviť iba na jednu bunku F3. A potom napr.
-Označiť bunku F3, Ctrl+C, označiť potrebnú oblasť F3:U6, pklik, možnosti prilepenia, Formátovanie.
-Označiť bunku F3, potiahnuť kam treba dole alebo doprava.
-Rovnako ak pridáte nový dátum, označte iba posledný predošlý stĺpec, a natiahnite doprava. Skopírujú sa aj predošlé dáta, tie zmažte, alebo použite iba kopírovanie formátu, viď vyššie.
-Alebo si nastavte/nakopírujte formát na väčšiu oblasť naraz.
Apropo dátumy - viete, že víkendy máte mimo ? Počet dní v týždni máte 6?
PS: A prečo nezadávate dáta pod seba. Dali by sa potom pekne filtrovať podľa dátumu, zadávateľa a pod.
Pre priloženie súboru s makrom treba súbor zabaliť do ZIP, RAR. Samotný XLSM nieje možné na fórum priložiť.
Pozor vyhľadávaná bunka musí mať rovnaký formát ako prehľadávané dáta. Hľadané ste mal ako Všeobecné, a prehľadávané ako Text. Ak tam máte v dátach ten stĺpec Lines, tak aj podľa toho sa dá určiť, či treba aj druhý riadok. Teraz som to určil podľa prázdnej bunky v prvom stĺpci.
A čo určuje, kedy tam bude ten List 0 a kedy nie?
Ako to súvisí s tými náhodnými číslami vo vedľajšom vlákne?
Pridanie nového listu ... no to už vôbec nechápem. Vlastne ako to má celé fungovať je dosť divné. Našiel som si tu rozpracovaný súbor, čo som sa Vám to už snažil poriešiť, a už viem prečo som toho zanechal. Raz sú dáta s medzerami (riadkami), potom bez, to sa dá dopočítať. No vôbec sa neráta s tým, čo ak sa zmení názov tovaru? Alebo Umiestnenie v tabuľke ?
Množstvo zádrhelov a podivností. Čo s tými hypertextovými odkazmi v liste "Menu", pri akej príležitosti a kto ich má vytvárať ? Hypertextový odkaz je napr aj na cene "2,- €" (J13 a J14) v liste "Tlač".
Na každom liste zostáva tlačítko "Inventár", ktoré prepíše dáta na liste "Inventár" podľa toho na ktorom liste bolo stlačené ? To sú teda tie listy 0-99 dni? 99 dní ale mesiac nemá? Čo iné okrem dní to môže byť, ak je v G1 mesiac? Alebo sa inventár či sumár nerobí každý mesiac ? Ako potom vytvárať mesačné odkazy v "Menu", keď sa nerobí súhrn každý mesiac?
...
Obávam sa naozaj veľkej straty času. Dovysvetlite prosím používanie súboru.
Popíšte čo najskôr čo potrebujete, lebo už mám zas pomenej času na fórum ...
Veď to otestujte cez Len(Dir()) tak ako testujete existenciu adresárov. Napr. :
Sub Tisk_protokolu_do_PDF()
Dim Soubor As String, Slozka As String, Zakazka As String, Rozhodnuti As Long
Slozka = ThisWorkbook.Path
If Len(Dir(Slozka & "\PDF", vbDirectory)) = 0 Then MkDir Slozka & "\PDF"
If Len(Dir(Slozka & "\PDF\Protokoly", vbDirectory)) = 0 Then MkDir Slozka & "\PDF\Protokoly"
If Len(Dir(Slozka & "\PDF\Protokoly\Hotové", vbDirectory)) = 0 Then MkDir Slozka & "\PDF\Protokoly\Hotové"
With ThisWorkbook.Worksheets("Kovo - actual forms")
Zakazka = .Range("AK1").Text & "_" & .Range("AL1").Text & " - " & .Range("AJ3").Text
Soubor = Slozka & "\PDF\Protokoly\Hotové\" & Zakazka
Rozhodnuti = vbYes
If Len(Dir(Soubor & ".pdf", vbNormal)) <> 0 Then
Rozhodnuti = MsgBox("Soubor PDF již existuje." & vbNewLine & "Přejete si ho prepsat ?" & vbNewLine & vbNewLine & Soubor & ".pdf" & vbNewLine & vbNewLine & _
"ANO - přepsat" & vbNewLine & _
"NE - uložit s číslem 2" & vbNewLine & _
"ZRUŠIT - zrušit operaci", vbQuestion + vbYesNoCancel, "Upozornění")
End If
If Rozhodnuti = vbCancel Then Exit Sub
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Soubor & IIf(Rozhodnuti = vbNo, "2", "") & ".pdf", _
Quality:=xlQualityMinimum, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End With
End Sub
Makro, ktoré to urobí jednorázovo na 500 000 riadkoch (len multiplykovaný zoznam obcí) pod 10 s (u mňa 6,5 s) aj so StatusBar-om.
Celý 4,7 MB súbor s 500 000 riadkami je na GoogleDrive.
Makro?
Ale nezabúdajte, že v makre sú definované pozície riadkov a stĺpcov, teda nemôžete len tak mírnix-tírnix meniť pozície tabuliek. Rovnako je potrebné dbať na to, aby pod názvami v stĺpci B v liste "tabulka A", a rovnako za názvami v riadku 4 na liste "tabulka B", neboli žiadne data. Je to určujúci stĺpec pre načítanie dát, a riadok pre mazanie predchádzajúcich.
Opakujem sa po stý krát - makrá sú takmer vždy špecializované. Zadajte presné požiadavky, alebo nič bez rozmyslu nemente.
A nevedel by ste niekto na to zložiť pattern pre RegExp? To nedávam, tak neviem, či by to šlo.
Pomocou kolekcie a poľa.
No chlapi neviem, nedarí sa mi to veru rozbehať...
PS: @marjankaj: Z hľadiska podmienok zadávateľa, že má vybrať texty s iným znakom ako písmeno, nieje nič na "Komarno" zle. No z hľadiska nápravy názvov od mepexg-a na správne názvy, je to samozrejme zle - bez dĺžňa :)
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.