Příspěvky uživatele


< návrat zpět

Strana:  1 2 3 4 5 6 7 8 9   další » ... 84

To je pomerne jednoduche, protoze cas je v Excelu cislo, nikoliv text (vy se snazite hledat text "11:04" - uvozovky udelaji z vyrazu v nem textovy retezec)

Je tedy dulezite vedet, jak je cas uveden v ciselne podobe:
1) muzete si cas vlozit do bunky excelu a preformatovat jeho zobrazeni napr na 'cislo'
2) spocitat si ho (v Excelu je den=1), tedy 11:04 (11 hodin 4 minuty) = 11/24+4/24/60

V obou pripadech mate cislo 0,46111111111...

A prave toto cislo musite vlozit do vami zvolene funkce POZVYHLEDAT jako argument 'co' 1

Páni, čtu to a nestačím zírat. Tolik výčitek kvůli tak nicotným věcem.

A přitom jde pořád o to samé.
Má takový pocit, že když chce někdo pomoci zadarmo, tak by měl dělat co může, aby svému pomocníkovi vyšel vstříc, jak jenom to jde a nezavrhoval řešení jenom proto, že o něčem takovém v životě neslyšel.

A protože toto vlákno už opravdu dlouhé, zamykám... 2

Mene nez vterinu to lze, napr. pouzitim Timer

Pausa = 0.12 ' nastavit čas čekání ve vteřinách
Start = Timer

Do While Timer < Start + Pausa
Loop

'Tyto radky jsou uz jen kvuli dukazu
Konec = Timer
Cekacka = Konec - Start
MsgBox "čekal jsem: " & Cekacka & " vteřin"

Tak ja to napisu jeste jednou - podle me .RemoveDuplicates dela presne to, co ma.

V prvni casti kodu se odstrani vsechny radky, ktere maji prazdny sloupec F (SOD), protoze fakturace je vzdy nulova.

A protoze ve zbylych radcich neni zadna duplicita, neni, co by zde uvedeny prikaz mel udelat (a tedy neudela nic).
Jak uz jsem psal, pokud hledate duplicity, musely by existovat radky, ktere budou mit totozne hodnoty ve vsech trech sledovanych sloupcich!

Musel jsem pouzit krome maticoveho souctu i funkci POSUN, ale myslim, ze je to k pochopeni 1

Otazka je, jestli zmineny kod nedela, co ma, nebo nekdo nevytvoril spravny kod - ja bych se proklonil k te druhe variante.

.RemoveDuplicates totiz s vice zadanymi sloupci pracuje tak, ze za duplicity bere pouzy ty radky, ktere obsahuji ve vsech sledovanych sloupcich stejne hodnoty, jako jiny radek.

Ve tomto pripade se na duplicity sleduji sloupce A,B,C.
Jelikoz ve sloupci B jsou same unikatni hodnoty, nemuze nikdy dojit k duplicite v columns:=array(1,2,3)

Otazkou tedy zustava - co ma byt cil...?

Doporucil bych vlozit prilohu, aby bylo videt, jak data vypadaji.
Bez hlubsi znalosti dat bych rekl, ze muzete pouzit bud funkci SUMIFS (vyssi verze excelu) nebo maticovy vzorec.Na wall.cz existuje par clanku, ktere maticove vzorce popisuji:
http://wall.cz/excel-navod/maticove-vzorce-i

Je to typicky priklad pro funkci SVYHLEDAT - vzorec jsem vlozil do sloupce E a podbarvil sedou, aby to bylo videt.

Tezko jednoznacne rici, protoze jsi nebyl moc konkretni a neprilozil zadny soubor, ktery by to vice objasnil, ale predpokladal bych, ze by to melo jit (samozrejme zalezi na spouste veci, ktere momentalne nejsou zname).

V novejsich verzich Excelu (2007 a výše) existuje funkcionalita 'Odebrat duplicity'.

Mozna to chapu ale, kdyz chcete:
1) v 0:11 prepocitat sesit
2) v 0:12 ulozit a zavrit

Proč nemít jen jedno makro, ktere se zapne v 0:11, prepocita sesit a potom ulozi a zavre.

Neni potreba menit nastaveni na automaticky prepocet, staci jen donutit excel prepocitat sesit, napr. takto:
Application.CalculateFull

Tady to je, aby byly postihnuty vsechny moznosti, tak kdyz A=B, bude list bez barvy.

Podminkou je, aby na vsech listech byly bunky se sejnou adresou (B2 a B3), ale to je asi jasne i z prilohy, kterou jsi prilozil.

Musim pochvalit, za jasne zadani - takovych tady moc neni 1

Jak se tak divam na ten screenshot, rekl bych, ze nejlepsi by bylo do toho stejneho formulare, ktery pouzivate na vlozeni dat, pridat dalsi prvek (napr. Label) a do toho labelu vlozit text "vloženo" a za chvili ho opet smazat.

Pokud by se tento label jmeno napr. 'lblZPRAVA', vlozil bych na konec procedury, ktera vklada data toto:

lblZPRAVA.caption = "vloženo"
Application.Wait (Now + TimeValue("0:00:01"))
lblZPRAVA.caption = ""

Nezkoumal jsem detaily, jen jsem zkusil napsat kod, ktery resi zprvu pozadovane:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Path As String, s As String

'první část odkazu
Path = "http://08.15.40.22:0603/tralala/get_doc.pl?doc_id="

If Not Intersect(Target, Range("H7:H30")) Is Nothing And Target.Count = 1 Then
If IsNumeric(Target) And Len(Target) > 0 Then
'druhá část odkazu
s = Left(Target, Len(Target) - 2)

'otevrit odkaz
ActiveWorkbook.FollowHyperlink Path & s
End If
End If
End Sub


Tento kod je nutne vlozit do modulu listu, kde ma byt ona oblast...

UserForm neni nic tezkeho, ve VBE (Insert/UserForm), vlozte na nej prvky, ktere potrebujete - pokud to ma byt jen informacni okno, tak postaci Label nebo TextBox.

Aby slo nadale pracovat se spustenym formularem, musi byt spusteny jako modeless,
Tedy nejak takto:
UserForm1.show False
Samozrejme musite zajistit, aby vam zobrazoval informace, ktere potrebujete - to ale z dotazu nejsem schopen odhadnout.


Strana:  1 2 3 4 5 6 7 8 9   další » ... 84

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

Podmínka pro spuštění makra

MilanKop • 18.3. 18:51

Podmínka pro spuštění makra

Stalker • 18.3. 18:34

duplicity

fortes • 18.3. 17:48

Podmínka pro spuštění makra

MilanKop • 18.3. 17:31

spojení vzorců v PQ

elninoslov • 18.3. 15:13

spojení vzorců v PQ

Majki • 18.3. 14:15

Automaticka zmena obsahu bunky podla datumu

elninoslov • 17.3. 12:14