< návrat zpět

MS Excel


Téma: Zápis vzorce v sousední buňce rss

Zaslal/a 24.2.2013 9:34

Dobrý den,
hledal jsem na youtube nějaké návody a narazil na tohle:
http://www.youtube.com/watch?v=i4lEPYd1o18
Ale nejde mi o funkci, která se tam probírá.
Autor videa běžně při vysvětlování docílí toho, že v jedné buňce se mu vypočítá vzorec a do sousední buňky se zkopíruje jeho zápis. Namátkou klikněte na 9:17 v linkovaném videu. Jde o nějakou klávesovou zkratku? Už hodinu se to snažím vygooglit a nic...
Snad bude někdo vědět tady...
Díky za radu.

Zaslat odpověď >

#011841
Stalker
Buď si na to napiš vlastní funkci, pak to bude automatické. Nebo prostě a jednoduše do vedlejší buňky napíšeš stejný vzorec a před rovnítko dáš apostrof
'=SUMA(A1:A5)citovat
#011842
Opičák
Něco obdobného ..
Lze využít vestavěnou funkci "okno kukátka", pokud ti jde o sledování nějakých buněk.citovat
icon #011850
avatar
Pred spustením kódu vyber (označ) bunky, u ktorých chceš vidieť vzorce, ktoré obsahujú, makro ich vypíše o 5 stĺpcov vpravo od pôvodných:

Sub POM()
Dim CELL As Range
For Each CELL In Selection.Cells
With CELL.Offset(0, 5) 'hodnota 5 urcuje posun o 5 stlpcov vpravo
.NumberFormat = "@"
.Value = CELL.FormulaLocal
End With
'uvedene najprv sformatuje bunku na text a nasledne do nej zapise vzorec
'miesto bloku With-End With by ako alternativa slo pouzit:
'With CELL
'.Offset(0, 5).Value = "'" & .FormulaLocal
'End With
'tj. to, co doporucoval Stalker pisat manualne
Next
End Sub
inak si myslím, že v tom videu to je urobené cez udalostné makro, do kódového okna ThisWorkbook je treba vložiť kód:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
With Target.Offset(-1, 1) 'hodnota offset urcuje posun o 1 stlpec vpravo a jeden riadok nahor
.NumberFormat = "@"
.Value = Target.Offset(-1, 0).FormulaLocal
End With
End Sub
Po zapísaní vzorca do bunky (napr. A3) a odentrovaní (pokiaľ máš nastavený posun po stisku enter smerom dolu), tak sa do bunky vedľa prepíše ten vzorec. Prípadne je ešte do kódu možný dopísať test na to, či Target predstavuje bunku z nejakej oblasti, aby to nerobilo psie kusy v celom zošite, ale zapisovalo vzorec iba pri zápise pôvodného vzorca v dopredu určenej oblasti.

To by potom vyzeralo nejako nasledovne (kontrola pre oblasť F3:F10 na Liste1, čiže len v prípade zápisu do bunky v uvedenej oblasti dojde k zápisu vzorca do bunky vedľa):

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim Isect As Range
On Error Resume Next 'osetruje pripad zapisu do 1.riadku v liste
Set Isect = Intersect(Target.Offset(-1, 0), Range("f3:f10"))
If (Sh.Name = "List1" And Not Isect Is Nothing) Then
With Target.Offset(-1, 1)
.NumberFormat = "@"
.Value = Target.Offset(-1, 0).FormulaLocal
End With
End If
End Sub
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