Veď ja to nekopírujem po bunkách, ale po celých súvislých oblastiach.
Ak vyberiem celý stlpec, tak sa skopíruje celý stlpec, takisto ako u teba.
Ak si zvolím oblasti napríklad A4:A10 a A20:A30, tak cyklus prebehne iba dvakrát a skopíruje sa každá oblasť ako celok. Nie po jednotlivých bunkách.
Pridám aj ja niečo.
Ak treba kopírovať aj vzorce, tak toto treba vyhodiť
Paste:=xlPasteValues
Sub PresunDoC()
Dim oblast As Range
kam = InputBox("Do ktorého stlpca sa majú hodnoty skopírovať? A,B,C,...")
posun = Range(kam & ":" & kam).Column - Selection.Column
For Each oblast In Selection.Areas
oblast.Copy
oblast.Offset(0, posun).PasteSpecial Paste:=xlPasteValues
Next
Application.CutCopyMode = False
End Sub
Alfi, funguje to perfektne.
Ešte by som dodal, že tie kopírované bunky si treba odklikať so stlačeným CTRL.
No ak to bude chcieť kopírovať z iného stlpca alebo do iného stlpca, tak si bude musieť makierko upraviť, alebo tam vsunúť INPUTBOXy.
No aj bez tlačítka a makra je to jednoduché.
1. Klikneš na "A" nad prvým riadkom
2. Stlač CTRL+X
3. Klikni na C nad prvým riadkom
4. A daj ENTER.
Na takéto "operácie" vymýšľať makro a ešte aj tlačítko sa mi zdá veľmi prešpekulované.
No trochu som upravil riešenie od chey.
Môžeš prepínač meniť v hociktorom liste a prenesie sa do ostatných.
CRTL+X z bunky odkiaľ
CRTL+V(alebo aj ENTER) do bunky kam.
No nie vždy. Záleží asi od konfigurácie operačného systému a aj Office.
Mám tu Office 2010 pre podnikateľov, slovenská verzia, A Windows XP profesional, nastavená slovenská klávesnica.
A ide mi iba CTRL+SHIFT+H.
Skús CRTL+SHIFT+H
No mne to išlo vložiť hneď pri vytvorení funkcie v okne VBA.
Stlač F2 (View > object browser), klikni pravým tlačítkom na danú funkciu a vyber properties(vlastnosti) a popíš funkciu aj s parametrami. ALT+ENTER je nový riadok. A potom daj OK.
Potom by sa to malo zobrazovať aj v popise.
Tento postup neskôr mi už nefunguje, iba hneď pri vytvorení funkcie. Takže si treba najprv rozmyslieť, čo tam napíšeš.
Odskúšané na Excel 2010.
A ak má excel 2003, tak aj IFERROR hlási chybu.
Potom takto
=IF(ISERROR(VLOOKUP(C1;list2!A:G;7;0));"nenašli";VLOOKUP(C1;list2!A:G;7;0))
Keby tak priložil súbor, tak by sa mnohé vyriešilo.
Aj to, či má českú verziu excelu alebo inú.
Neviem čo chceš, ale nestačilo by toto?
=MAX(B2:B14)-B2
Alebo aj toto
=SUMPRODUCT((B3:B14-B2:B13)*((B3:B14-B2:B13)>0))
SUMPRODUCT=skalární.součin
Alebo
=SUMPRODUCT((oblast-OFFSET(oblast;-1;0))*((oblast-OFFSET(oblast;-1;0))>0))
kde oblast=B3:B14 je definovaný názov
OFFSET=Posun
=IFERROR(VLOOKUP(C1;list2!A:G;7;0);"nenašli")
No takto sa mi to podarilo upraviť.
Dúfam, že niekto nebude chcieť zase ruskú kalkulačku(SČOT) v exceli, lebo ma picne.
A takto nemôže byť?
Tak takto. Makro si uprav podľa tvojich potrieb.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.