Avatar billede lurup Ekspert
13. august 2017 - 22:11 Der er 4 kommentarer og
1 løsning

Dele en kolonne

e k 56

Jeg har en liste med 200 personer  hvor jeg har brug for at dele en kolonne ved hvor person.
I kan se her i celle E og K 5 og 6 hvordan det skal se ud. de andre celler er som i dag.
Der hvor der står gangnavn skal der også står fx 1970
Hvordan gør jeg det nemmeste  ??
Se her
https://drive.google.com/open?id=0B3ppBNkTPyOsejNjcmxLSkY4cms
Avatar billede Jan Hansen Ekspert
14. august 2017 - 01:38 #1
Mon dette kan bruges?


Option Explicit

Dim ws As Worksheet, wsNew As Worksheet
Dim rArea As Range, rNewArea As Range
Dim myArray() As Variant
Dim colMyCol As New Collection
Dim iAreas, iCount, iCountB, iCountC, iRow, iMyArray As Integer
Const iColumn = 6

Sub TilpasArk()
    Set ws = ActiveSheet
   
    iAreas = (ws.UsedRange.Columns.Count + 1) / 6
    iRow = ws.UsedRange.Rows.Count + 3
    For iCount = 1 To iAreas
        Set rArea = ws.Range(Cells(3, 1 + (iColumn * (iCount - 1))), Cells(iRow, 5 + (iColumn * (iCount - 1))))
        myArray = rArea
        colMyCol.Add myArray
    Next
    Set wsNew = Sheets.Add
    For iCount = 1 To iAreas
        myArray = colMyCol.Item(iCount)
        Set rArea = wsNew.Range(Cells(3, 1 + (iColumn * (iCount - 1))), Cells(iRow * 2 - 3, 5 + (iColumn * (iCount - 1))))
        iMyArray = 0
        For iCountB = 3 To iRow * 2 - 3 Step 2
            iMyArray = iMyArray + 1
            For iCountC = 1 To 4
                wsNew.Range(Cells(iCountB, iCountC + iColumn * (iCount - 1)), Cells(iCountB + 1, iCountC + iColumn * (iCount - 1))).Merge
                wsNew.Cells(iCountB, iCountC + iColumn * (iCount - 1)).Value = myArray(iMyArray, iCountC)
                wsNew.Cells(iCountB, iCountC + iColumn * (iCount - 1)).VerticalAlignment = xlTop
            Next
            wsNew.Cells(iCountB, 5 + iColumn * (iCount - 1)).Value = myArray(iMyArray, 5)
        Next
    Next
   
    ws.Activate
End Sub



Jan
Avatar billede lurup Ekspert
14. august 2017 - 09:08 #2
Hold da op...
Hvordan sætte jeg det ind ?
Avatar billede finb Ekspert
14. august 2017 - 09:14 #3
Jan Hansen har en flot løsning,
men UNDGÅ at flette celler, Lurup !
Opret i stedet kolonner til fx "1970"
Avatar billede Jan Hansen Ekspert
14. august 2017 - 10:11 #4
#2 i et modul alt+F11  og  insert og modul
insæt koden
tilbage til arket
alt+F8 og kør macroen

#3 når man ikke laver beregninger er flette celler så noget problem?

Jan
Avatar billede lurup Ekspert
18. august 2017 - 00:30 #5
Tak jan det virker
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