Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  238 239 240 241 242 243 244 245 246   další » ... 286

Klikaciu verziu Vám vymyslel Vovka. Takže ste si dal dokopy až 3 súbory.
1. verzia s dvojklikom v A
2. verzia s rozlišovaním XY-text/"NE"
3. Váš súbor
Snáď ste si to skombinoval správne, keď Vám to funguje tak snáď áno.

No to ste sa teda naozaj zle vyjadril, aj predtým, aj teraz. Vy chcete vypísať vlastne zo známych slov, tie, ktoré sa v danom texte vyskytujú ? Ak ich máte iba 6, tak nepotrebujete makro.
http://uloz.to/xJRu4SoZ/slova-xlsx

Vovka má na mysli niečo takéto.
Definované názvy potom treba doriešiť, keďže budú asi dynamické výšky, tak napr. prevedením na Tabuľku.

Najjednoduchšie mi to príde makro-funkciou:
Function VymazSlova(Kde As String, Coo As String) As String
Dim Co, i As Integer
Co = Split(Coo, ",")
For i = LBound(Co) To UBound(Co)
Kde = Replace(Kde, Co(i), "", , , vbTextCompare)
Next i
VymazSlova = Trim(Replace(Replace(Replace(Kde, " ", "•°"), "°•", ""), "•°", " "))
End Function

Použitie v liste potom bude:
=VymazSlova(A1;"ja,ty,my,vy,oni,tie")

Pozerali ste si makro nielen v module ale aj v liste ? Ak ste nepreniesli to, tak Vám to samozrejme fungovať nemohlo.
Každopádne, tu je príklad riešenia nového zadania. Ten zoznam nebude fungovať správne, ak budú medzi dátami prázdne riadky v stĺpci A.

Neviem ako presne vyzerá objektová štruktúra VBA v ArcGis, ale v Exceli by makro vyzeralo napr takto.
Sub Podmienka()
Dim KAT(), ROZL(), BODY(), r As Long
KAT = Range("KAT").Value
ROZL = Range("ROZL").Value
ReDim BODY(1 To UBound(KAT), 1 To 1)
For r = 1 To UBound(KAT, 1)
Select Case True
Case KAT(r, 1) = "NPR": BODY(r, 1) = 20
Case KAT(r, 1) = "PR" And ROZL(r, 1) <= 40: BODY(r, 1) = 10
Case KAT(r, 1) = "PR" And ROZL(r, 1) > 40: BODY(r, 1) = 13
Case Else: BODY(r, 1) = 0
End Select
Next r
Range("BODY").Value = BODY
End Sub

Podmienkou je, aby boli definované oblasti KAT, ROZL, BODY, rovnako vysoké. Dalo by sa aj bez nich samozrejme, ale neviem ako presne pracuje ArcGis, pokúšal som sa nejaký aj sprevádzkovať, žiaľ bezúspešne. Zaujímalo by ma, či sú tie Vaše oblasti dynamicky menené, ak áno, tak ako máte ošetrený rozsah? Ak nemáte a rozsah sa bude meniť, tak to takto byť nemôže. Proste by som potreboval ten ArcGis.

Dokážete si teda tento príklad pretaviť do Vášho riešenia ?

A tu máte návrh na dve metódy pomocou makra, na jeden riadok (s pomenovanými oblasťami pre každú z 3 buniek).

V Exceli by to bol takýto nejaký vzorec.
K tomu makru: Čo znamená Range("KAT"), Range("BODY") ? Máte také pomenované oblasti ? Jedná sa iba o jeden riadok, alebo ide o vzorec v celej tabuľke ? Je vo funkcii UDF (uživateľsky definovaná funkcia, použitá vo vzorci...)?

1. Presne tak, stále nad tým často rozmýšľam ako nad tabuľkou a nie Tabuľkou.
2. ComboBox sa mi na toto páči viac, je vyšší, čo pri množstve položiek je prehľadnejšie
3. frmStyleDropDownList som si nastavil, ale žiaľ na skúšobnom ComboBoxe, až potom som to prehodil na CB1 ale už bez toho.
4. Ja nemám problém s povolením makier, možno dotyčná užívateľka áno, ale jeden z dôvodov je bezobslužnosť čo sa týka vkladania vzorcov. Toto by sa ale tiež dalo asi vyriešiť prevodom tabuľky v liste "kalkulace" na Tabuľku, a odpadol by aj "zákerný" problém zisťovania počtu riadkov tabuľky, pod ktorou je ďalšia.

Je krásne vidieť skúsenosti matadora eLCHa, proste sa na veci pozerá inak, ako my amatéri.

@ZFRA: Skúste si to previesť na Tabuľku. Uvidíte, že Vám to bude vkladať vzorce a SeznamPoložek samé. Len mne by vadilo to čo som spomínal v 2, to ale pre Vás nemusí byť smerodatné.

Niekedy bývam pri slovným úlohách fakt natvrdlý, a toto je jedna z nich. Možno iba ja nechápem, čo potrebujete, neviem, ale každopádne by veľmi pomohla (Vám) príloha.

EDIT: Skúste použiť niečo z tohto, asi nie najlepšie, ale keďže netuším o čo ide, tak snáď aspoň nakopnem 1

No takto. To že chcete ešte vkladať nové riadky, je ohromná komplikácia, a to aj vzhľadom na to, že pod tabuľkou sú ďalšie dáta. Schovávanie/ukazovanie výberového zoznamu je totiž podmienené logicky tým, že je klik (kurzor) na riadku v určitom rozsahu. Tento rozsah bol pevne daný. Ale teraz ho chcete meniť, a teda je potrebné nejako zistiť či ste vložili/zmazali riadok, ďalej či ste klikli v oblasti (ktorej veľkosť ale nepoznáme, keď pridávate riadky), kde sa má zviditeľniť výber. Ďalšia komplikácia, ktorá z toho vyvstáva je nutnosť vložiť nové a upravené vzorce do nového riadku. Ďalej je potreba zabezpečiť, aby žiadne vzorce nevkladalo, ak vložíte riadok napr v tej spodne tabuľke, a to takisto nevieme.... Proste komplikácie na všetkých frontoch.
Takže, urobil som Vám takpovediac z vody uvarené riešenie, ktoré z veľkej časti eliminuje tieto problémy. Pozor dajte na to, že sa makro odkazuje na nové definované oblasti. Pod tabuľkou v ktorej máte tie dáta, a do ktorej budete prípadne aj vkladať nové riadky, tak pod touto tabuľkou MUSÍ byť v stĺpci C slovo "Mezisoučet", ktoré je hraničné pre vkladanie vzorcov do vložených riadkov. Takisto je tam použité hľadania prvého voľného riadku v stĺpci E, atď.

Vysvetľovať niečo takéto je nad moje (anti)pedagogické schopnosti, tak si to otestujte.

EDIT: A stĺpec A si zviditeľníte tak, že kliknete na spojnicu označenia riadkov a stĺpcov, označí sa všetko, kliknete napr. na hlavičku B pravým a vyberiete Odkryť. Schováte ho zase tak, že pravý klik na A a vybrať Skryť.

A ten fígeľ v schovávaní/zobrazení výberového zoznamu, no ak neovládate VBA (makrá), tak to vysvetľovať nemá cenu. V skratke, ak je kurzor v oblasti kde sa má zobrazovať zoznam, tak sa nastaví jeho vlastnosť Visible (viditeľnosť) na True (zapne sa), ak je mimo tejto oblasti, tak presný opak Visible = False (vypne ho).

Áno, samozrejme môže byť, len sa musí testovať každý TB zvlášť, lebo ak ich najskôr spočítate, a naraz vyhodnotíte, tak aj pri iba jednom zadanom čísle dostanete True. Ale "" nemusí byť vždy 0. Záleží na konkrétnom použití a vkuse.
Private Sub CommandButton1_Click()
If IsNumeric(Me.TextBox1.Value) And IsNumeric(Me.TextBox2.Value) Then Worksheets("Hárok1").Cells(1, 1) _
= CInt(Me.TextBox1.Value) + CInt(Me.TextBox2.Value) Else MsgBox ("Chybné hodnoty !")
End Sub

Pozerám si objektový model ListBox-u a pochybujem, že to pôjde. Nikdy nehovor nikdy, ale ...

Presne tak, a keď sa pozriete na čas písania príspevku, tak je zabudnutie jedného LEN celkom v norme :). Ale super, že ste na to prišiel sám.
PS: Musím začať fičať na tom prekladači od eLCHa...

Private Sub CommandButton1_Click()
On Error Resume Next
Worksheets("Hárok1").Cells(1, 1) = CInt(Me.TextBox1.Value) + CInt(Me.TextBox2.Value)
If Err Then MsgBox ("Chybné hodnoty !"): Err.Clear
End Sub


Strana:  1 ... « předchozí  238 239 240 241 242 243 244 245 246   další » ... 286

Uživatelské menu

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

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

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

Aktivní diskuse