Avatar billede simon_iknow Nybegynder
09. august 2005 - 13:36 Der er 5 kommentarer og
2 løsninger

Makro til tilpasning og beregning

Jeg har en liste som vist nedenfor:

Person Timer KM
Anita    1    200
Anita    2    100
Anita    1    .
Jens    3    .
Jens    4    150
Poul    1    200
Poul    3    100
Poul    2    .

Det jeg ønsker er at makroen indsætter 2 linier efter hver person, dvs. så snart Anita ikke har flere timer så kommer der 2 tomme linier osv. (PS. antallet af registereringer pr. person er variabel)...

I den øverste af de 2 tomme linier skal der være nogle sum formler for hver variabel... her (timer og km)den anden skal forblive tom
Avatar billede sjap Praktikant
09. august 2005 - 14:38 #1
Prøv med

Sub IndsætLinie()

Old = "Start"
For Each c In Range("A2:A50")
    If Not Old = c.Value Then
        c.EntireRow.Insert Shift:=xlDown
    End If
    Old = c.Value
Next c

End Sub
Avatar billede sjap Praktikant
09. august 2005 - 14:51 #2
Havde lige overset, at der skulle være to tomme linier. Prøv med den her i stedet:

Sub IndsætLinie()

Old = "Start"
Line1 = False
For Each c In Range("A2:A50")
    If (Not Old = c.Value And Old <> "Start") Or Line1 Then
        c.EntireRow.Insert Shift:=xlDown
        If Line1 Then
            Line1 = False
        Else
            Line1 = True
        End If
    End If
    Old = c.Value
Next c

End Sub
Avatar billede simon_iknow Nybegynder
09. august 2005 - 15:17 #3
Det virker fint, en er dog kun mit ene problem. Jeg skal lave en sum for hver person derefter (i det første af de tomme felter) og det er jo et variabelt antal felter den skal lave en sum på, hvordan gør jeg det ?
Avatar billede simon_iknow Nybegynder
09. august 2005 - 15:18 #4
altså en sum på timer og kilometer
Avatar billede sjap Praktikant
09. august 2005 - 16:48 #5
Det var noget mere kringlet. Prøv med:

Sub IndsætLinie()

Old = "Start"
Line1 = False
StartSumRække = 2
For Each c In Range("A2:A50")
    If (Not Old = c.Value And Old <> "Start") Or Line1 Then
        c.EntireRow.Insert Shift:=xlDown
        If Line1 Then
            Cells(c.Row - 2, 2).Formula = "=SUM(B" & StartSumRække & ":B" & c.Row - 3 & ")"
            Cells(c.Row - 2, 3).Formula = "=SUM(C" & StartSumRække & ":C" & c.Row - 3 & ")"
            StartSumRække = c.Row
            Line1 = False
        Else
            Line1 = True
        End If
    End If
    Old = c.Value
Next c

End Sub
Avatar billede simon_iknow Nybegynder
10. august 2005 - 08:40 #6
tak skal du have.... virker helt fint
Avatar billede sjap Praktikant
10. august 2005 - 08:51 #7
;0)
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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