Ahoj zkusil to třeba takhle:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Locked = False And Target <> "" Then
ActiveSheet.Unprotect
Target.Locked = True
ActiveSheet.Protect
End If
End Sub
Za Unprotect a Protect lze dle potřeby přidat do uvozovek heslo.
M@
Tak makra tam jsou jen 2 (plus a minus) :-)
Jak vidíš rozbalovací seznam má nadefinovanou vstupní oblast ("Seznam_p"), což je vybraná oblast na listu Seznam a propojení na buňku (výstup), kam vrací pořadové číslo vybrané položky (buňka A1) na základě toho je pomocí funkce index vyhledána hodnota v seznamu.
Makra:
Sub minus()
If Cells(1, 1) > 1 Then Cells(1, 1) = Cells(1, 1) - 1
End Sub
Minus = mění výstupní buňku (A1) o -1 dokud je větší než 1.
Sub plus()
If Cells(1, 1) < Range("Seznam_p").Rows.Count Then Cells(1, 1) = Cells(1, 1) + 1
End Sub
Plus = mění výstupní buňku (A1) o +1 dokud je menší než počet záznamů v seznamu (definovaná oblast "Seznam_p")
M@
Ahoj, připojuji snad jednoduchý názorný příklad.
Použitý je formulář "Pole se seznamem", odkazující se na Seznam definovaný názvem.
Pro volbu předcházející a následující je použito makro.
S pozdravem
M@
Jeden příklad:
Platný při změně buňky - ověření sloupce A daného řádku je-li podmínka splněna (=A), pokud ne generuj náhodné číslo do sloupce B.
Private Sub Worksheet_Change(ByVal Target As Range)
If Cells(Target.Row, 1) <> "A" Then Cells(Target.Row, 2) = Rnd
End Sub
M@
Pak lze do podmínky dát aby pro zdrojovou tabulku grafu v případě prázdné hodnoty nedef() - nedefinovaná nebo chybová hodnota se nevykreslí.
Asi to nebude nejideálnější řešení, ale alespoň nějaký nápad :-). Dané logo bych dal ne do záhlaví, ale přímo na první stránku.
Dobrá otázka :-), sám to řeším přes pomocnou tabulku se zdrojovými daty pro graf - pokud je v původní tabulce podmínka splněna, pak zapiš hodnoty do tabulky pro graf.
Třeba ale někdo ví něco víc :-)
M@
Pokud si to dobře pamatuju, tak náhodné číslo se generuje vždy po přepočítání listu, takže bych to neřešil vzorcem, ale dosazoval náhodné číslo jako hodnotu pomocí makra.
M@
Možností je více, třeba pomocí kopírování, ale tam můžeš narazit na problém se sloučenými buňkami.
Jako příklad uvádím přenos pomocí proměnné temp:
Sub tlačítko1_Klepnutí()
Dim temp As String
temp = Cells(6, 2)
Range("B6").Copy
Application.Workbooks.Open ThisWorkbook.Path & "\sešit_1.xlsm"
Windows("sešit_1.xlsm").Activate
Cells(6, 2) = temp
End Sub
M@
Dobrý večer,
přiznávám že mi není moc jasné o co jde - chtělo by to nějaký příklad a třeba i popsat k čemu by to mělo sloužit.
M@
Ahoj,
můžeš přibalit nějaký příklad?
Takhle to vypadá jako bys chtěl na základě nějakých kritérií spustit filtr ve všech listech a výsledek zapsat do nových listů, což bude asi trochu náročnější, ale bude-li příklad, tak na to mrknu.
Kdyžtak ještě připiš požadovaný výsledek (podle čeho filtrovat).
PS: podle toho jak to vypadá bych spíš volil cestu přes databázi, ale uvidím co pošleš :-).
M@
Ahoj,
nevím jak je to myšleno s tím makrem pro Access, ale v Accessu to jde vytvořit databázovým dotazem bez makra, ikdyž moc mi není jasný bod 2 s tím časem.
Ostatní požadovaná a seřazená data lze dostat pomocí SQL:
SELECT * FROM Tabulka
WHERE (SPORTS_ID="2" AND EVENT="MATCH ODDS" AND IN_PLAY="PE")
ORDER BY SPORTS_ID ASC
ikdyž řazení podle prvního sloupce (SPORTS_ID) mi přijde zbytečný jelikož tam dle filtru bude vždy jen 2.
Pokud jsem špatně pochopil, tak se omlouvám :-).
M@
Ahoj, když pošleš příklad tak na to mrknu :-), takhle aniž bych to viděl si to neumím nasimulovat.
M@
Sub Formular()
UserForm1.Show (0)
End Sub
M@
Ahoj,
koukám jak všichni mají jednoduché tipy a já to doposud dělal smyčkou :-)
public sub radky()
dim radek as single
radek = 2' začínám většinou od druhého řádku (první je hlavička)
do while cells(radek,1) <> ""
radek = radek + 1
loop
msgbox radek 'číslo prvního prázdného řádku ve sloupci 1 (A)
End sub
M@
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.