Avatar billede qln Juniormester
26. august 2011 - 13:28 Der er 6 kommentarer og
1 løsning

Opdater faneblad

Jeg vil gerne lave en makro, hvor jeg i et regneark samler en delmængde af data fra et master faneblad.
I master fanebladet er bygget op således:

Kolonne A(ID)  Kol. B(Antal X) Kol. C(Antal Y) Kol. D(Antal Z)
PBD1xxx        20                22          55
PBD1yyy        45                90          78
PBD2xxx        70                7            9
PBD2yyy        80                8            13
PBD3xxx        10                19          15
PBD3yyy        15                78          88

I den andet fanebald vil jeg gerne samle data fra kolonne A,B og D, hvis PBD1 indgår i kollonne A.
Nedenunder skal de samme data indsættes hvor henholdsvis PBD2 og PBD3 indgår i kolonne A.
Sidenhen skal jeg også lave en graf for opdelingen.
26. august 2011 - 13:36 #1
Lidt du kan arbejde videre med

Sub KopiAlle()
    Dim c As Range
    For Each c In Range("A2", Range("A2").End(xlDown))
        if instr(1, c.value, "PBD1") > 0 then
          Range(c.Address, c.End(xlToRight)).Copy Destination:=Worksheets("Opsamlingsark").Range("A65536").End(xlUp).Offset(1, 0)
        end if
    Next
End Sub
Avatar billede qln Juniormester
31. august 2011 - 13:28 #2
Det er helt fint indtil videre.
Nu vil jeg gerne nøjes med at kopiere data fra kolonne A, B og D og ikke hele rækken.
31. august 2011 - 13:35 #3
Sub KopiAlle()
    Dim c As Range
    For Each c In Range("A2", Range("A2").End(xlDown))
        if instr(1, c.value, "PBD1") > 0 then
          Range(c.Address, c.offset(0,1)).Copy Destination:=Worksheets("Opsamlingsark").Range("A65536").End(xlUp).Offset(1, 0)
          Range(c.Offset(0,3), c.offset(0,3)).Copy Destination:=Worksheets("Opsamlingsark").Range("A65536").End(xlUp).Offset(0, 3)
        end if
    Next
End Sub
Avatar billede qln Juniormester
31. august 2011 - 14:12 #4
Kan man lave det således, at dataene i "Opsamlingsark" indsættes uden mellemrum?
31. august 2011 - 14:16 #5
Ikke forstået - hvilke mellemrum vi du af med?

Sub KopiAlle()
    Dim c As Range
    For Each c In Range("A2", Range("A2").End(xlDown))
        if instr(1, c.value, "PBD1") > 0 then
          Range(c.Address, c.offset(0,1)).Copy Destination:=Worksheets("Opsamlingsark").Range("A65536").End(xlUp).Offset(1, 0)
          Range(c.Offset(0,3), c.offset(0,3)).Copy Destination:=Worksheets("Opsamlingsark").Range("A65536").End(xlUp).Offset(0, 2)
        end if
    Next
End Sub

afleverer A, B, D i A, B, C
Avatar billede qln Juniormester
31. august 2011 - 14:44 #6
Hos mig bliver A, B, D indsat i A, B, D
31. august 2011 - 14:50 #7
Er du sikker?
Har testet her og koden virker efter hensigten
Prøv at slette hvad du har på arket "Opsamlingsark"
Og sikre dig at du har den nyeste version af min kode
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