Mno, pokiaľ som Tvoje makro spúšťal u seba, tak síce v O1 bolo niečo, čo sa ako dátum tvárilo, v skutočnosti to ale bol text. V stĺpci A, než som konvertoval reťazec v O1 na dátum, tak mi to vyhadzovalo chybu, následne sa mi v stĺpci A zobrazujú textové reťazce v tvare "DD/MM" ale stále je to text. Takže, netuším, prečo to u teba funguje inak, tipol by som na iné nastavenie v národnom prostredí.
No, napísať, že 1.1.2013 chceš ako "01/01" je fakt super skvelé jednoznačné vyjadrenie
To skoro na konciTarget.Value(datum) = datchce byť čo, prosím?
Napíš miesto tohoTarget.Value = dat, malo by to fungovať, pokiaľ som pochopil správne
Každopádne, potom máš v stĺpci A iba text, nie dátum, to samé platí o bunke O1. Pre získanie skutočného dátumu, t.j. numerickej hodnoty, musíš v kóde formulára zmeniť udalosť Click naPrivate Sub Calendar1_Click()
'Dim datum
datum = UserForm1.Calendar1.Value
MsgBox (datum)
Range("O1").Value = CDate(datum) 'tu je ta zmena, o ktorej hovorim
Unload Me
End Sub
Minimum, aby to vôbec fungovalo, je asi toto:Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.CodeName = "Sheet1" And Target.Address = Range("B3").Address Then 'je potrebne otestovat, ci menis bunku B3
Select Case Range("B3")
Case "A1"
MsgBox "Vybral si TYP A1"
ThisWorkbook.Sheets("Sheet1").Select
Range("B8:D9").Clear
Selection.Clear
ThisWorkbook.Sheets("Sheet3").Activate
Range("A3:C4").Copy
ThisWorkbook.Sheets("Sheet1").Activate
Range("B8").Select 'zabudol si na riadok, urcil si len stlpec
ActiveSheet.Paste
Case "A2"
MsgBox "Vybral si TYP A2"
Case "B1"
MsgBox "Vybral si TYP B1"
Case "B2"
MsgBox "Vybral si TYP B2"
Case "C1"
MsgBox "Vybral si TYP C1"
Case "C2"
MsgBox "Vybral si TYP C2"
Case Else 'je potrebne mysliet na eventualitu, kedy do B3 zapises i inu hodnotu, nez hore vymenovane
MsgBox "ine"
End Select
End If
End SubV kóde som urobil iba minimálne úpravy, aby si videl, kde bol hlavný problém
eLCHa, výborné, díky, funguje to a funguje to i tak, ako mi radí Bath na excelplus.net, t.j.ActiveSheet.Shapes("Scroll Bar 1").ControlFormat.Enabled = Falseste miliónoví
Admin môže zamknúť.
V prípade splnenia podmienky by som potreboval, aby sa mi v liste zneaktívnil ovládací prvok posuvník - jedná sa o ovládací prvok formulára (nie ActiveX), ktorý mám použitý na liste. Nechcem ho skryť (to by šlo, ale nechcem), chcem len, aby naň nešlo kliknúť a posúvať to posúvatko v ňom. Pri nesplnení uvedenej podmienky ho zase zprístupniť. Ide to nejak? Niečo na spôsob:ActiveSheet.Shapes("Scroll Bar 1").Visible = False akurát by sa nejednalo o vlastnosť Visible ale o niečo ako Disable, akurát neviem, či taká nejaká vlastnosť/metóda pre Shapes existuje, Locked v používaní posuvníka nezabráni.
Nasledujúci zdroj som preskúmal, ale nenašiel som, čo som potreboval, je ale možné, že som špatne hľadal:http://msdn.microsoft.com/en-us/library/bb259306(v=office.12).aspx
Nepozná niekto riešenie?
Tak, vlastné radenie položiek v KT mám poriešené - je potrebné zadefinovať vlastné zoznamy.
Admin môže zamknúť.
eLCHa: presne o to som sa snažil, ale písalo mi to, že uvedenú hodnotu nie je možné zmeniť, síce mi to nedávalo zmysel ale proste to z nejakého tajomného dôvodu nešlo (niečo som robil špatne, klikal som pravdepodobne na nesprávne pole). Nakoľko ste mi v odpovedi potvrdil, že je to správna cesta, tak som skúsil ešte raz a svete div sa, funguje to
Ďakujem za potvrdenie správnej cesty a nakopnutie.
Edit: Už viem, čo bolo nesprávne - ja som sa pokúšal ten label (blank) zmazať, to ale nejde, je potrebné ho nahradiť, napríklad znakom medzera, ako správne píšete, díky ešte raz.
Ešte by som potreboval, aby tieto prázdne boli potom v rámci daného Slicer v zozname na konci za ostatnými, to budem musieť ešte preskúmať, ako na to, ale možno Vy odpoveď poznáte, tak pokiaľ by ste vedel ešte toto, tak poprosím o odpoveď i na túto otázku.
Ale moc sa s tým zatiaľ netrápte, iba pokiaľ viete bez dlhého bádania, ako na to, pokiaľ je na to potrebný nejaký kód, ktorý by ste musel tvoriť, tak ten si vytvorím (pokúsim sa) i sám, proste, pokiaľ máte už existujúce riešenie, tak sem s ním, v opačnom prípade sa najprv posnažím sám..
Pokiaľ mám v KT položky, ktoré v niektorom poli zdrojových dát majú hodnotu NULL, tak do KT sa takéto záznamy prepisujú v rámci oblasti označenej ako Prázdne (blank). Nemá niekto skúsenosť s tým, akým spôsobom prípadne tento názov potlačiť, eventuálne nahradiť iným? Nejde mi o nezobrazovanie príslušných riadkov, páč v Row Labels môže byť takto označená položka nasledovaná ďalším Row Label, ktorý už blank nie je. Sorry za tú angličtinu, ale neviem si spomenúť, aký názov to má v češtine. V obrázku som naznačil, o čo mi ide...
No a ja Ťa musím na oplátku pochváliť a poďakovať za link, funguje to super
Teda, nie že by som na to v túto chvíľu dokázal napísať kód, ale jednoduchšie mi príde tie tabuľky do Excelu naimportovať, miesto ich exportovania z Accessu. Čiže kód napísať v Exceli, pogoogluj veci okolo ADO. Kód ale nemám, s týmito vecami (SQL/ADO v rámci VBA pre excel) som skutočne na samotnom začiatku. Mám ale dojem, že občas tu niečo v tomto zmysle vyšíva jeza, tak si to možno všimne a dá sem i samotný kód.
@Andysa: Poki určite nehovorí len za seba. Pokiaľ budú fóra plnené podobnými dotazmi, tak bude veľký problém nájsť čokoľvek, čo posunie osoby, ktoré sa chcú v exceli skutočne zlepšovať, niekam ďalej. Uvedenú úlohu musí totiž zvládnuť každý, kto videl excel aspoň týždeň, vystúpiť s týmto typom dotazu na fóre jednoznačne poukazuje na naprostú lenivosť dotyčného tázateľa a zaberá to priestor, ktorý by mohol byť venovaný skutočným problémom, nie naprostým trivialitám.
To enable events má svoje kúzlo, pokiaľ by mal jeden problém to použiť, tak tu je alternatívaPrivate Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Value <> UCase(Target) And Not IsNumeric(Target) Then Target.Value = UCase(Target)
End Sub
Je to, ako správne predpokladáš, problém spätnej kompatibility. Môžeš skúsiť *.xlsm otvoriť v 2007/2010 a uložiť ako *.xls. Pokiaľ ani takto vytvorený súbor neotvoríš v 2003 bez chýb, tak je to na prepísanie tých makier...
@Jeza: Jsem čekal databázi a on jenom excel :-)
Ja mám husiu kožu z kolegu, ktorý slovo databáza u svojich šialených xls tabuliek používa tak 20x denne :)
@marjankaj Nie je treba deklarovať, ak nie je deklarovaná, tak je to typ variant.
len poznámka: platí len v prípade, že nie je nastavená povinná deklarácia premenných, to Ty samozrejme vieš, ale čítajú to tu i osoby, ktoré to nevedia
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.