Příspěvky uživatele


< návrat zpět

Strana:  « předchozí  1 2 3 4 5 6 7 8 9   další » ... 16

Dim sh As Worksheet
Dim jmenoListu As String

For Each sh In ActiveWorkbook.Sheets
If sh.Name = jmenoListu Then
MsgBox "List již existuje."
End If
Next sh

Pro zjištění názvu měsíce z pořadového čísla lze použít např.:jmenoMesice = Format(DateSerial(2023, mesic, 1), "mmmm")

Jak bude zajištěno pořadí listů v případě, že je takových stejných názvů více - březen, březen(2), březen(1), březen(3)?
Je nutné projít všechny listy sešitu a zjistit kolik takových listů je již vytvořeno a doplnit správnou pořadovou číslovku, která bude navazovat.

Je nutné a smysluplné mít v jednom sešitu takto pojmenované listy?
Za mě to značně komplikuje přehled, který měsíc platí a co znamená. Není lepší vygenerovat kalendář pro celý rok a nějaké změny tohoto typu uživateli neumožnit?

Nebo jaký smysl má toto přejmenování? Co když bude těch listů třeba 20 v jeden měsíc?

Dá se potlačit správnou deklaraci typu proměnné.

Tak teď se v tom požadavku už ztrácím úplně.
Když nechcete použít ověření dat, které to vaše "jednoduše" splňuje, tak netuším co z původního zadání vlastně požadujete.

Další možností je sledování změn na listu v dané oblasti a napsat si makro, které provede co požadujete.

V listu List1 vložit první sloupec, kde sloučit oba vyhledávané sloupce (datum, čas) pomocí CONCAT a pak v listu List2 vyhledat podle vloženého sloupce A VLOOKUP/SVYHLEDAT podle zadaných hodnot A1 a B1.

PavDD napsal/a:

...najít tuto dopsanou hodnotu v seznamu zakázaných /červená oblast/ a pokud tam je, oznámit to,a vrátit to znovu do editace té bunky abych mohl zkusit zadat něco jiného.
Pokud zadaná hodnota v seznamu zakázaných není, tak se normálně uloži.

Takže se uloží jakýkoliv zapsaný text, který není v seznamu zakázaných? Tzn. i místo jména třeba "Dobrý den"?

Nějak nerozumím tomu čeho vlastně chcete dosáhnout.
Ověření dat je právě od toho aby se nezadávaly nechtěné údaje.

Nerozumím pak tomu, proč by se měly někde vyhledávat zkomoleniny, které nepovolíte zadat?

"Kulantně" by to šlo vyřešit definováním jmen do seznamu která jsou povolena zadávat a ty pak nastavit do oblasti ověření dat a nepovolit jiné možnosti -> chybové hlášení ověření dat.

Zkuste přidat Excel s vašim řešením. Nevíme co je tam špatně, ověření dat má i varianty jak se chovat při chybě na vstupu.

Kde jsou chyby, nikde je nevidím, vše se dotahuje správně.

Sloupec B je prázdný, takže co se má porovnat a s čím?

jarek1111 napsal/a:

...Zkoušel jsem, ale vždy nějaká chybka
Jaká chybka?
co takhle třeba napsat přímo jaký vzorec se pokoušíte zadat a kam?

Nejedná se o sdílený sešit otevřený v prohlížeči? Tam makra nebudou nikdy fungovat.
Nastavení zabezpečení?

Parametry se do procedury/funkce, musí vždy předávat v pořadí v jakém jsou v dané proceduře/funkci deklarovány.

Pokud je parametr v proceduře/funkci označen jako volitelný (Optional) pak se nemusí předat a při volání procedury/funkce musí být "nevyplněn".
např.:
Sub Test
Dim parametr1 as Long, parametr3 as Long
Dim coVrati as long

parametr1=5
parametr3=10

coVrati= mujTest(parametr1, , parametr3) ' součet parametr1+parametr3
'coVrati=15
coVrati= mujTest(parametr1, False, parametr3) 'rozdíl parametr1-parametr3
'coVrati=-5
End sub

Function mujTest(param1, Optional param2=True,param3)
...
if param2 then
mujTest=param1+param3
else
mujTest=param1-param3
endif

End function

Vyhovovat by mělo Application.Goto Application.Goto Reference:=Worksheets("Sheet1").Range("A154"), scroll:=True

EDIT:
Sub ZobrazRadek(radek As Long)
Dim radkuPred As Integer
radkuPred = 10 ' počet volných řádků před požadovaným
If radek - radkuPred > 0 Then
Application.Goto Rows(radek - radkuPred), True
Else
Application.Goto Rows(1), True
End If
Rows(radek).Select ' pouze zvýrazní požadovaný řádek
End Sub

Zobrazí požadovaný řádek posunutý o počet řádků před ním, pokud číslo řádku bude menší než požadovaný posun, bude první řádek vždy na začátku.

sh.Protect UserInterfaceOnly:= Truefunguje i bez hesla (alespoň v MSO2019 ano), ale pak to trochu snižuje ochranu jako takovou, když list může kdokoliv odemknout.

Takže asi i lepší ochrana bude s heslemsh.Protect Password:= "mojeHeslo", UserInterfaceOnly:= Truepopř.sh.Protect "mojeHeslo", , , , True

Pokud nebude konkrétní buňka zamknuta, tak lze do ní zapisovat, tak jako do ní může zapisovat kdokoliv.
Další možností je před zápisem odemknout list a po provedení zápisu opět uzamknout.


Strana:  « předchozí  1 2 3 4 5 6 7 8 9   další » ... 16

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

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.

On-line nástroje