Čistý tip, skúste nahradiť to IE.Quit za toto:
If IE.LocationName = "neviem čo" Then IE.Quit: Exit For
Vložte sem prílohu, alebo mi ju pošlite na mail. Na červeno vyfarbite bunky, ktoré sa majú zväčšovať.
To je preto, lebo hlavičky filtra nie sú textové ale číselné. A Excel správne zistí, že zrátavate oblasť čísel okrem jedného susedného čísla (2. riadok), ktorý je tiež číslo. Tak Vám dáva možnosť zahrnúť aj toto číslo. Ak prepíšete hlavičky na textové, zmizne. Ak iba zmeníte formát na text (a potom ešte do každej bunky vstúpite a potvrdíte Enterom), šípka zo vzorcového riadku zmizne, ale zase sa objaví na tých číslach, ktoré ste dal ako text. Neviem, či to má iné riešenie okrem Súbor - Možnosti - Vzorce - Kontrola chýb - Povoliť kontrolu chýba na pozadí - nezaškrtávať.
Prípadne skúste dať na každej hlavičke Ignorovať chybu z tej ponúkanej ponuky s výkričníkom...
Čo je to neaktivita ? Že neprebieha nejakú dobu metóda OnChange nejakého zošitu ?
A keby bolo makro v osobnom zošite makier PERSONAL.xlsb ?
Nuž ale to by muselo byť na každom PC, kde sa budú otvárať súbory na ktoré sa tá kontrola vzťahuje, a navyše neviem, či je možné globálne prevziať OnChange, pre každý otvorený zošit. Lebo by mohla nastať kolízia lokálnej OnChange nejakého zošitu s globálnou OnChange v PERSONAL.slxb.
Neskúšal som, je to len tip (nie typ).
Maticou ?
-Nastavíte definovaný názov OBLAST na oblasť, ktorá obsahuje dáta.
-Umiestnite vzorec, ktorý je teraz v D1 do prvej bunky v stĺpci za posledným stĺpcom OBLAST-i.
-Natiahnete vzorec na počet riadkov rovnajúci sa očakávanému počtu výsledkov, teda :
počet riadkov OBLAST * počet stĺpcov OBLAST
Prázdne bunky ani stĺpce tomu nevadia, len je to matica, teda náročnejší výpočet, tak mu nedávajte 100 celých stĺpcov po 1 000 000 riadkov. Rozumne. Teraz sa v definovanom názve INDEXY počíta s riadkami v maske "0000" teda 1:9999, a so stĺpcami v maske "00" teda 1:99 (A:CU), si prípadne upravte.
No myslím že záleží aj na tom, čo znamená "bez opakování". Pretože to kľudne môže byť tak, že keď už máme 1,2,3 tak nemôžeme mať aj 3,2,1 / 3,1,2 / 1,3,2 / 2,1,3 / 2,3,1.
Teda výsledkov, kde nebudú použité rovnaké mestá bude 31.
Viď tento kód od Paul_Hossler.
pr.
Ukážte ako vyzerá rozosielaná tabuľka, a ako má vyzerať výsledok.
EDIT: Inak príklad ako makrom rýchlo vložiť odkazy na nejaké bunky všetkých súborov.
Pr. Ale ako vraví eLCHa, nedá sa pomôcť, keď to nikto nevidí. Napr.:
Máte správny názov tabuľky ?
Nejdete nejako špatne cez INDIRECT (NEPŘÍMÝ_ODKAZ)?
Obsahuje tabuľka požadované rozsahy ?
Ak idete cez Definované názvy, nieje už rovno v nich nejaká chyba typu #ODKAZ ?
Na karte Vzorec je čudlík "Vyhodnotiť vzorec", odkrokujte si ho, aby ste zistil kde to robí chybu.
atď....
Tu som vycucol z inej sajty iné RGB, ktoré už by mohli sedieť. Je to opäť tá Clasic/Standard kolekcia.
Spôsob aplikácie si už potom zvoľte podľa konkrétnych požiadaviek. V prvom rade je treba mať korektné kódy.
EDIT:
Vymenená príloha. Urobil som všetky 3 kolekcie RAL
-Clasic (213 farieb)
-Design (1714 farieb)
-Effect (490 farieb)
Snáď je to všetko a snáď aj správne.
Kódy som vycucol z HTML kódu tejto stránky.
Vložte príklad toho, kde a ako to chcete použiť.
Tie kódy, čo som našiel budú asi zlé. RAL 5010 som našiel 3 farby :
0, 79, 124
0, 78, 124
14, 41, 75
Treba nájsť nejaké spoľahlivé tabuľky. Navyše existujú Standard, Design, a ešte jedny.
Som teraz len na mobile, keď sa dostanem k PC tak pozriem, či sa to vôbec smie prevádzať na DEC...
A možno ani netreba RGB hodnoty, ale stačí ich previesť na DEC.
EDIT: Vymenená príloha omylom som namiesto xlNone použil vbNull
https://gist.github.com/lunohodov/1995178
Vo VBA je skrytý list "Pomoc", ktorý má nastavenú vlastnosť Visible na xlSheetVeryHidden, preto ten list nevidíte. Zmente si to na xlSheetVisible.
Keď vo VBA kliknete pravým na Forms - UserForm1 - View Code, nájdete tam tento kód:
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub TextBox1_Change()
Dim Vyska As Single
With wsPomoc.Cells(15, 6)
.Value2 = TextBox1.Text
.EntireRow.AutoFit
Vyska = .RowHeight
End With
With wsData.Cells(15, 6)
.Value2 = TextBox1.Text
.RowHeight = Vyska
End With
End Sub
Private Sub TextBox2_Change()
Dim Vyska As Single
With wsPomoc.Cells(20, 3)
.Value2 = TextBox2.Text
.EntireRow.AutoFit
Vyska = .RowHeight
End With
With wsData.Cells(20, 3)
.Value2 = TextBox2.Text
.RowHeight = Vyska
End With
End Sub
Funkčnosť tu už bola popísaná niekoľkokrát. Čo k tomu viac napísať? V TextBoxe stlačíte klávesu, napíše sa písmeno, vyvolá to metódu Change daného TextBoxu. V nej sa aktuálna hodnota Textboxu prenesie do pomocnej bunky v pomocnom liste (táto bunka má rovnakú šírku ako celá zlúčená oblasť o ktorú ide, ale len jednoriadkovú výšku), formát bunky pomocnej a zlúčenej je rovnaký, nastavené zalomenie. V pomocnej bunke sa teda potom vyvolá AutoFit
...
.EntireRow.AutoFit
...
teda sa upraví na požadovanú výšku. Táto výška sa potom prečíta a podľa nej sa upraví aj výška zlúčenej oblasti.
Každopádne je to dosť špecifické súbor od súboru, použitie od použitia, druh zlúčenia od druhu zlúčenia ...
Príloha?
Stále hovoríme o Autofit-e jednoriadkovej zlúčenej oblasti. Nie o viacriadkovej. Tam by to bolo zložitejšie.
Ak myslíte "formulárom" list a nie UserForm, tak to bude ešte zložitejšie, lebo treba ošetrovať veľa stavov (zmazanie viac buniek naraz, nesúvislá oblasť a pod...), a to sa mi moc nechce ...
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.