22. februar 2018 - 15:53Der er
4 kommentarer og 1 løsning
VBA kode til at flytte data fra kolonner til linjer
Jeg har i dag et ark med mange linjer, hvor der står noget i 8 kolonner. Det er typiske en linje pr. dato., dog ikke altid.
Jeg vil meget gerne have lavet dette om til at stå på linjer i stedet i 4 kolonner.
Kan det mon lade sig gøre i VBA ?
Jeg har prøvet at illustrere nuværende og ønsket opstilling nedenfor. Bemærk at de kontonumre / tekster der står i linje 2, skal anvendes til alle linjer ved konvertering.
NUVÆRENDE OPSTILLING A B C D E F G H Bilag Dato Tekst Konto 1 Konto 2 Konto 3 Konto 4 Konto 1000 1010 1020 5800 5820
Hej mrkr Jeg har forsøgt med en hurtig VBA-løsning uden fejlcheck. Den forudsætter, at kolonnerne A til H er som beskrevet i #1. For at makroen virker skal du markere cellen med det første bilagsnummer. Ingen tomme linjer i dine bilag. Kopier følgende kode til et tomt makromodul:
Option Base 1
Sub FlytData() Dim MyArray() Dim AntRk As Integer, i As Integer, j As Integer
If ActiveCell.Offset(1, 0).Value = "" Then AntRk = 1 Else AntRk = Range(ActiveCell, ActiveCell.End(xlDown)).Rows.Count End If
ReDim MyArray(5, AntRk * 5) i = 1 Do While ActiveCell.Value <> ""
For j = 1 To 5 MyArray(1, i) = ActiveCell.Value MyArray(2, i) = ActiveCell.Offset(0, 1).Value MyArray(3, i) = Cells(2, j + 3).Value MyArray(4, i) = ActiveCell.Offset(0, 2).Value MyArray(5, i) = ActiveCell.Offset(0, j + 2).Value i = i + 1 Next ActiveCell.Offset(1, 0).Select Loop
ActiveWorkbook.Sheets.Add With ActiveSheet .Cells(1, 1) = "Bilag" .Cells(1, 2) = "Dato" .Cells(1, 3) = "Konto" .Cells(1, 4) = "Tekst" .Cells(1, 5) = "Beløb" For i = 1 To AntRk * 5 For j = 1 To 5 .Cells(i + 1, j) = MyArray(j, i) Next Next End With
For dælen da. Jeg fik slet ikke fulgt op på denne. Beklager mange gange :-(
xl-Enthusiast Jeg har prøvet med løsningen med formler. Jeg kan se at den virker lige efter hensigten, men jeg kan ikke finde ud af at få det til at virke når jeg indsætter flere linjer.
Tegler Den kode du har lavet virker lige efter hensigten. også når jeg putter flere linjer på.
Mange tak for input og hjælpen til jer begge to :-)
Det område der i min fil er navngivet d det vil sige A4:H5 (se under Navnestyring) skal udvides til at gælde det aktuelle område.
Synes godt om
Ny brugerNybegynder
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.