Jooo aha! Pokud použiju tlačítka ActiveX, tak to funguje naprosto parádně! Děkuji za rady a tipy klucí
Něco podobného zde bylo už řešeno, jukni na to a myslím, že budeš spokojen
http://www.wall.cz/index.php?m=topic&id=2261
Jaká podmínka bude určovat, které konkrétní listy se mají přesunout? Bude to interval od listu 1-5, nebo násobky každý třetí, pátý, atd...?
Dám si normálně Ovladací prvky formuláře, vyberu si tlačítko a natáhnu ho na excel tabulku. Přiřazuju mi makra, atd.. Když to však udělám dle Jezovo rady, že si zjistím jeho název, pomoci Shapes si na něj šáhnu, tak ano, ale nemůžu mu nastavit backcolor, protože mi VBA hlásí, že tato metad není dostupná.
Zkusil jsem si teda vytvořit proměnou typu Object a do ní napřed tlačítko přiřadit a pak mu zkusit nastavit vlastnost a také nic. Jediné co se mi povedlo nastavit bylo Left..
Vytvoř příklad a zašli, určitě to není nic složitého
Mám takový dotaz...
Je možné nechat přeložit program tak, aby byl samostatnou dílčí jednoutou? Myslím tím, co se týče makar. Mám problém, že někteří zaměstnanci nemají zapnuté ty a ty reference, má a nemá povolené makra, atd... Není možné to vykompilovat v nějakou samostatně funkční jednotku?
Vzal jsem si UserFrom, který potřebuju posouvat.
Dam na něj stupidní tlačítko, a do něj napíšu následující:
Pokus1.left = Pokus1.left +10
MsgBox Pokus1.left
Klikám na to a MsgBox vypisuje hodnotu vždy o 10 větší, ale UserFrom s názvme Pokus1 se ani nepohne
Začal jsem pátrat a našel jsem globální proměnou s názvem Left a Top. Program při kompilaci nezahlásil žádnou chybu ani při běhu, prostě mu to nevadí, ale v tu chvíli funkce left a top nefunguje. Po přejmenování se vše rozběhlo a plně funguje.
Naprosto luxusně vypadající řešení :)
Jenom se zaboha nemůžu dopomoct toho, aby mi UserForm reagoval na .left a .top. Nevím, zda jsem si někde něco nenastavil, ale i když napíšu hloupe MujUserFrom.Left = 1 tak se nic nestane, prostě to na to nereaguje. Musím někde zaptrát, co by mohlo tento příkaz vyřadit z činnosti právě u mého souboru. Když jsem si otevřel nové okno a udělal obyčejný userfrom a přiřadil na tlačítko left, tak to už fungovalo.
Moc ale děkuju za opravdu moc pěkné řešení
Tak jsem dle tvé rady provedl a MsgBox mi vypsal: Tlačítko 198
Jak to použít nevím, když VBA nemá rádo mezery. Je na to ještě nějakej další trik, jak se i přes toto dostat?
Já si nemůžu pomoct, ale mě to nejde. Když přímo do excelu vložím tlačíto, tak se na něj nemám jak odkázat. Nikdy ani není definovaný jeho název nebo adresa. Když si to vložím na UserFrom, tak je to jasné..
UserFrom1.tlacitko1.backcoloor = ...
To je mi jasné, ale jak se odkážu na tlačitké, které je vložené přímo na excel nevím...
Hotovka
Já bych příklad poslal docela rád, ale je to takovej malej program s databází, provzánej na x sešítů, accesů, atd, takže když to pošlu, nebude tam vůbec nic fungovat. Druhá věc je spousta modulů a jsem lenivej dělal popisky, takže než se v tom zase vyznáš. Stačilo by mě pošťouchnout jak na to. Nejsem si totiž vůbec jist, zda UserFrom.left a .top funuje už při spuštěným UserFrom. I když tam na tvrdo nastavim třeba UserFrom.left = 1 a UserFrom.top = 1, tak to vůbec nic neudělá. Jako kdybych to tam ani nenapsal. Jsi si tedy jist, že pozicování pomocí .left a .top funguje už po nainicializovaném UserFormu?
Pokud by to bylo zabalené v zipu, tak se na to juknu. V kanceláři rar nerozbalím
Bude to znít asi hloupě, ale neudělalo to vůbec nic
Zde je kod, který je zapsán na přílusšném tlačítku, které vyvolává zvětšení formuláře:
Private Sub Zoom1_Click()
Pokus1.Image1.Picture = Pokus1.Picture
Pokus1.Image1.Visible = True
Pokus1.Image1.AutoSize = True
Pokus1.Height = 600
Pokus1.Width = 800
Pokus1.Zoom1.Visible = False
Pokus1.Dalsi.Visible = False
Pokus1.Predchozi.Visible = False
Pokus1.ScrollBars = fmScrollBarsBoth
Pokus1.ScrollHeight = Pokus1.Image1.Height
Pokus1.ScrollWidth = Pokus1.Image1.Width
Pokus1.ScrollLeft = 0
Pokus1.ScrollTop = 0
Pokus1.Zpet.Visible = True
End Sub
Nevím si stím právě vůbec rady, zkusil jsem už spousta věcí, dalších knihoven, atd... Nic nepomohla. Formulář ma nastaveno v propertis: StartUpPosition na center obrazovky.
U toho prvního si nejsem jist, zda se na sloupec dá odkázat pomocí písmena.. Pouze objekt typu Range má možnost udělat odkaz pomocí Range("A:A") a tím se myslím celý sloupec A. Aby ti Excel ale vrátil písmene sloupce, to sem nikdy nepoužil, ani nevím o metodě. Jedině zjistit číslo sloupce a potom někde vedle vytvořit převodovou tabulku (pokud tedy nemáš 10tky sloupců) a podle indexu hlásit příslušné písmeno.
U toho druhého musí být to tlačítko vložené pomocí VBA ve formuláři. Pokud vložíš tlačítko pomoci Tools v excelu, není možné se na něj přes VBA dostat. Není to problém jenom tlačítka ale všech controls vkladaných do excelu. Pokud to máš na formuláři, tak by to mělo fungovat viz příloha
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.