< návrat zpět
MS Excel
Téma: Kopírovat vzorec podle počtu řádků
Zaslal/a Merlin99 18.10.2017 16:43
Zdravím všechny,
nevedel by nekdo jak udelat to aby se vzorec v makru nekopíroval natvrdo do C5:C11 ale aby místo C11 bylo něco co by hledalo ve sloupci B poslední hodnotu a tento řádek dosadilo? Děkuji moc za jakekoli rady. Viz příloha
Sub POKUS1()
Range("C5").Select
ActiveCell.FormulaR1C1 = "=SUMIFS(DATA!C[-1],DATA!C[-2],VYPOČET!RC[-1])"
Range("C5").Select
Selection.AutoFill Destination:=Range("C5:C11")
Range("C5:C11").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
End Sub
Jeza.m(18.10.2017 17:22)#038055 Třeba
následujícím dosazením...
Range("C5:C" & Application.WorksheetFunction.CountA(Range("B:B")))
citovat
Merlin99(18.10.2017 19:33)#038056 Jeza.m . díky moc za pomoc jen mi tva funkce po dosazeni za tyto dva RANGE vraci chybu...(invalid use of properity)..
citovat
Stalker(18.10.2017 22:46)#038063 ?
Sub POKUS1()
Dim MaxB As Long
Dim Oblast As Range
MaxB = Cells(Rows.Count, 2).End(xlUp).Row
Set Oblast = Range("C5:C" & MaxB)
Range("C5").FormulaR1C1 = "=SUMIFS(DATA!C[-1],DATA!C[-2],VYPOČET!RC[-1])"
Range("C5").AutoFill Destination:=Oblast
Oblast.Copy
Oblast.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
Set Oblast = Nothing
End Sub
citovat
Merlin99(18.10.2017 22:54)#038064
Merlin99(18.10.2017 22:56)#038065 Stalker děkuji moc .. ale mě ty vase programy nefungujou jdu si stim hrat a zjistovat co delam spatne ..
citovat
Stalker(18.10.2017 23:19)#038066 Co přesně je špatně?
Nebude zádrhel někde kolem vkládání vzorce?
Zkoušel jsi prosté .Formula místo .FormulaR1C1?
citovat
elninoslov(19.10.2017 8:04)#038067 Iný pr.:
Sub Vypln()
With ThisWorkbook.Worksheets("VYPOČET")
With .Cells(5, 3).Resize(.Cells(Rows.Count, 2).End(xlUp).Row - 4)
.FormulaR1C1 = "=SUMIFS(DATA!C[-1],DATA!C[-2],RC[-1])"
.Value = .Value
End With
End With
End Sub
príp.:
Sub Vypln2()
With ThisWorkbook.Worksheets("VYPOČET")
With .Cells(5, 3).Resize(.Cells(Rows.Count, 2).End(xlUp).Row - 4)
.Value = Evaluate("=IFERROR(SUMIFS(DATA!$B:$B,DATA!$A:$A,$B5:$B" & .Rows.Count + 4 & "),"""")")
End With
End With
End Sub
Bodla by príloha.
citovat
Merlin99(19.10.2017 9:54)#038070 Děkuji za příklady jdu to otestovat.Jinak za přílohu se omlouvám měl jsem zato že jsem ji vložil ale asi ne tak prikládam.
Ve výsledku me de o to co nejmene zasahnout do meho (nahraneho MACRA) abych mohl vzdy pouzit nahravani a pak upravit na dynamiku poctu radku to by bylo TOP.
Děkuji moc
citovat
Merlin99(19.10.2017 9:56)#038071 *tak priloha opet nelze pridat...(vlozim ji ale pak se nezobrazi (ma 85kb)..
citovat
marjankaj(19.10.2017 10:59)#038073 Merlin99 napsal/a:
*tak priloha opet nelze pridat...(vlozim ji ale pak se nezobrazi (ma 85kb)..
A čo tak ju zazipovať?
citovat