01. juni 2011 - 09:27Der er
14 kommentarer og 1 løsning
Hvordan lægger jeg varierende dataområder fra forskellige sheets under hinanden automatisk?
Hej Eksperter, Jeg har 4 ark med 7 kolonner, men med varierende længde fra mdr til mdr. Disse 4 arks områder samler jeg under hinanden hver mdr. manuelt. Er der en måde, hvorpå jeg kan gøre dette automatisk. Mit problem er, at de 4 ark varierer i længde, men dog ikke i antal kolonner.
Arkene hedder US, FR, CA, JP og KR. De starter alle med overskriver i række 1 og efterfølgende data i række 2 og ned. Samme overskriver går så igen i total arket og med data fra række 2.
Rem Koden anbringes under fanen for total Rem Kan aktiveres via Alt+F8 Rem ===================================== Public Sub samlingAfArk() Const totalArkNavn = "total" Dim totalArk As Worksheet
Dim antalræk As Long, ræk As Long, rækTotal As Long Dim ark As Worksheet
Set totalArk = ActiveWorkbook.Sheets(totalArkNavn) rækTotal = 2
Application.ScreenUpdating = False
Rem traverser ark For Each ark In ActiveWorkbook.Sheets ark.Activate If LCase(ark.Name) <> LCase(totalArkNavn) Then antalræk = beregnAntalRækker
If antalræk > 1 Then ActiveSheet.Range("A2:G" & CStr(antalræk)).Select Selection.Copy
With totalArk .Activate .Range("A" & CStr(rækTotal)).Select ActiveSheet.Paste rækTotal = rækTotal + antalræk - 1 End With End If End If Next
Hej, mange tak for tilsendte. En lille detalje. Der er flere ark i workbooken, som ikke skal med. Det gør de pt. Kan macroen specificeres til kun at vælge arkene US, JP, KR, CA, og FR?
Rem Version 2 Rem Koden anbringes under fanen for total Rem Kan aktiveres via Alt+F8 Rem ===================================== Public Sub samlingAfArk() Const relevanteArk = "US FR CA JP KR" Const totalArkNavn = "total" Dim totalArk As Worksheet
Dim antalræk As Long, ræk As Long, rækTotal As Long Dim ark As Worksheet
Set totalArk = ActiveWorkbook.Sheets(totalArkNavn) rækTotal = 2
Application.ScreenUpdating = False
Rem traverser ark For Each ark In ActiveWorkbook.Sheets If InStr(relevanteArk, UCase(ark.Name)) > 0 Then ark.Activate antalræk = beregnAntalRækker
If antalræk > 1 Then ActiveSheet.Range("A2:G" & CStr(antalræk)).Select Selection.Copy
With totalArk .Activate .Range("A" & CStr(rækTotal)).Select ActiveSheet.Paste rækTotal = rækTotal + antalræk - 1 End With End If End If Next
Hej Supertekst, Jeg har et lille problem med macroen. Først. Jeg har ændret på rækkefølgen af arkene, så de nu er som følger US JP CA KR FR.
Macroen kører stadig og tager alt med, men efter JP arket laver macroen et hul på ca 20 linier, som er blanke - efter de tomme linier kommer CA tallene så.
Jeg har prøvet at slette alt under jp arket, så der ikke er noget komma eller andet, jeg ikke ser.
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.