Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  278 279 280 281 282 283 284 285 286   další »

No to nebude také jednoduché. Width je iba na čítanie, ColumnWidth je pre zápis, obe v iných "nešťastných" jednotkách. Písmo v ďalších jednotkách. Pomer medzi dvomi jednotkami šírky je úplne iný ako pomer medzi dvomi jednotkami výšky. Každý font (+rez) má iné rozmery...
Jedno "riešenie" by mohlo byť takéto:
-bude tam 1 skrytý (Visible=False) Label
-tomu nastavíme potrebné atribúty fontu z bunky
-z tohoto Labelu (LTest) získame šírku textu
-túto šírku prepočítame na "idiotské" jednotky bunky
-zmeníme veľkosť bunky (teda mení sa celý riadok a stĺpec)

a v poslednom bode nastávajú 2 problémy:
1. zmena veľkosti bunky sa neaktualizuje, pokiaľ na bunku nekliknem. Nepomáha Application.ScreenUpdating, ani Calculate, ani Select, ani Activate.
2. v bunke sú okolo textu medzery. Aj keď je odsadenie =0, aj tak tam sú. Potrebujeme získať veľkosti týchto medzier a pripočítať ich k nám vypočítaným hodnotám, ak to neurobíme, dostaneme "####" lebo sa text tesne nevojde do bunky, pretože Label tieto medzery nemá. Nemôžeme ich pripočítať ale napr. percentuálne, lebo veľkosťou a typom písma sa to mení nepercentuálne.

Takže ako to vyriešiť.

PS: Pre každý stĺpec aj riadok môže byť logicky iba jedna bunka takto ošéfovaná, lebo by si navzájom menili hodnoty. Použiť stačí len ten jeden Label pre všetky.

ListBox mi funguje tak, že pokiaľ píšeš do neho (keď si naň kliknutý) bez prerušenia trvajúceho cca 1-2s, tak ti označí prvý riadok spĺňajúci to čo píšeš. To je ale nepraktické, keďže akonáhle na chvíľku prestaneš, tak berie od teba nový text na nové hľadanie. Neviem ako sa to dá vyriešiť priamo v LB, ale môžeš to vyskúšať urobiť aj takto:

Tak aj cieľ naformátuj ako text.
1. metóda cyklus - netreba cieľ formátovať vopred ako text
2. metóda treba vopred cieľ formátovať ako text, pri množstve hodnôt je rýchlejšia, ako prístup po jednom.

Sakra, až teraz som si náhodou všimol, že v tom mojom vzorci som dal o jedno "y" v rýchlosti menej 5

Takže oprava z
"=CARDS_"&TEXT(Sešit1!A2;"ddmmyyy")
na
="CARDS_"&TEXT(Sešit1!A2;"ddmmyyyy")
ale funguje tak či tak.
V CZ sa "yyyy" zamieňa na "rrrr" tak ako píše "lubo".

Vôbec nejde len o pripojenie sa k tebe na sieťový zdroj. Ide o celý návrh. Ale neva. Skúsil by som súbor najskôr stiahnuť na PC a až potom spracovávať:
Sub DownloadFile()
Dim myURL As String
myURL = "http://sheetsibca.pbworks.com/w/file/fetch/38012029/excel%20lesson%203%20test.xlsx"

Dim WinHttpReq As Object
Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
WinHttpReq.Open "GET", myURL, False, "username", "password"
WinHttpReq.send

myURL = WinHttpReq.responseBody
If WinHttpReq.Status = 200 Then
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.Write WinHttpReq.responseBody
oStream.SaveToFile "Z:\chyba\excel%20lesson%203%20test.xlsx", 2 ' 1 = no overwrite, 2 = overwrite
oStream.Close
End If
' Súbor treba po použiťí Zatvoriť a potom ZMAZAT týmto príkazom
Kill ("Z:\chyba\excel%20lesson%203%20test.xlsx")
End Sub

SUMIFS mi dáva chybu, tak spočítaš 2 SUMIF :

Sub pokus()
' VARIANT 1
With Sheets("Sheet1")
.Range("K13") = Application.SumIf(Sheets("Sheet2").Range("C2:C12"), "=2615100103", Sheets("Sheet2").Range("F2:F12")) + _
Application.SumIf(Sheets("Sheet2").Range("C2:C12"), "=2615100104", Sheets("Sheet2").Range("F2:F12"))
' ostatné obdobné ...
End With
' VARIANT 2
With Sheets("Sheet1")
.Range("K13").Formula = "=SUMIF(Sheet2!C2:C12,""=2615100103"",Sheet2!F2:F12)+SUMIF(Sheet2!C2:C12,""=2615100104"",Sheet2!F2:F12)"
.Range("K13").Value = .Range("K13").Value
' ostatné obdobné ...
End With
End Sub

Možno exituje možnosť vytvoriť a spravovať Objekty Cells či Listy len v pamäti, ale to mi nič nehovorí. Tak ma napadá len použiť kópiu na skrytom liste.

Funkcia CopyRng skopíruje zvolenú Range na skrytý list, kde môže byť upravená a následne použitá.
Skopíruje sa:
-umiestnenie
-hodnoty
-vzorce
-formátovanie bunky
-formátovanie textu
-podmienené formátovanie
-šírka stĺpcov

Ak je treba kopírovať aj výšku riadku, to treba urobiť cez cyklus po jednom.

Inak neviem pomôcť s týmto druhým problémom.

Vytvoril som ti vlastnú funkciu SUMIFS v makre, ktorá funguje tak ako chceš. A funguje aj v makre, aj v zošite.

Asi takto...

Dve verzie:
1. - Stĺpec B aj zoraďuje jedinečné mená (bude logické mať opačne meno->priezvisko)
2. - Stĺpec C iba Extrahuje jedinečné mená

Je to nastavené po riadok č.100. Mená po riadok č. 100 berie zo stĺpca A automaticky (dynamický názov "Ziaci").

Hyperlink do Overenia dať nepôjde. A na čo ti je HyperLink ? Zmeníš jednu bunku a chceš mať na tú zmenenú bunku v upozornení odkaz, aby ťa na ňu dalo ? Veď si na nej, menil si ju. Pri zmene viacerých to takisto nechápem, pretože keď budú 100 riadkov od seba tak ich neuvidíš naraz, po kliknutí na hyperlink jednej z nich (z tých prípadných "0").
Každopádne som ti pripravil niečo takéto:
-Použité je podmienené formátovanie na zvýraznenie 0
-zároveň je kontrola stĺpca s množstvom ks robená aj v makre
-pri zistení nejakých 0, sa urobí zoznam, ktorý ti ich vypíše vo Forme
-po ukončení Formu ostanú všetky 0 hodnoty označené
-vo forme je zoznam, na ktorom keď klikneš na položku, tak ti ju označí
Neviem, ako inak ti pomôcť.

Nemôžeš priložiť nejaké prílohy aspoň z časťou zverejniteľných dát ? To sa takto veľmi ťažko odhaduje. Ten súbor na sieti nemá otvorený iný uživateľ ? Ten Button WODOWN je na ktorom zožite ? V tej komplikovanej spleti Activate - Visible - Cells (bez upresnenia zošita a listu napr cez With) a Select, sa ľahko stane že čítaš data z iného miesta ako chceš.
Pokúšam sa o rekonštrukciu toho, ako to môže u Teba vyzerať, ale fakt sa strácam v odhadovaní čo, ako, a kde.
Chce to proste prílohy.

Niečo som vymyslel, uvidíme, či sa to bude dať použiť.
Nastaví sa aby každých nap 30s prebehla kontrola.
1. Bude sa kontrolovať, či nieje terajší dátum menší ako pri poslednej kontrole - ak áno koniec
2. A teraz to dôležité. Bude sa kontrolovať počet týchto 30s intervalov, ak sa dosiahne maximálny nastavený počet 30s intervalov - tak koniec.

Táto kontrola prebehne ihneď po štarte a potom každých 30s keď je aktívny formulár. Ak aktívny nieje, intervaly sa neprirátavajú, ale zapisuje sa čas (pre porovnanie).

Veľký pozor na skúšanie. Ak by ste prekročili počet intervalov, súbor neotvoríte, ani aby ste to zmenili (iba vyskúšať zmeniť iným súborom bez otvorenia).

Po vyskúšaní, dorobení, nastavení, treba dať list Tick na VeryHidden, zaheslovať makrá. Samozrejme povoliť 2 riadky v Overload() a 1 riadok v Workbook_BeforeClose.
To je zároveň nevýhoda, že vždy musí Workbook_BeforeClose uložiť súbor, kvôli tomu aby nabudúce vedel, koľko Tick-ov (intervalov) už bol Form otvorený.

Je to aspoň podobné tomu čo je v zadaní.

PS: Tú kontrolu času si takmer nevšímajte, je druhoradá.

EDIT: Ešte som urobil malé opravy...

Treba si pozrieť makrá, v samotnom zošite nič podstatné nevidno.
V skratke:
-Prehľadajú sa súbory v zadanom adresári
-Vyhľadajú sa v nich zadané polia a k nim adekvátne hodnoty
-Tie sa zapíšu do sumárneho listu

A ešte verzia so zapínaním a vypínaním Visible, pretože je veľký rozdiel, či ich potrebuješ dynamicky vytvárať a mazať, tak ako píšeš, alebo budú vytvorené permanentne a nemenne, len sa budú schovávať.
Pekný deň.


Strana:  1 ... « předchozí  278 279 280 281 282 283 284 285 286   další »

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse