Sloupce samozřejmě neodstraníte, jejich struktura je pevně daná. Ale ukládají se pouze "použité" buňky.
2500 sloupců a kolik řádků? - včetně formátování a kdo ví čeho všeho - 10MB není nereálné
teď jsem uložil soubor 1000sloupcůx1000řádků - žádné vzorce, žádné formáty, všechny buňky s hodnotou 1 a mám 2 625kB
Těžko někdo poradí, musely by se vidět ty sešity.
Jednoduché delete většinou nepomůže, protože UsedRange v listu zůstala stejná, pouze jste změnil hodnoty v buňkách na prázdné.
Velikost UsedRange se dá jednoduše zjistit pomocí CTRL+END, kurzor potom skočí někam hodně vpravo hodně dolů. Je třeba odstranit tyto zbytečné řádky a sloupce (UsedRange se změní až při uložení).
Další, co mně napadá, jestli nemáte omylem zapnuté ukládání historie.
Také můžete mít nějaké prázdné objekty, které nejsou vidět - zkuste CTRL+G -> Jinak... - vyberte Objekty a dejte OK.
V prvé řadě ale opravdu zkuste odstranit VŠECHNY!!! (1. nepoužívaný sloupec + CTRL+SHIFT+VPRAVO, 1. nepoužívaný ŘÁDEK + CTRL+SHIFT+dolů)nepoužívané buňky a uložte.
@Martin12345678
A co si představujete pod pojmem odkazovat se na...
@cmuch
Žádná fce není potřeba ;)
MultiPage1.Value = MultiPage1.Pages("Page1").Index
Aby byly OptionButony na sobě závislé, musí být ve stejné skupině.
U On6 a On7 nastavte GroupName např na Sex nebo Pohlavi nebo KyhoVyra, hlavně ať je to stejné ;)
A do Initialize někde dejte
On6.Value=Range("XY").value="Muž"
On7.Value=Range("XY").value="Źena"takže např. nějak takhle
ta skupina se projeví tak, že když na to pak kliknete, změní se i ty další ve skupině
@Siopaulo
jenže narazil jsem na jistá omezení Excelu, WB i hardwaru
sám jste si odopověděl ;)
Protože je ten váš kód tak převratný, že ho sem nemůžete vložit, tak vystřelím od boku, abyste neřekl, že jsme na vás oškliví.
API functions
Pokud budete mít ovšem mezi Do...Loop dlouhý kód, testovat na stisk se vám bude hodně těžko ;)
A ještě jedna rada - zapomeňte na cyklus - toto vše se řeší pře události (tahle je asi jediná užitečná)
@Opičák
tohle nepomůže ;)
Ta smyčka pojede dál, jenom to prostě neuvidíte ;))
Tady pomůže jen přerušit přívod proudu ;)
Asi byste si měl uvědomit, že toto je excel a VB ve verzi 6 ;)
Proč by někdo psal do nějaké buňky čísla a ještě při tom měnil prvky na formuláři?
Napište (nejlépe s přílohou), co chcete dělat a někdo vám poradí - ale pomocí Do...Loop to nebude ;)
Samozřejmě, když na tom budete trvat tak to nakonec uděláte, ale k čemu by to mělo být, netuším ;)
Ono je to v podstatě tak, jak říká Opičák
Pro načtení hodnot do prvků formuláře před jeho zobrazením slouží událost Initialize
Takže dejte do modulu formuláře VYSTUP proceduru
Private Sub UserForm_Initialize()
TextBox1.Value = Worksheets("List1").Cells(1, 2).Value
TextBox2.Value = Worksheets("List1").Cells(2, 2).Value
TextBox3.Value = Worksheets("List1").Cells(3, 2).Value
End Suba pak už volejte jen pomocí Show
Pro zavření formuláře nepoužívejteMe.HidealeUnload Me
Tak třeba
Sub test()
Dim oApp As Object 'Outlook.Application
Set oApp = CreateObject("Outlook.Application")
Dim oNameSpace As Object 'Outlook.NameSpace
Set oNameSpace = oApp.GetNamespace("MAPI")
Dim oTaskFolder As Object 'Outlook.Folder
Set oTaskFolder = oNameSpace.GetDefaultFolder(13) 'olFolderTasks=13
Dim oTaskItem As Object 'Outlook.TaskItem
Set oTaskItem = oTaskFolder.Items("NovyUkol")
oTaskItem.Status = 2 'olTaskComplete=2
oTaskItem.Save
Set oTaskItem = Nothing
Set oNameSpace = Nothing
Set oApp = Nothing
End Sub
@archangel
když už tady otevíráte stará vlákna, tak alespoň přineste nějakou doplňující informaci
Sub CommandButton1_Click()
JmenoMakra
End Subbude fungovat pouze, pokud procedura ani modul nejsou nastaveny jako Private
Naučte se používat Call i u procedury bez argumentů, budete hned vědět co v tom řádku děláte.
To co psal Jeza.M používám přesně takto, protože potom hned vím, ve kterém modulu mám proceduru hledat.
Nemůžu se nezeptat - vždycky mně to zajímalo ;)
Čo také si predstavujete pod pojmom transparentnejší
;))
Je jedno jestli tabulku A nebo B protože tam kde nejsou stejné, se objeví NEPRAVDA
Nejlépe je dělat v novém listu ve stejném souboru. Ten pak odstraníte.
Pokud děláte v jiném souboru nebo kontrolujete tabulky ze dvou souborů, musíte smazat všechny dolary!
Jinak pořád kontrolujete s 1. buňkou
@Opičák
Jo - nějak takhle
s tím, že do listu porovnání si většinou nejdříve zkopíruju tu tabulku, pže se v tom pak lépe hledá (u malé tabulky není třeba)
Pro snadnější hledání pak lze vzorec třeba rozšířit
=KDYŽ(NE(seznam1!A1=seznam2!A1);"tady";"")
Jen pro představu jak to udělat nejrychleji
1. označit tabulku na listu seznam2
2. CTRL+C
3. vybrat v listu porovnání buňku A1
4. CTRL+V a neměnít výběr! - zůstane označená celá oblast
5. do řádku vzorců napsat vzorec (musí být bez dolarů!) a vložit pomocí CTRL+ENTER - vloží se do celého výběru a formáty zůstanou zachovány
6. už jen koukám
@Pavlus
Asi to tak bude (KÓD prázdné buňky je chyba) ;)
Funguje ;)
Nemám čas to více otestovat, ale teoreticky
od obyčejného rozdílu (72:27:00) stačí odečíst počet volných dní
Takže nějak takhle
C6 - začátek, C7 - konec
=C7-C6-(USEKNOUT(C7+1)-USEKNOUT(C6)-NETWORKDAYS(C6;C7))
Ono by to fungovalo - kdyby byla příloha
zadal jste maticově (CTRL+SHIFT+ENTER) ?
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.