@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
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...
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)
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
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.