Tohle makro by to melo zvladnout:
Jen je potreba vyplnit Cestu (oznaceno tucne) - musi byt ukoncena zpetnym lomitkem a v uvozovkach...a musi existovat :)
Ostatni se menit nemusi...
Sub SeznamSouboru()
Dim Cesta As String, Soubor As String
Dim i As Long, Sloupec As Long
Cesta = "c:\TEMP\" 'Musí končit zpětným lomítkem
Soubor = Dir(Cesta & "*.*") 'lze nastavit jen určité soubory, např. "*.doc"
Sloupec = 1
'smazani puvodnich hodnot ve Sloupci
Columns(Sloupec).ClearContents
'doplneni novych souboru do Sloupce
i = 1
Do While Soubor <> ""
Cells(i, Sloupec) = Soubor
Soubor = Dir
i = i + 1
Loop
End Sub
tahle vlastnost se da nastavit jen prubehu chodu procedury - po skonceni je automaticky nastavena zpet na xlInterrupt (1)
nemate nahodou v kodu nekde toto:
Application.EnableCancelKey = xlDisabled
U me v pohode!
Pri zobrazenem MsgBoxu stisknu CTRL+Break a muzu si vybrat jestli chci proceduru ukoncit 'End' nebo 'Debug'...
Win XP, MS Office 2007 CZ
to je zvlastni - mne CTRL+Break funguje vzdycky perfektne i pri zobrazenych dialozich. M
uzes poslat ten soubor, zajimalo by me to...
co treba CTRL+Break?
Uzivateli Plansecur: nez zacnete zadavat prispevky, prectete si pravidla fora a dodrzujte je, prosim...
http://wall.cz/index.php?m=topic&id=8351
Myslim, ze nemusite zakazovat prejmenovavani, protoze vam zrejme jde o odkazovani se na list.
Standardni jmeno listu (Worksheets("jmeno")) muze uzivatel zmenit, ale 'vestavene' jmeno listu muze zmenit je ve VBE - pri kliknuti na modul listu v jeho vlastnostech:
(Name) = vestavene jmeno.
Name je jmeno, ktere muze byt zmeneno v sesite, jako takovem.
Tyto nazvy lze pouzivat pri odkazovani se na list a standardne je vytvori excel sam jako List1, List2, List3...(podle jazykove verze Office).
tyto nazvy lze pouzit pri odkazech na list:
List1.Range("a1") nebo zjistit jmeno tohoto listu, ktere mohl uzivatel zmenit: List1.Name
...snad jsem to vysvetlil srozumitelne a bude to prospesne...
Samotny tisk takovou funkcionalitu urcite nema, ale nevidim problem v tom vlozit automaticky filtr a vyfiltrovat jen neprazdne polozky ve sloupci B...
abych rekl pravdu, tak pouzivani sloucenych bunek primo nesnasim, protoze s daty pak nelze poradne pracovat.
Kdybyste mel v kazdem sloupci oznaceni, ze jde o KW1 (nebo KW4, to je jedno), pak lze jednoduse pouzit SUMIF nebo maticovy vzorec. Takto jsem musel pouzit vyhledavani, ktere je navic navazane na pokracujici KW (predpokladam cislo tydne), takze musite mit v datech i pak ve vysledku i nasledujici tyden (v priklade KW5)
...vic se mi o tom premyslet nechce...
zadna velka zmena:
Sub Zaokrouhlit_vzorce()
Dim Bunka As Range
For Each Bunka In Selection
If Bunka.HasFormula = True Then
Bunka.Formula = "=round(" & Right(Bunka.Formula, Len(Bunka.Formula) - 1) & ",2)"
Else
Bunka.Formula = "=round(" & Right(Bunka.Formula, Len(Bunka.Formula)) & ",2)"
End If
Next Bunka
End Sub
no, pokud nemate ve vsech bunkach vzorce (jak jste psal), tak to cislo bude osekle.
Jde o to, ze ta '-1' odebere rovnítko z toho vzorce, co by v bunce melo byt...
takze pokud mate ve vyberu bunky se vzorci i prostou hodnotou, tak musi kod vypadat jinak...
co takto:
Sub Zaokrouhlit_vzorce()
For Each Bunka In Selection
Vzorec = Bunka.Formula
Bunka.Formula = "=round(" & Right(Bunka.Formula, Len(Bunka.Formula) - 1) & ",2)"
Next Bunka
End Sub
Otazka je, co je to za combobox:
1) na listu: prvek formulare nebo activeX
2) na userformu
- vadi makro?
Vyhledat retezec v retezci lze nasledovne:
InStr(1, "kde hledam", "co hledam")
V podstate tato funkce vrati pozici hledaneho retezce v jinem retezci - pokud je vysledek roven 0, tak retezec nebyl nalezen...
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.