@Palooo
Proč vytváříte novou instanci?
A řekl bych, že W.Close vyhodí chybu, protože předtím nastavujete xl na Nothing
Scifi to určitě není, lze to a ani to nebude velký problém. Podle toho jak to čtu mám pocit, že i přemýšlíte správným směrem.
Jenže jsem zmaten z toho csv souboru. Čekal jsem podrobný výpis, kde budou volaná čísla, cena s i bez DPH a místo toho je tam jen souhrnná stránka (u T-MOBILE už nejsem několik let, taxi ten podrobný výpis moc nepamatuji ;)) ).
Zatím mám pocit, že by to mohlo jít i bez kódu VBA, ale jedině v případě podrobného výpisu.
Pak - jak správně uvádíte - vytvoříte databázi podnikových čísel a ty vyfiltrujete.
Vidím to na dobře připravenou databázi + kontingenční tabulku.
Pokud by bylo třeba VBA, tak snad jen na tvorbu té databáze, ale to bych musel vidět kompletní podrobný výpis.
Také záleží na tom, jestli máte hromadný podrobný výpis (netuším, jestli něco takového existuje ;))) ) nebo stahujete každý zvlášť.
kp57 napsal/a:
Tak moji rádcové, všechna tři řešení fachčí bezvadně!
Ale řešení CSE=SUMA() od marjankaj mi připadá nakonec nejelegantnější.
Všem Vám díky!
Nehledejte v tom žádnou vědu ;)
Private Sub CommandButton1_Click()
Dim FINAL As Double, HALB As Double, NOK As Double
On Error Resume Next
FINAL = CDbl(TextBox1.Text)
HALB = CDbl(TextBox2.Text)
NOK = CDbl(TextBox3.Text)
If Not Err.Number = 0 Then
TextBox4.Text = "#ERR"
Else
TextBox4.Text = Format(((FINAL + HALB) - NOK / FINAL + HALB) * 100, "#,##0.00")
End If
On Error GoTo 0
End Sub
Private Sub CommandButton1_Click()
With ActiveSheet.ListObjects("Tabulka1").Range
On Error Resume Next
TextBox2.Text = .Cells(Application.WorksheetFunction.Match(TextBox1.Text, .Columns(1), False), 2).Value
On Error GoTo 0
End With 'ActiveSheet.ListObjects("Tabulka1").Range
End Sub
Využijte proměnnou typu Workbook
Sub nacisthodnoty()
Dim souborkalkulace As String
Dim cesta As String
Dim heslo As String
Dim i As Integer
Dim w As Workbook
i = 2
Application.DisplayAlerts = False
Application.ScreenUpdating = False
cesta = "C:\PREvsPOST\InputPrecalc\"
souborkalkulace = Dir(cesta)
heslo = InputBox("Input the password to unprotect Calculation Tools", "Calculation Tool password")
Do While Len(souborkalkulace) > 0
On Error Resume Next
Set w = Workbooks.Open(Filename:=cesta & souborkalkulace, Password:=heslo)
On Error GoTo 0
If Not w Is Nothing Then
w.Sheets("XY").Range("C11").Copy Destination:=Workbooks("nacitaci.xlsm").Worksheets("list1").Cells(i, 1)
w.Sheets("XY").Range("L11").Copy Destination:=Workbooks("nacitaci.xlsm").Worksheets("list1").Cells(i, 2)
w.Sheets("XY").Range("C19").Copy Destination:=Workbooks("nacitaci.xlsm").Worksheets("list1").Cells(i, 3)
w.Close
Set w = Nothing
i = i + 1
souborkalkulace = Dir
End If
Loop
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
lubo není zaregistrovaný, jinak by mohl vložit přílohu
ze zadání vyplývá, že přesně to děláte - hledáte četnosti a k tomuto je ta funkce stavěná. Já považuji za malou nevýhodu, že je maticová, ale z příspěvků vyplývá, že vám to nevadí.
Takže se přímo nabízí.
přemýšlíte špatně
nechtějte rozdělit 1 sloupec měsíce na dny - buňka je v excelu minimum a nerozdělite ji - i když takové pokusy jsem už zaznamenal ;)) a částečně lze virtualizovat rozdělení na 2 ;)))).
Přiřaďtě jednomu měsíci více sloupců - dnů.
Jednoduché řešení, které si budete moci obsluhovat sám:
Vytvořte každému manažerovi soubor a v něm kopii pouze tabulek, které má vidět. Tyto tabulky odkazujte na originály ve vámi obsluhovaném sešitě.
Je to bez maker, asi i nejspolehlivěji zabezpečené (pokud budete chtít heslovat, tak je obtížnější prolomit heslo v souboru než prolomit VBA - i když pochybuji, že by se o to manažeři snažili) a jak říkám, budete to umět sám.
Taxem to našel
EXCEL 2010 -> CHYBHODN
EXCEL 2010 SP1 -> IFERROR
http://support.microsoft.com/kb/2551525/cs
Je ta vidět, že těch nesmyslů vymysleli více - VLEVO, VPRAVO... :(
Musím se opakovat, nezbývá než slovákům závidět ;)))
AL napsal/a:
v 2010 IFERROR funguje, ale pokiaľ nemáš anglickú verziu, tak VLOOKUP si musíš preložiť (v českej je to SVYHLEDAT)
Mno - jen tipuji, že by to mohlo souviset s automatickým obnovením. Můžete vyzkoušet vypnout ho u toho sešitu. Pokud to přestane dělat, budete vědět, že je to tím. Nastavení se uloží v sešitu, takže není třeba provádět u každého uživatele.
Tlačítko office -> Možnosti aplikace Excel -> Uložit
a zaškrtnout Zakázat automatické obnovení pouze pro tento sešit
Jen pro jistotu: pokud tuto funkci u toho sešitu vypnete, doporučuji ukládat práci v něm častěji, protože po pádu excelu se neobnoví.
Rozhodně by bylo fajn, kdybyste časem dal vědět, jestli to bylo ono ;))
edit:
tím sešitem, kde se má provést to nastavení myslím ten, na který se odkazuje ;)))
Specifikujte nějaký lokální disk nějakého uživatele.
Mohlo by to být toto
http://wall.cz/index.php?m=topic&id=12841
Má to vůbec nějaký smysluplný český překlad?
;)
@lubo
je v pořádku, že jste se ozval, s IFERROR jsem vám dal za pravdu a opravil jsem.
A budu rád, budete-li se ozývat i nadále, diskuzi se nevyhýbám.
@AL
dovolím si ještě rýpnout ;)
Existují případy, kdy volatilní fce způsobují zlo ;)))
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.