Avatar billede boogjanne Nybegynder
16. februar 2004 - 22:09 Der 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
Avatar billede kabbak Professor
16. februar 2004 - 22:17 #1
Brug subtotaler:

Data> subtotaler.

NB. du skal have overskrifter
Avatar billede kabbak Professor
16. februar 2004 - 22:18 #2
du skal ikke have mellemrum imellem kunderne ved subtotaler, men dataerne skal være sorteret på kunde.
Avatar billede kabbak Professor
16. februar 2004 - 22:23 #3
må jeg forresten se din makro. ?
Avatar billede boogjanne Nybegynder
17. februar 2004 - 13:00 #4
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
   
End If
End Sub
Avatar billede kabbak Professor
17. februar 2004 - 14:31 #5
Sub Do_Loop_Linier()

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.

    Range("A" & ActiveCell.Row).FormulaR1C1 = "=SUM(R[-" & nrk - rk & "]C:R[-1]C)"

  ' du laver bare flere her imellem, hvis der er flere kolonner der skal regnes på

    ActiveCell.Offset(2, 0).Select
    If ActiveCell > 0 Then
    Do_Loop_Linier
    'Else: Application.ScreenUpdating = True
  ' Application.Dialogs(xlDialogSaveAs).Show
   
End If
End Sub
Avatar billede boogjanne Nybegynder
17. februar 2004 - 15:20 #6
Det ser spændende ud, jeg prøver hurtigst muligt.
Tak
Avatar billede boogjanne Nybegynder
17. februar 2004 - 16:01 #7
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?
Avatar billede kabbak Professor
17. februar 2004 - 16:51 #8
jeg skal lige svare først.

har du lavet makroen færdig, så vil jeg godt se den ?
Avatar billede boogjanne Nybegynder
17. februar 2004 - 22:42 #9
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

End sub
Avatar billede kabbak Professor
17. februar 2004 - 23:32 #10
tak for point. ;-))

du er velkommen tilbage en anden gang.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester