16. februar 2004 - 22:09Der er
9 kommentarer og 1 løsning
Sum (relativ reference) i makro
Jeg er ny bruger her,men har virkelig brug for en god ide. Jeg har en Excel tabel med ca. 1000 rækker sorteret på 25 kunder. Med en Do..Loop makro har jeg adskilt kunderne med 2 blanke rækker og indsat sideskift under dem. På 1. blanke række skal jeg have sammentalt kunde-total i kollonne H. Næste gang jeg kører makroen er både kunde-og rækkeantal ændret. Jeg skal altså bruge formlen =Sum(relativ ref:relativ ref) Hjælp Viola
Her er Loop..delen, resten er indspillet makro. Det er vel oplagt, om sammentælling kan ske under Loop..gennemkørslen.
Sub Do_Loop_Linier()
Set Nummer = ActiveCell Do While ActiveCell = Nummer ActiveCell.Offset(1, 0).Select Loop ActiveCell.Range("A1:K1").Select Selection.Insert Shift:=xlDown Selection.Insert Shift:=xlDown ActiveCell.Offset(2, 0).Select If ActiveCell > 0 Then Do_Loop_Linier Else: Application.ScreenUpdating = True Application.Dialogs(xlDialogSaveAs).Show
Set Nummer = ActiveCell rk = ActiveCell.Row ' NY Do While ActiveCell = Nummer ActiveCell.Offset(1, 0).Select Loop ActiveCell.Range("A1:K1").Select nrk = ActiveCell.Row ' NY Selection.Insert Shift:=xlDown Selection.Insert Shift:=xlDown
'Sum i A kolonnen lav den om til den kolonne hvor det skal være.
Det kalder jeg godt gjort. Det virker perfekt. Tak for hjælpen. Men jeg har fået et andet problem. Hvordan godskriver jeg dig svaret, og afleverer points?
Dette er næsten hele dit forslag. Hele makroen fylder så meget, at den ikke kommer med her. Resten er indspillet tekstimport, slette ikke anvendte kollonner, PageSetup, og dataformatering. Tak for hjælpen, jeg vil gerne have dig i tankerne, når næste problem opstår. Hilsen
Sub Do_Loop_Linier()
Set Nummer = ActiveCell rk = ActiveCell.Row Do While ActiveCell = Nummer ActiveCell.Offset(1, 0).Select Loop ActiveCell.Range("A1:K1").Select nrk = ActiveCell.Row Selection.Insert Shift:=xlDown Selection.Insert Shift:=xlDown Range("G" & ActiveCell.Row).FormulaR1C1 = "=SUM(R[-" & nrk - rk & "]C:R[-1]C)" ActiveCell.Offset(2, 0).Select ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell If ActiveCell > 0 Then Do_Loop_Linier Else: ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Application.ScreenUpdating = True Application.Dialogs(xlDialogSaveAs).Show End If
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.