Pokud jste si neupravil
xdir = "C:\Users\User\Test"
na existující adresář, taxe nic nevytvoří, protože neví kde ;)
Zkusil jsem přepsat váš kód, ale nemůžu otestovat - bez přílohy
Sub VyvorSlozku()
Dim xdir As String
Dim lstrow As Long
Dim i As Long
lstrow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "D").End(xlUp).Row
For i = 1 To lstrow
xdir = "C:\" & Range("D" & i).Value & " - " & Range("F" & i).Value
On Error Resume Next
MkDir xdir
If Err.Number = 0 Then 'když existuje, jde dál
MkDir xdir & "\SubFolder"
End If
On Error GoTo 0
Next
End Sub
Sub VyvorSlozku2()
Dim xdir As String
xdir = "C:\Users\User\Test"
On Error Resume Next
MkDir xdir
If Err.Number = 0 Then
MkDir xdir & "\SubFolder"
End If
On Error GoTo 0
End Sub
Aha - no jo no
tak nevím - teď mě už napadá jen toto:
napsat jednoduchý program ve VS, který ovládá knihovnu a přijímá argumenty a ten ovládat přes VBA + Shell pomocí argumentů (spolu s knihovnou uložit do adresáře doplňku)
Ale teď nevím, jestli vám spíš nekomplikuji život ;)))
Mno u OCR asi bude s free problém - našel jsem toto
http://www.pixel-technology.com/freeware/tessnet2/
ovšem vůbec nevím jestli je to to co chcete - jen jsem zadal
free ocr dll for vba
do gůglu ;)) a tohle vyskočilo ;)
nicméně, pokud nějakou knihovnu v pc máte, taxi to můžete nejdříve vyzkoušet i na ni (jen s tím rozšiřováním bych si dal pozor na licence - pokud je určitě na všech pc, tak není co řešit)
při stránkování v listu jsem chtěla přejít na 1.pozici viz CTRL+HOME
Vyzkoušejte
Sub subCtrlHome()
With ActiveWindow
.ScrollRow = 1
.ScrollColumn = 1
.VisibleRange.Cells(1).Select
End With 'ActiveWindow
End Sub
Bohužel - toto je problém, do kterého se momentálně nemám čas dostávat - ale tipoval bych, že ani OneNote nemusí být nutně na všech PC
Co tak zkopírovat nějakou použitelnou (asi by měla být free) knihovnu a dát ji do adresáře doplňku - a v kódu se odkazovat na ni
asi bych se snažil jít touto cestou ;)
Jen mě zajímá, chvilku jsem to zkoušel a LeftIndent mi dával pořád 0 - ikdyž jsem obrázek posunul
je to to řešení?
Opravdu musíte měnit stav NumLock?
Možná, kdybyste řekla, proč chcete stav měnit, bychom byli schopní vymyslet elegantnější řešení ;)
Co znamená
Lze v podmíněném formátování dynamicky měnit rozsah?
Máte tabulku, která se rozšiřuje - pak stačí pouze kopírovat formáty
nebo hotovou tabulku - pak není třeba nic měnit a jen stačí správně nastavit podmíněné formátování
Bez přílohy vám to ale nikdo neřekne.
Mno ve vzorci, který tady uvedl Opičák je použita funkce měny a jen sám autor (nevím kdo to je) ví proč to udělal. Jsou dvě možnosti - v češtině bych tipoval, že chtěl zkrátit zápis (Kč, je kratší než zaokrouhlit) ale v angličtině?
Ale spíše bych řekl, že je to pro matení nepřítele ;))
Takže se dá přepsat takto (moje úprava, nicméně jsem vycházel z toho vzorce)
=ZAOKROUHLIT((DATUM(Rok;4;1))/7+MOD(19*(MOD(Rok;19))-7;30)/7;0)*7-5
Předpokládám, že vychází z Gaussova pravidla.
Výsledkem toho je Velikonoční pondělí, takže pokud máte ještě pátek, tak ten je o 3 dni dříve - takže by mělo platit:
=ZAOKROUHLIT((DATUM(Rok;4;1))/7+MOD(19*(MOD(Rok;19))-7;30)/7;0)*7-8
resp.:
=(SK((”4/”&A1)/7+MOD(19*MOD(A1;19)-7;30)*14%;)*7-6)-2
resp.:
pokud už máte někde v listu vypočtené pondělí (např.: A1)
=A1-3
Co se týče kopírování starých tabulek, nejsem zcela v problému, ale pokud rozumím, tak ta data už by se neměla měnit, takže je zbytečné, mít tam vzorce a je daleko bezpečnější mít tam hodnoty
Takže si označte tabulku, dejte kopírovat, na vybraném umístění dejte vložit jinak -> formáty a ještě jednou vložit jinak -> hodnoty
@bordov
asi je třeba více specifikovat nebo sem vložit makro, kde to chcete použít
nicméně Formula je textový řetězec a jako zřetězení slouží operátor &
takže např.:
"R[" & x & "]C[" & y & "]"
nebo pokud netrváte na R1C1
Sub test()
Dim rData As Range
Set rData = Range("K9:K17")
Dim rValues As Range
Set rValues = Range("L9:L17")
Dim sValue As String
sValue = """Jan"""
Dim sFormula As String
sFormula = "=SUMIF(" & rData.Address & "," & sValue & "," & rValues.Address & ")"
ActiveCell.Formula = sFormula
Set rData = Nothing
Set rValues = Nothing
End Sub
Přiznám se, že tomu, co napsal Opičák moc nerozumím.
A co tak využít standard
Např.: do C1 napište 2
Dejte kopírovat
Označte B1:B3
vložit jinak - násobit
C1 vymažte
Nejak si nedokážu představit, jak by COUNTIFS řešil můj problém.
To nevadí.
Je to COUNTIFS.
Ale bez přílohy...
@Paloo
Není
Pokud máte zamčený list, musíte ho v makru odekmnout, provést co potřebujete a potom zamknout.
Ono v podstatě stačí
Sheets(1).Unprotect
'kód
Sheets(1).Protect
protože excel si pamatuje poslední nastavení zámku v listu.
Já jen nerozumím, jestli mu to to makro nespustí (nefunguje tlačítko) nebo v průběhu nahlásí chybu, že je list zamčený.
Proto ten dotaz.
V listu jsou tlačítka, které by po zamčení měli zůstat funkční.
Jak máte ta tlačítka vytvořená? Ovládací prvky formuláře, ActiveX nebo nějak jinak?
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.