Avatar billede dennisa Nybegynder
11. juli 2011 - 16:41 Der er 9 kommentarer og
1 løsning

Vend rækker til kolonner i hver sin arkfane

Jeg har modtaget en datafil med en række informationer som skal bruges som tastegrundlag/bilag. Række 1 indeholder kolonneoverskrifter og de efterfølgende indeholder de data som skal benyttes i tastebilag.

Jeg skal have hver række vendt til kolonner, i hver sin arkfane forstået på den måde at række 1 skal være kolonne A i hver ny arkfane og række 2 og efterfølgende rækker skal være kolonne B i hver sin arkfane. Kolonne A ( fra række 2 og ned ) i datamaterialet indeholder et ID som skal benyttes som arkfanenavn.

Har nogen en rutine til dette vil jeg være dybt taknemmelig.
Avatar billede natkatten Mester
11. juli 2011 - 19:45 #1
For forståelsens skyld:

Data er i et ark, og der skal altså oprettes nye ark for hver række her?

Jeg går ud fra, at du benytter Excel 2007 eller 2010, hvor der i teorien ikke er en øvre grænse for, hvor mange ark, der kan oprettes (omend mængden af RAM kan sætte grænsen!).

Hvor mange rækker og kolonner er der cirka i datamaterialet?
Avatar billede dennisa Nybegynder
12. juli 2011 - 08:54 #2
Hej natkat

Jeg benytter Office 2003, men mener ikke at det skulle give probler i det aktuelle tilfælde, har før haft flere end 600 arkfaner i samme regneark uden nævneværdige problemer.

Datamaterialet jeg skal have behandlet består af kolonne A - DP
og 548 rækker
Avatar billede dennisa Nybegynder
12. juli 2011 - 09:29 #3
Jeg er startet ( af tidsnød ) på en mulig løsning

Dette her gør arbejdet for den første del.

    Sheets("Sheet1").Select
        Range("1:1,2:2").Select
            Range("A1").Activate
                Selection.Copy
    Sheets("Sheet1").Select
        Sheets.Add
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, TransPose:=True
    Sheets(ActiveSheet.Name).Name = Range("B1")

Jeg har behov for en loop rutine som løber hele regnéarket igennem. 

Linie 2 i koden skal i 2 loop se således ud : 

Range("1:1,3:3").Select

i 3 loop således

Range("1:1,4:4").Select
Avatar billede supertekst Ekspert
12. juli 2011 - 09:37 #4
Er lige begyndt på et forslag i skrivende stund..
Avatar billede dennisa Nybegynder
12. juli 2011 - 10:05 #5
Rart med venner herinde :-)
Avatar billede supertekst Ekspert
12. juli 2011 - 10:38 #6
Dim basisArk As Worksheet
Dim antalRæk As Long
Public Sub transponerOgFordel()
Dim id
    antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
    Set basisArk = ActiveWorkbook.Sheets(basisArkNavn)
   
    Application.ScreenUpdating = False
   
    For ræk = 2 To antalRæk
        basisArk.Select
        id = Range("A" & ræk)
        Union(Range("1:1"), Range(ræk & ":" & ræk)).Select
       
        Selection.Copy
        ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
        ActiveSheet.Name = id
        ActiveSheet.Range("A1").Select
        Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True

        Application.CutCopyMode = False
    Next ræk
   
    Application.ScreenUpdating = True
End Sub
Avatar billede dennisa Nybegynder
12. juli 2011 - 10:56 #7
Fejl :
Subscript out of range
Avatar billede supertekst Ekspert
12. juli 2011 - 11:10 #8
Undskyld - den første linje manglede


Const basisArkNavn = "Ark1"        '<--- justeres

Dim basisArk As Worksheet
Dim antalRæk As Long
Public Sub transponerOgFordel()
Dim id
    antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
    Set basisArk = ActiveWorkbook.Sheets(basisArkNavn)
   
    Application.ScreenUpdating = False
   
    For ræk = 2 To antalRæk
        basisArk.Select
        id = Range("A" & ræk)
        Union(Range("1:1"), Range(ræk & ":" & ræk)).Select
       
        Selection.Copy
        ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
        ActiveSheet.Name = id
        ActiveSheet.Range("A1").Select
        Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True

        Application.CutCopyMode = False
    Next ræk
   
    Application.ScreenUpdating = True
End Sub
Avatar billede dennisa Nybegynder
12. juli 2011 - 11:14 #9
Så er den ged barberet :-)

Tak for hjælpen
Avatar billede supertekst Ekspert
12. juli 2011 - 11:19 #10
Selv tak og et svar
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