Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  3 4 5 6 7 8 9 10 11   další » ... 16

Zkusím vytvořit obdobu souborů.

Ano, jedná se o souvislou oblast dat, nejsou přerušena prázdnými řádky ani sloupci.

ScreenUpdating mám prozatím v originálu zakomentovaný, funkce pro uložení prozatím obsahuje i ladící procedury (proto její volání),

Ano, zapisování hodnot lze v některých případech ukládat v poli, ve většině však ne - nejsou souvislé oblasti.

Proměnné jsou definovány, jen sem do ukázky nebyly definice vloženy.

Zdravím,
potřeboval bych nasměrovat, jak zrychlit zpracování makra. Bohužel nemohu uvést konkrétní příklad.

Sešit1 obsahuje zdrojové hodnoty
Sešit2 obsahuje doplňkové hodnoty

Funkcí SVYHLEDAT byly doposud ručně dotahovány data do sešitu1 do desítek sloupců ze sešitu2 (nepohodlné).


i = 2
While Cells(i, "B") <> Empty
row = Najdi_Data(wrkb_1, Cells(i, "B"))

If row = Empty Then
value = "#NENÍ_K_DISPOZICI"
Call Uloz_Data(i, "D", value)
Call Uloz_Data(i, "E", value)
Call Uloz_Data(i, "F", value)
Call Uloz_Data(i, "G", value)
Call Uloz_Data(i, "S", value)
Else
Call Uloz_Data(i, "D", Workbooks(wrkb_1).Worksheets("List1").Cells(row, "D"))
Call Uloz_Data(i, "E", Workbooks(wrkb_1).Worksheets("List1").Cells(row, "E"))
Call Uloz_Data(i, "F", Workbooks(wrkb_1).Worksheets("List1").Cells(row, "B"))
Call Uloz_Data(i, "G", Workbooks(wrkb_1).Worksheets("List1").Cells(row, "C"))
Call Uloz_Data(i, "S", Workbooks(wrkb_1).Worksheets("List1").Cells(row, "F"))

End If

i = i + 1
Wend

Private Sub Uloz_Data(row, col, value)
Cells(row, col) = value
End Sub

Private Function Najdi_Data(filename, value)
wrkb_act = ActiveWorkbook.Name

If Not Intersect(Cells(2, 2), Range("B:B")) Is Nothing Then
With Workbooks(filename).Worksheets("List1")
Set Nalezeno = .Cells.Find(what:=value, after:=Cells(2, 2), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
End With
If Not Nalezeno Is Nothing Then Application.Goto Nalezeno, True
End If

If Not Nalezeno Is Nothing Then
Najdi_Data = Nalezeno.row
End If

Workbooks(wrkb_act).Activate

End Function


Při stovkách řádků lze použít, ovšem při tisících řádků je již časově náročné.
Jak lze optimalizovat a zrychlit toto makro?

Děkuji za rady.

Asi jste nečetl odkazy, které jsem uvedl, že?
Stačí si upravit funkci pro Vaše potřeby.

Obdoba již zde byla řešena.
Požadavek na součet a počet nekladných čísel a pak i kladných >0.

http://wall.cz/index.php?m=topic&id=28314
http://wall.cz/index.php?m=topic&id=27787

P.S.
To, že má někdo titul před jménem a třeba i za jménem ještě neznamená, že dokáže logicky uvažovat.
Navíc škola před blbostí nechrání.
5 5 5

PŘEZ pomocnou tabulku
je správně
PŘES pomocnou tabulku (neboli pomocí pomocné tabulky) 6
Ještě, že je ten češtin tak ohebný.

Osobně spíše tipuji, že kopírujete funkci z řádku.
Pokud by jste kopíroval buňku se vzorcem, "přepočet" vzorce by se provedl automaticky, pokud je relativně odkazováno.

Průzkumník je na to moc složitý?
Také můžete použít jiný vhodný souborový manažer, buď free nebo placený.

Nějak mi nedocházejí souvislosti, proč mazat obrázky z disku pomocí Excelu. 5 6 6

A to nepomohl ani Google???

i s příkladem
oficiální podpora MS

Pokud ani tohle nepomůže, tak už asi nic...

Např. pomocí pomocného sloupce, nebo makrem.

Co to je rozsah buněk? Je to jeden sloupec, dva a více sloupců?

Škoda, že takovíto tazatelé NIKDY nevloží přílohu s požadavkem a ukázkou toho co chtějí...

To ze zoufalství ... Po reakcích zadavatele a jeho "přesnému" zadání to pro něj snad bude k něčemu, když neví jak to zapsat. 5 5

Pro mne by to nebylo řešením... 7

Tak jste to zjednodušil...
Ze zadání je jasné pouze oblast kopírování (ta se předpokládám může měnit) a to, že se má sloupec A zkopírovat do sloupce A a sloupec B se má zkopírovat do sloupce F.
Asi jste nečetl příspěvek Vovky, že?
Pokud je jedno co se zbylými 4 sloupci výběru, pak si opravdu spusťte makro a kopírujte sloupec po sloupci, makro vypněte a podívejte se na výsledek.

Tam budete v první řadě vědět jak to máte zapsat.
Doufám, že je to dostatečně jasné.

Ono by stačilo, kdyby zadavatel reagoval na doplňující dotazy a ne v každém novém příspěvku měnil požadavky oproti původnímu zadání.

Nejprve chce aby se přehodily sloupce,
pak chce aby se přehodily bez kopírování,
pak chce aby se vybraná oblast kopírovala od A1 - tedy tomu rozumím tak, že se vše kopíruje tak jak je bez jakékoliv změny.

Prostě a jednoduše nevím co vlastně zadavatel požaduje. 9

Honza123456 napsal/a:

... Co je myšleno "způsobem změny v uspořádání sloupců?" ...

Tím je myšleno např. toto:
Zkopírovaná oblast A:D
Změna na D:A tedy původní sloupec A bude na místě D, B na C, C na B a D na A. Tedy opačné pořadí.
Nebo jakákoliv Vaše jiná varianta.

@marjankaj:
to si myslím, že problém nevyřeší.

Když se Vám to podařilo, proč zde není příloha jak se to podařilo?
Jenže by jste potřeboval co? Přehodit sloupce jak, kolik, v jakém pořadí, případně jakým pravidlem je přehazovat, ...

Určitě Vám může někdo poradit, ale musí vědět co poradit...

Pak jste změnil přílohu.

Ve funkci použijte buňku Gx jako textovou hodnotu:
CONCANTENATE(), HODNOTA.NA.TEXT() nebo PROČISTIT() - lokalizovaná verze funkcí.
Sloupec Cx totiž převádíte do textového formátu funkcí PROČISTIT(Bx).

Nesprávné použité argumenty funkce.

Pozorně si přečtěte popis k funkci ($B$4:$D$5 je špatně) a také nezapomeňte, že v některých případech převádíte číslo na text. Tedy ve sloupci G musíte mít textové hodnoty.


Strana:  1 ... « předchozí  3 4 5 6 7 8 9 10 11   další » ... 16

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

Řazení podle času v kategoriích

veny • 16.7. 11:34

špatný výpočet ze zisku - příčina?

Anonym • 12.7. 22:56

špatný výpočet ze zisku - příčina?

Jakoby • 12.7. 12:35

Řazení podle času v kategoriích

Marekh • 12.7. 9:55

Porovnávací Tabulka

Jess • 8.7. 20:49

Vzorec pro zkopírování obsahu buňky.

veny • 6.7. 8:28

Vzorec pro zkopírování obsahu buňky.

Tonda_Hu • 5.7. 21:17