Opičák, isteže. Na začiatku ale stála otázka: Je možné nějak změnit implicitní oblast hledání z Vzorce na Hodnoty?
@Opičák: CTRL+F -> Options -> Look in
Čo vidíš?
@opičák: PeHemu ide o to, aby po stlačení CTRL+F mal primárne nastavené vyhľadávanie vo vzorcoch, nie v hodnotách. To nastaviť v nejakých voľbách Excelu nejde, dá sa to ošetriť makrom, návodov, ako na to, je na internete spústa. Stačí použiť google.
prečítaj si pravidlá fóra - bod 3.
Pokiaľ vyjdem z Opičákovho kódu pre Userform (zakomentoval som riadky, ktoré som zmenil), tak nejako takto:Private Sub CommandButton1_Click()
Dim dat As String
'Dim datX As Long
dat = UserForm1.TextBox1
'dx = Split(dat, ".")
'datX = DateValue(dx(2) & "/" & dx(1) & "/" & dx(0))
'Range("A1") = datX
With Range("A1")
.Value = CDate(dat)
If .Value < Date Then
.Interior.ColorIndex = 3
Else: .Interior.Pattern = xlNone
End If
End With
Unload UserForm1
End Sub, použitím CDate sa vyhnem nutnosti zadávať dátum v tvare DD.MM.RRRR a nemusím použiť ani fc Split.
buď ako píše Opičák, aleboActiveWorkbook.Names.Add Name:="dat1c", RefersTo:=ActiveCell.Address(ReferenceStyle:=xlA1), záleží, či sa má názov zobrazovať v NameBoxe
edit: aha, špatne, takže takto:ActiveWorkbook.Names.Add Name:="dat1c", RefersTo:="=" & ActiveCell.Address
jestli můžou na něj přistupovat uživatelé bez Accessu
môžu; napr. cez ADO
Problém pmn spôsobuje tento riadok:For i = 11 To Sheets("Katalog").Range("Y536").End(xlUp).rowBunka Y536 totiž v príklade nie je prázdna a odskok .End(xlUp) spôsobí posun na riadok 11, čiže cyklus pre i beží iba raz.
Range("Y536") musíš teda nahradiť niečím iným, spôsobov, ako určiť poslednú neprázdnu bunku v stĺpci je niekoľko, to by si mohol zvládnuť to zmeniť...
pošle to informace jen o 1 řádku a to ještě jen o tom, který je v horní části tabulky,
ten kód, asi upravený, ktorý tu uvádzaš, neposiela info o žiadnom riadku; z bunky .Cells(i, 95) ťahá zrejme mailovú adresu adresáta, ktorému posiela mail, v ktorom ale nie je nič uvedené. Asi by bolo dobré, keby si sem dal vzorový súbor aby sa to dalo otestovať, v opačnom prípade je to trochu streľba naslepo..
Run-time error 13 = type mismatch.
Máš buď niečo špatne zadeklarované, alebo v rámci behu makra máš v niektorej bunke, ktorú načítaš v cykle, použitú hodnotu nesprávneho datového typu. Problém nebude primárne v kóde, ale vo vstupných datách, z ktorými kód pracuje. Skús to debugovať a zistiť, na ktorom riadku kódu to háže chybu a pozrieť sa na hodnotu, ktorú to zrovna načíta. Bez samotného súboru ťažko radiť, ten kód na prvý pohľad vyzerá, že by mal fungovať, ja som si ho trochu upravil pre potreby testu a chybu mi to nehádže...
Já bych spíš potřebovala něco co mi na první pohled ukáže, kde je v buňce vzorec a kde ne.
Na to mimochodom bohate stačí F5->Special->Formula
@Palooo: to fungovať nebude
@ppetra: S trochou VBA by to asi šlo.
UDF:Function IsFormula(arg As Range) As Boolean
IsFormula = arg.HasFormula
End FunctionAko validačné pravidlo potom:=IsFormula(A1)=TRUEa nastaviť oblasť, na ktorú sa má vzťahovať, napr:=$A$1:$C$3
@rvanicek: nemáte naozaj za čo ďakovať, síce asi niečo kol VBA už viem, ale tento problém by som za test znalostí nepokladal
skús to pochopiť z tohto (nie je to úplný návod, ale pokiaľ to pochopíš, tak si to dokážeš i upraviť):Sub WithVariable()
Dim MyBook As String
MyBook = ActiveWorkbook.Name
MyBook = "[" & MyBook & "]" & ActiveSheet.Name
ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[-2]," & MyBook & "!R2C1:R150C5,3,FALSE)),""!"",(VLOOKUP(RC[-2]," & MyBook & "!R2C1:R150C5,3,FALSE)))"
End Sub
Sub Plus3Y()
Dim myRng As Range
Set myRng = [A1]
MsgBox DateAdd("YYYY", 3, myRng)
End Sub
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.