Avatar billede familienriis Nybegynder
17. februar 2008 - 16:35 Der er 7 kommentarer og
1 løsning

indsætte 23 linier midt i et ark

Jeg har et ark hvor hver side har 23 linier.
Kolonne A er tekst
Kolonne D og E er tal.
Kolonne D og E ser sådan ud:

Linie 1-22 er tomme
Linie 23 er en sammentælling af linie 1-23

Det samme mønster fortsætter på næste side.
Linie 24-45 er tomme.
Linie 46 er en sammentølling af linierne 24-45 + linie 23, så man får summen med fra forrige side.


Kunne de lade sig gøre at få en makro der sætter en side ind incl. ovenstående sammentællinger i kolonne D og E
Den skal ikke sætte siden ind nederst på siden. Men istedet sætte de 23 linier ind mellem 2 eksisterende sider.

Øverste linie i kolonne A på hver side er ALTID "FED".
JEg har efterspurgt noget lignende før i nedenstående spørgsmål, men jeg kan ikke selv finde ud af at tilrette svaret til dette spørgsmål.

http://www.eksperten.dk/spm/811682
Avatar billede familienriis Nybegynder
17. februar 2008 - 18:56 #1
det kan godt være at min forklaring er lidt dårlig.
Jeg sneder gerne et ark, som kan vise præcis hvad jeg mener.
Avatar billede excelent Ekspert
17. februar 2008 - 19:49 #2
Koden indsætter 23 linier over den side hvor markør er

Sub test()

ActiveCell.Offset(-ActiveCell.Row Mod 23 + 1, 0).Resize(23, 1).EntireRow.Insert
ActiveCell.Offset(23 - ActiveCell.Row Mod 23, 0).Select
x = Range(Cells(ActiveCell.Row - 22, "D"), Cells(ActiveCell.Row - 1, "D")).Address
Cells(ActiveCell.Row, "D").Formula = "=Sum(" & x & ")"
x = Range(Cells(ActiveCell.Row - 22, "E"), Cells(ActiveCell.Row - 1, "E")).Address
Cells(ActiveCell.Row, "E").Formula = "=Sum(" & x & ")"

End Sub
Avatar billede familienriis Nybegynder
17. februar 2008 - 21:20 #3
Den gør det næsten rigtigt.
Den sætter godt nok den nye side og indsætter også en forml/sum.

Men det går galt med netop formlen, på de efterfølgende sider.
Når den nye side er blevet indsat dækker sammentællignen på siden nedenfor pludselig 46 linier / 2 sider.

Hvis indsættelsen af de 23 linier sker manuelt, skyder /ændres formlen automatisk, men det gør den ikke her. Jeg kan ikke helt gennemskue hvor det går galt.

Jeg kunne godt tænke mig nogle små ekstra ting, som makroen skal gøre, hvis det kan lade sig gøre.

1.
Sammentællingen i kol D og E må meget gerne have en streg OVER og UNDER sig.

2.
Den linie som har sammentællingen skal gerne have teksten "TOTAL" i Kolonne B

3.
De 3 første linier der indsat må meget gerne være 12,00 høj. De resterende skal være 30 høj.

4.
Den første linie der er blevet indsat skal gerne have kopieret indhold fra A1 i kolonne A
Den anden linie der er blevet indsat skal gerne have kopieret indhold fra A2 i kolonne A
Den tredje linie der er blevet indsat skal gerne have kopieret indhold fra A3 i kolonne A
Avatar billede excelent Ekspert
17. februar 2008 - 21:34 #4
fungerer fint her, prøv lige igen
Avatar billede familienriis Nybegynder
17. februar 2008 - 21:39 #5
Debn laver fejkl hos mig.
Hvis du feks kører makroen 3 gange og derefter stiller ved den øverste sammentælling og kører makroen igen, så går det galt hos mig.

Jeg får ingen fejlmeddelelse, men det går galt i en af formlerne/siderne nedenfor - vist nok i siden lige efter.
De andre virker godt nok.
Avatar billede familienriis Nybegynder
18. februar 2008 - 12:21 #6
Har lige testet den på en anden maskine.
Nu virker det.
Jeg kører excel 2007, eneste forskel er at jeg har sp1 på den der virker og ingen sp på den der laver fejl.
Så det må en fejl i office 2007.

Hvis du har et svar har jeg point.

Jeg vil lige høre om det er muligt at få nogle af de ovenstående punkter med i koden :-)
Uanset svar, så tak for hjælpen
Avatar billede excelent Ekspert
18. februar 2008 - 17:08 #7
Så er spørgsmål vist besvaret og lidt til :-)

Sub test()

ActiveCell.Offset(-ActiveCell.Row Mod 23 + 1, 0).Resize(23, 1).EntireRow.Insert
ActiveCell.Offset(23 - ActiveCell.Row Mod 23, 0).Select
x = Range(Cells(ActiveCell.Row - 22, "D"), Cells(ActiveCell.Row - 1, "D")).Address
Cells(ActiveCell.Row, "D").Formula = "=Sum(" & x & ")"
x = Range(Cells(ActiveCell.Row - 22, "E"), Cells(ActiveCell.Row - 1, "E")).Address
Cells(ActiveCell.Row, "E").Formula = "=Sum(" & x & ")"

x = ActiveCell.Row
Cells(x, 2) = "Total"
Cells(x - 22, 1) = Cells(1, 1)
Cells(x - 21, 1) = Cells(2, 1)
Cells(x - 20, 1) = Cells(3, 1)

Range("A" & x - 22 & ":A" & x - 20).RowHeight = 12
Range("A" & x - 19 & ":A" & x).RowHeight = 30

End Sub
Avatar billede familienriis Nybegynder
18. februar 2008 - 20:21 #8
Mange tak det virker super.

Jeg har slev forsøgt at rode med at få en streg over og under kolonne D+E i den linie der har formlen / sammentællingen

Jeg har forsøgt mig med nedenstående kode, men det går desværre galt. Kan jeg få hjælp til det sidste også?

Sub test()

ActiveCell.Offset(-ActiveCell.Row Mod 23 + 1, 0).Resize(23, 1).EntireRow.Insert
ActiveCell.Offset(23 - ActiveCell.Row Mod 23, 0).Select
x = Range(Cells(ActiveCell.Row - 22, "D"), Cells(ActiveCell.Row - 1, "D")).Address
Cells(ActiveCell.Row, "D").Formula = "=Sum(" & x & ")"
x = Range(Cells(ActiveCell.Row - 22, "E"), Cells(ActiveCell.Row - 1, "E")).Address
Cells(ActiveCell.Row, "E").Formula = "=Sum(" & x & ")"

   
    Range(Cells(ActiveCell.Row - 22, "D"), Cells(ActiveCell.Row - 1, "D")).Select
    With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With Selection.Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
    Range(Cells(ActiveCell.Row - 22, "E"), Cells(ActiveCell.Row - 1, "E ")).Select
    With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With Selection.Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
    x = ActiveCell.Row
     
    Cells(x, 2) = "Total"
    Cells(x, 2).Font.Bold = True
    Cells(x - 22, 1) = Cells(1, 1)
    Cells(x - 21, 1) = Cells(2, 1)
    Cells(x - 20, 1) = Cells(3, 1)
   
    Range("A" & x - 22 & ":A" & x - 20).RowHeight = 13
    Range("A" & x - 22 & ":A" & x - 20).Font.Bold = True
    Range("A" & x - 19 & ":A" & x).RowHeight = 30
   
    End Sub
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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