Jo, to jde.
Musite ve vlastnostech prvku nastavit:
1) BackStyle: 0 - fmBackStyleTransparent
2) BorderStyle: 0 - fmBorderStyleNone
Musite vkladat textove pole z prvku ActiveX (protoze i obrazek pouzivate z prvku ActiveX)
U tech pak neni problem presunout nektery prvek do popredi, resp. do pozadi...
Zdravim, něco jsem zkusil.
V bunkach D8 a E8 vozte adresy bunek, které chcete spojit a kliknete na tlacitko - tim se vlozi primka.
Není tam moc kontrol, spis je to jen navod, jak lze podobnou věc udelat...
No, pokud vim, tak pocitat s takovymito bunkami lze - pokud je tedy scitate nebo odcitate, nemel by byt problem - pak tedy neni nutne prevadet na datum (nebo cas).
Pokud to ale nutne potrebujete, lze tento sloupec dat prevest na hodnotu pomoci funkce HODNOTA - do nejakeho pomocneho sloupce do prvniho radku vlozite funkci =HODNOTA(A2) - pokud vase data zacinaji v bunce A2 a protahnete dolu - pak uz muzete pouzit format cisla jaky chcete.
Myslim, ze postaci vlozit adresu toho sloupce, tedy napr. B2:B11, pokud budete doplnovat data do dalsich radku tabulky, bude se seznam automaticky natahovat
V modulu prislusneho listu je makro:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Radek As Long
Dim LIST As String
LIST = "List2"
If Target.Address = "$A$1" Then
If Len(Target) > 0 Then
Radek = Worksheets(LIST).Cells(65000, 1).End(xlUp).Row + 1
Worksheets(LIST).Cells(Radek, 1) = Target
Worksheets(LIST).Cells(Radek, 2) = Now
End If
End If
End Sub
Tato procedura se spusti vzdy, kdyz je zmenena bunka A1 na prislusnem listu - je to takove automaticky spoustene makro - zkuste se podívat na událostní procedury.
pokud jsi mel zadat kontrolni text, tak jsi nebyl prihlaseny ...
a neprihlaseny uzivatel nemuze vkladat soubory!
zkuste prilozit soubor a definovat vlastni seznam
tohle jde jedine makrem - zkuste prilohu...
V tom pripade asi takto:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Variant
Dim D As Variant
Dim E As Variant
Dim Radek As Long
If Not Intersect(Target, Range("B3:B14")) Is Nothing Then
If IsEmpty(Target) Then
'ulozeni hodnot z radku smazaneho Becka
C = Cells(Target.Row, 3)
D = Cells(Target.Row, 4)
E = Cells(Target.Row, 5)
Range(Cells(Target.Row, 3), Cells(Target.Row, 5)).ClearContents
'posun casti pod smazanym B
Range(Cells(Target.Row + 1, 2), Cells(15, 5)).Cut Destination:=Range(Cells(Target.Row, 2), Cells(14, 5))
'vlozeni 'umazaneho' radku
Radek = Cells(16, 5).End(xlUp).Row + 1
Cells(Radek, 3) = C
Cells(Radek, 4) = D
Cells(Radek, 5) = E
End If
End If
End Sub
Zkuste tento kod do modulu prislusneho listu:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Variant
Dim D As Variant
Dim E As Variant
If Not Intersect(Target, Range("B3:B14")) Is Nothing Then
If IsEmpty(Target) Then
'ulozeni hodnot z radku smazaneho Becka
C = Cells(Target.Row, 3)
D = Cells(Target.Row, 4)
E = Cells(Target.Row, 5)
Range(Cells(Target.Row, 3), Cells(Target.Row, 5)).ClearContents
'posun casti pod smazanym B
Range(Cells(Target.Row + 1, 2), Cells(15, 5)).Cut Destination:=Range(Cells(Target.Row, 2), Cells(14, 5))
Range("c15") = C
Range("d15") = D
Range("e15") = E
End If
End If
End Sub
Ano - to jde, jen tim zamcenim sesitu myslite asi zamceni listu.
Porad ovsem je ten problem, ze pred zavrenim sesitu musite opet listy uzamcit a tim padem potom ulozit, takze pred kazdym zavrenim sesitu musite sesit ulozit..
Ze by se soubor neotevrel - to nejde.
Uzivatel si zkratka vzdycky bude moci vybrat, ze makra nepouzije, s tim se neda nic delat.
Urcita varianta existuje - pri zavreni sesitu se vzdy vsechny listy skryji (makrem) a necha se je jen, ktery uvidi uzivatel, kde bude napsano, at povoli makra.
Po povoleni maker se spusti procedura, ktera listy zpristupni uzivateli.
Na konci prace se vsak sesit musi vzdy ulozit!!! Aby mohly byt skryty listy...
No jde to, ale vzorec neni prave nejjednodussi...
Zkuste se tim prokousat v priloze
Co treba automaticky filtr, kde nebudou zobrazovany nuly?
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.