Just nu i M3-nätverket
Jump to content

Excelmakro summera


ulflindquist

Recommended Posts

ulflindquist

Jag tar ut en lista med varierande antal rader. Jag vill summera värdena i kolumn d-f, och summan skall komma tre rader nedanför sista posten, i varje kolumn. Jag lyckas ta mig dit med hjälp av förljande makro

 

Range("D1").Select

intSistarad = Cells(Rows.Count, 1).End(xlUp).Row

intSistarad = intSistarad + 3

 

Cells(intSistarad, "D").Select

ActiveCell.FormulaR1C1 = "=SUM(R[-17]C:R[-1]C)"

 

Problemet som uppkommer är att jag vill att den summerar från D6 till den sista posten, alltså är -17 felet, alltså där summeringen startar.

 

Frågan är alltså, hur får jag den att summera från en absolut punkt, D6, till en relativ dvs den sista posten.

 

Link to comment
Share on other sites

Oskar Hansson

Kanske inte bästa sättet, men du kan pröva med (utan R1C1):

ActiveCell.Formula = "=SUM(D6:D" & intSistarad & ")"

 

 

//Oskar

____________________________________________________

 

Simplify Life - Everything should be made as simple as possible

 

Link to comment
Share on other sites

och vanliga rådet - adressera INTE via ActiveCell. Stega INTE via Select.

 

Adressera direkt till celler och stega relativt dessa.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Link to comment
Share on other sites

ulflindquist

Jag fick ihop det.

Sub Summera()
'
' Detta makro summerar värden i kolumn d-f och lägger resultatet tre rader under sista värdet, oavsett antal värden
'Första värdet finns på rad 6 (i cell D6 för att vara exakt)i min lista. Fungerar kanon för mig.

  Range("D1").Select
   intSistarad = Cells(Rows.Count, 1).End(xlUp).Row
   intSistarad = intSistarad + 3

   Cells(intSistarad, "D").Select
ActiveCell.Formula = "=SUM(D6:D" & intSistarad - 1 & ")"

     Range("e1").Select
   intSistarad = Cells(Rows.Count, 1).End(xlUp).Row
   intSistarad = intSistarad + 3

   Cells(intSistarad, "e").Select
ActiveCell.Formula = "=SUM(e6:e" & intSistarad - 1 & ")"

   Range("f1").Select
   intSistarad = Cells(Rows.Count, 1).End(xlUp).Row
   intSistarad = intSistarad + 3

   Cells(intSistarad, "f").Select
ActiveCell.Formula = "=SUM(f6:f" & intSistarad - 1 & ")"

End Sub

 

Stort tack för hjälpen

 

 

[inlägget ändrat 2009-07-10 21:56:11 av Monshi]

Link to comment
Share on other sites

 

Fixar till ditt makro till vettig kod:

 

Sub Summera()
'
' Detta makro summerar värden i kolumn d-f och lägger resultatet tre rader under sista värdet, oavsett antal värden
'Första värdet finns på rad 6 (i cell D6 för att vara exakt)i min lista. Fungerar kanon för mig.

With Blad1
   intSistarad = .Cells(Rows.Count, 1).End(xlUp).Row
   .Cells( intSistarad + 3, "D").Formula = "=SUM(D6:D" & intSistarad +2 & ")"
   .Cells(intSistarad+3, "e").Formula = "=SUM(e6:e" & intSistarad +2 & ")"
   .Cells(iintSistarad+3, "f").Formula = "=SUM(f6:f" & intSistarad +2 & ")"
End With
End Sub

 

Samt tilldelningen av formeln kan man göra på detta enkla vis annars:

.Range(.Cells( intSistarad + 3, 4), .Cells( intSistarad + 3,6)).FormulaR1C1 = "=SUM(R6:R[-1])"

En enda rad

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...