< návrat zpět

MS Excel


Téma: Vložení řádku buňky do Makra jako proměnné rss

Zaslal/a 21.1.2014 23:55

Zdravím a prosím o pomoc. Jsem na VBA programování laik a potřebná makra si vytvářím jejich nahráním, případně něco opíšu z různých vzorů.
Nahrál jsem si toto makro:
Sub Makro2()
'
' Makro2 Makro
Range("B5:J5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("B6").Select
ActiveSheet.Paste
Range("B5:J5").Select
Selection.ClearContents
Range("E6").Select
Selection.Copy
Range("E5").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("B5").Select
End Sub
Funkce makra je jednoduchá. Vyberu od počáteční buňky (zde B5) řádek s 8 sloupci (až po J5) a pak oblast buněk až na konec oblasti s daty. Pak tuto oblast kopíruji o řádek níže (zde B6) a nakonec ten první řádek (B5:J5) vymažu a aktivuji buňku B5. Jinými slovy vkládám do oblasti dat prázdný řádek, ale nechci použít funkci vložení řádku, protože vpravo od vybrané oblasti jsou vzorce pro práci s daty, a ty bych vložením celého řádku musel obnovit. V mém Makru obnovuji jen jeden vzorec z E6 do E5 ve vymazaném řádku (vzorec má tvar =E5+C6+D6).

Potřeboval bych si před spuštěním makra vybrat libovolnou buňku v datovém sloupci B. Při spuštění makra celé makro proběhne stejně, jen začne na řádku vybrané buňky místo stávající pevné buňky B5. Takže řádky 5 a 6 v příkladu musí být nahrazeny proměnnou odvozenou od předem vybrané aktivní buňky.

Při "mém starším věku" již nemám sílu studovat všechna kouzla VBA a proto prosím o pomoc. Pokud by toto Makro z EXCEL někdo dokázal přepsat ještě také pro OpenOffice Calc, budu vděčen dvojnásobně.

Zaslat odpověď >

#017401
avatar
Neviem, či som to dobre pochopil. Skús toto.

Sub Makro1()
Dim oblast As Range
Set oblast = Range(Selection, Selection.Offset(0, 8))
Range(oblast, oblast.End(xlDown)).Copy oblast.Offset(1, 0)
With Selection
Range(.Offset(0, 0), .Offset(0, 2)).ClearContents
Range(.Offset(0, 4), .Offset(0, 8)).ClearContents
End With
Set oblast = Nothing
End Subcitovat
#017402
avatar
Děkuji.
Pochopil jsi to naprosto přesně i s tím vylepšením, že místo obnovy vzorce mažeš řádek před a za vzorcem, což, pokud ten prázdný řádek vkládám ručně, tak dělám.
Geniálně jednoduché, jednoduše geniální, jen umět aktivně programovat ve Visual Basic. Funguje to naprosto přesně jak potřebuji.
Nyní to ještě přepsat do Makra v OpenOffice Calc. Tam lze mazat řádek selektivně tak, že se vzorce ponechají a mažou se jen data. Takže to mazání řádku je možno udělat najednou s ponecháním toho vzorečku.
PS: Asi si koupím nějakou příručku a ten VBA se začnu učit 1 , i když mi táhne na 70.citovat

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