Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  41 42 43 44 45 46 47 48 49   další » ... 53

Ahoj, tak jak jsem slíbil, posílám návrh.

S pozdravem
M@

Zkuste to takto:
Public Sub hledej()
Dim retezec As String
retezec = InputBox("Hledaný výraz", "Hledej")
Dim radek As Single
radek = 2

For Each cell In Range("A:A")

If InStr(1, cell.Value, retezec, vbTextCompare) > 0 Then
List1.Rows(cell.Row).Copy
List2.Rows(radek).PasteSpecial xlPasteAll
radek = radek + 1
End If
Next

End Sub


zkopíruje to celý řádek a prohledávání už není definováno výběrem, ale sloupcem A.

M@

Ahoj,
co třeba vzorec:
=HYPERTEXTOVÝ.ODKAZ("C:\Tabulka\"&C1&".pdf";C1)

šlo by to? :-)

M@

Ahoj, zkus sem hodit nějaká ta data a já zkusím zabádat :-), neříkám, že hned ale zkusím to :-). Vypadá to jako pokus o nahrazení SQL dotazu v excelu.

M@

Ahoj, tak já to teda zkusím popsat :-).
retezec = hledaná hodnota

radek = pocatecni radek listu dva kam se budou zapisovat hodnoty je-li podminka splnena

For each cell in selection = smyčka která prejede buňku po buňce v označené oblasti buňek (místo selection lze nastavit konkrétní range).

Instr = funkce pro vyhledání textového řetězce v textu

1 = počáteční znak odkud prohledávat

cell.value = prohledávaný text

retezec = viz výše

vbTextCompare = porovnávání textu

funkce Instr v případě nalezení řetězce v textu vrátí číslo odpovídající prvnímu nalezenému výskytu (pozice prvního znaku řetězce v prohledávaném textu), proto > 0, kdyby bylo =0 zanmená, že ho nenašel.

následující řádek zapíše do listu 2, sloupce 1 na řádek = radek hodnotu prohledávané buňky je-li splněna podmínka výše.

Je-li zapsáno přičte jeden řádek, do kterého bude v příštím cyklu smyčky zapisovat, bude-li splněna podmínka.

End if = konec podmínky

Next = jdi na další buňku výběru

S pozdravem
M@

Jeden příklad:
Public Sub hledej()
Dim retezec As String
retezec = InputBox("Hledaný výraz", "Hledej")
Dim radek As Single
radek = 2

For Each cell In Selection

If InStr(1, cell.Value, retezec, vbTextCompare) > 0 Then
List2.Cells(radek, 1) = cell.Value
radek = radek + 1
End If
Next

End Sub

M@

Vzorec mě žádný nenapadá, leda ho vytvořit makrem, ale to by v případě 100 lisů byl problém, když by vzorec obsahoval řekněme 50x =List2!A1+List3!A1, asi by se to ani nevešlo :-), takže bych to řešil makrem a natvrdo (makro spočítá a vloží hodnotu):
Public Sub pocitej()
Dim cislo As Single
cislo = 0

For i = 1 To ThisWorkbook.Sheets.Count
If Sheets(i).Name <> "aktualni" And Sheets(i).Cells(1, 2) > 100 Then cislo = cislo + Sheets(i).Cells(1, 1)
Next

Sheets("aktualni").Cells(1, 1) = cislo
End Sub


Snad to pomůže.
M@

Ahoj,

aby číslo co vidíš bylo vidět i v řádků vzorců nebo v editaci buňky, tak by to muselo být zadáno jako text vyexportováno např. s apostrofem '3892:32:00. Takhle si to excel přebere jako datum, o kolik dní je dané číslo větší než počátek systémového data.

Pokud s tím chceš dál pracovat, tak jak to tam je, mi to přijde vyhovující - viz. příloha.

M@

Ono to zas takový monstrum jak to vypadá není :-)

Kdybych použil mezivýpočet, tak mám
vzorec 1 (označit poslední a předposlední "\"):
=DOSADIT(DOSADIT(B1;"\";"#pp";DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))-1);"\";"#po";DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))-1)

vzorec 2 (získat z výsledku vzorce 1 požadovanou hodnotu):
=KDYŽ(DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))<=1;"";ČÁST(B48;HLEDAT("#pp";B48;1)+3;HLEDAT("#po";B48;1)-(HLEDAT("#pp";B48;1)+3)))

což jsou krátké vzorce :-).

To monstrum vzikne tím že nechci použít mezivýpočet, tudíž ve vzorci 2 místo odkazu na výsledek (B48) musím vždy napsat celý vzorec 1, tzn. 4x.

M@

Tak jsem si řekl, že když to zvládne někdo na zahraničním foru, že to snad zvládnem taky a tak jsem si udělal rozbor toho vzorce, česky je to:
=KDYŽ(DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))<=1;"";PROČISTIT(ČÁST(DOSADIT(B1;"\";OPAKOVAT(" ";100));(DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))-1)*100;100)))
a došel jsem k závěru, že není až tak úplně univerzální a tak jsem si zkusil napsat vlastní vzorec, bylo to teda tak na hodinu přemýšlení :-), ale výsledek je na světě (trochu delší než ten ze zahraničního fóra):
=KDYŽ(DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))<=1;"";ČÁST(DOSADIT(DOSADIT(B1;"\";"#pp";DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))-1);"\";"#po";DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))-1);HLEDAT("#pp";DOSADIT(DOSADIT(B1;"\";"#pp";DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))-1);"\";"#po";DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))-1);1)+3;HLEDAT("#po";DOSADIT(DOSADIT(B1;"\";"#pp";DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))-1);"\";"#po";DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))-1);1)-(HLEDAT("#pp";DOSADIT(DOSADIT(B1;"\";"#pp";DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))-1);"\";"#po";DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))-1);1)+3)))

V příloze přikládám i rozbor obou vzorců - třeba se někomu bude hodit.

S pozdravem
M@

Zas to s tou chválou nepřehánějte :-), aby mi to nestouplo do hlavy :-).

Ikdyž přiznávám, potěší to :-).

S pozdravem
M@

Ahoj, ten jeden řádek co jsem tam dopsal skoro nestojí ani za řeč :-)), rád pomůžu, když vím jak :-).

M@

Pokus č. 2 :-)

M@

Tak jo :-).
Je to v příloze.

S pozdravem
M@

Možná jsem to pochopil trochu jinak, ale nějaký nástřel v příloze :-)

M@


Strana:  1 ... « předchozí  41 42 43 44 45 46 47 48 49   další » ... 53

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

Čas od do

lubo • 19.4. 16:30

Makro smyčka

MilanKop • 19.4. 10:46

Makro smyčka

elninoslov • 19.4. 9:02

Čas od do

elninoslov • 19.4. 8:46

Čas od do

jarek1111 • 18.4. 13:46

Čas od do

lubo • 18.4. 11:13

Čas od do

jarek1111 • 18.4. 8:32