Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  118 119 120 121 122 123 124 125 126   další » ... 140

@Palooo
vychadzal som zo zadania kde bolo napisane ze stlpce su vyznacene slovami PRAVDA a NEPRAVDA ... takze musi to byt slovne

Takže to nemusí být slovně ;) - PRAVDA je prostě true a NEPRAVDA je false ;)

Ale není to nic hrozného - jen je to zbytečné ťukání do klávesnice

Abych jen nekritizoval, tak v opičákově příloze takto
s tím, že NEPRAVDA jsem vymazal

Sub Makro2()
Dim rToCopy As Range
Set rToCopy = Rows(1).SpecialCells(xlCellTypeConstants).EntireColumn

Dim rRowsToCopy As Range
Set rRowsToCopy = Range("2:6")

Set rToCopy = Intersect(rToCopy, rRowsToCopy)
rToCopy.Copy Sheets("List2").Cells(1)

Set rToCopy = Nothing
Set rRowsToCopy = Nothing
End Sub


Takže jsem schopen to zkopírovat jediným řádkem:
Intersect(Rows(1).SpecialCells(xlCellTypeConstants).EntireColumn, Range("2:6")).Copy Sheets("List2").Cells(1)

Pokud můžu

@Opičák
Vždycky mě překvapíte ;)
Na jednu stranu jste schpen vymyslet pěkné věci a pak napíšete toto:

Sheets("List1").Select
Range(Cells(odRadku, colx), Cells(doRadku, colx)).Select
Selection.Copy
Sheets("List2").Select
Cells(1, n + Cells(1, Columns.Count).End(xlToLeft).Column).Select
ActiveSheet.Paste


Totéž Palooo
If Sheets("Table").Cells(1, x).Value = "PRAVDA" Then
tady přece stačí
If Sheets("Table").Cells(1, x).Value Then
funkčně to je sice správně - ale PRAVDA je přece hodnota typu Boolean

nebo místo For x se nabízí Foreach

@Opičák, @Palooo
Základem rychlého řešení je co nejméně přístupu na sešit
Tzn, načtěte oblast do proměnné typu Range a pak ji vložte jediným krokem
Když už to teda musíte řešit cyklem ;)

Omlouvám se, není to kritika, jen k zamyšlení...

Smažte hodnoty NEPRAVDA (Ctrl+H)a označujte pouze sloupce ke kopírování (PRAVDA)

Pak lze použít -
.SpecialCells(xlConstants).EntireColumn.Copy

Pak je kód velmi rychlý

Palooo napsal/a:

to eLCHa: tiez som za kazde ulahcenie ale niesom za to aby z casovej jednotky si robil ciselnu 100vkovu jednotku .... radsej by som si spravil Event change kde pri 3 cifre doplni rovno dvojbodku (len pri urcitych bunkach)

... tymto sposobom pracuje v chaose


Mno - můžeme tady diskutovat, jestli to dělat nebo nedělat, ale když nevíme, co se dělá...

Já ve své práci někdy manuálně zadávám spoustu čísel - číselnou klávesnici ovládám poslepu a tak přechod na 2tečku by zdržoval - a toto řešení není až tak špatné, protože není problém je převést na čas.

Už jsem se naučil, že nejlepší řešení je vždy to nejjednodušší a je někdy zbytečné řešit situace, které by mohly nastat (zvlášť když předpokládám, že nenastanou)
makra až jako poslední možnost.

Takže chaos může nastat a nemusí - ještě jednou - nevíme, co se dělá ;)

edit
i některá vaše řešení lze řešit jinak - nicméně pokud to dělá to co se od toho očekává, tak je to v pořádku

Nezkoumal jsem vaše řešení, ale podle mne je nejlepší s výsledkem již počítat jako s časem

=ČAS(USEKNOUT(A1/100);MOD(A1;100);0)+ČAS(USEKNOUT(B1/100);MOD(B1;100);0)

Výsledek bude číslo naformátované "0:00" a dále se s ním takto může pracovat

@kalifac
Částečně s vámi souhlasím - taky vždy hledám řešení, kdy každý click (stisk) znamená obrovskou úsporu ;))

Nenechte se přemluvit k žádným makrům ;)) . Kolegové k nim mají někdy tendenci přistupovat. V tomto případě jsou zbytečná.
Přesto má váš způsob jedno nebezpečí a to, že nemáte kontrolu chybného zadání (jako ošetříte zadání 270). A ve chvíli, kdybyste měl toto ošetření vytvářet je lepší přejít k ručnímu zadání 2tečky.

marjankaj napsal/a:

...Urobil som iba to, čo žiqadal...

Čo také si predstavujete pod pojmom žiqadal ;)))

mám makro

to se máte, že ho máte. Ale tím, že ho máte jen vy, jak ho my máme upravit?

Jen dodám, že až na výjimky nemusíte buňku vybírat, abyste s ní mohl něco dělat. Takže v tomto případě se dokonce obejdete bez proměnných. Navíc při kliku na tlačítko neuvidíte skákání kurzoru, takže to vypadá i lépe a hlavně je to rychlejší (v tomto případě neznatelně) a kratší.

Mělo by fungovat:
Private Sub CommandButton1_Click()
With Range(ActiveCell.Offset(0, 27).Value)
.Value = DateSerial(Year(.Value) + 1, Month(.Value), Day(.Value))
End With
End Sub

Mno, pro vás bude asi nejjednodušší si to prostě spočítat ve vedlejší buňce a pak
With ActiveCell.Offset(0, 1)

Pokud byste chtěl přímo výpočet ve VBA, tak to je sada Application.Worksheetfunctions

ale doporučuji výpočet v listu

Aha - mno pak je třeba požít výsledek funkce odkaz
a místo
With ActiveCell

dát

With Range(výsledek fce odkaz)

zkuste něco takového

Sub Button_Click()
With ActiveCell
.Value = DateSerial(Year(.Value) + 1, Month(.Value), Day(.Value))
End With 'ActiveCell
End Sub

mountDoom napsal/a:

Jen nechápu jak funguje POSUN($A$3;C3=C2)*(D2);0)


(C3=C2) dává hodnoty PRAVDA (=1) nebo NEPRAVDA (=0)

(C3=C2) je totéž jako KDYŽ(C3=C2;1;0)
tedy
(C3=C2)*D2 je totéž jako KDYŽ(C3=C2;D2;0)

používám i ve VBA, tam je ale třeba dát pozor
true = -1

Třeba
=POZVYHLEDAT(C3;POSUN($A$3;(C3=C2)*(D2);0):$A$15;0)+(C3=C2)*(D2)

Mno buď jsem slepý, nebo na tom obrázku nic "neblbne"

nevíme ale jak počítáte to číslo týdne. pokud ho počítáte z datumu (WEEKNUM), taxe není co divit.
zjednodušeně: budete muset přičíst počet týdnů v roce 2013

ale bez přílohy...

Příloha by nejlépe vysvětlila toto:
když je v něm více stejných datumů, které ale nejsou u sebe, tak zbytek nefunguje jak má.

jinak fce POZVYHLEDAT


Strana:  1 ... « předchozí  118 119 120 121 122 123 124 125 126   další » ... 140

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

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.

On-line nástroje