12. august 2010 - 17:24Der er
6 kommentarer og 1 løsning
Lave mulit transponering eller tilsvarende
Hej
Jeg har et langt regneark med varenumre i kolonne A og alternative (Alt) varenumre i kolonne B. Til samme varenummer er der flere alternative varenumre, se eksempel.
Varenr Alt nr AR-20742 AR-20742-Alt AR-20742 098-010 AR-20742 099-010 AR-29250 AR-29250-Alt AR-29250 03136 AR-29250 5710412005214
Jeg vil nu gerne vise det i Excell således at der kolonne A vises varenummer og i de efterfølgende kolonner vises alle de alt nr der knytter sig hertil. Se eksempel
Varenr Alt nr Alt nr Alt nr AR-20742 AR-20742-Alt 098-010 099-010 AR-29250 AR-29250-Alt 03136 5710412005214
NB: Antallet af alternative numre variere pr varenummer. Er der nogen forslag til hvordan jeg løser dette.
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Rem koden indsættes undser aktuelle ark Rem Varenr indsættes i kolonne D og alternativer E ->
Dim varenr As String, altTæller As Integer Dim antalRæk As Long, vnr As String, altVnr As String Dim ræk As Long, kolNr As Byte, rækAlt As Long Public Sub multiTransponer() altTæller = 0 varenr = "" altTæller = 1 rækAlt = 1 antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
Application.ScreenUpdating = False
For ræk = 2 To antalRæk vnr = CStr(Range("A" & CStr(ræk))) altVnr = CStr(Range("A" & CStr(ræk)).Offset(0, 1))
If varenr = "" Or varenr <> vnr Then altTæller = 1 rækAlt = rækAlt + 1 varenr = vnr Range("D" & CStr(rækAlt)) = varenr Range("D" & CStr(rækAlt)).Offset(0, altTæller) = altVnr Else If varenr = vnr Then Range("D" & CStr(rækAlt)).Offset(0, altTæller) = altVnr End If End If altTæller = altTæller + 1 Next ræk
Columns.AutoFit Application.ScreenUpdating = True End Sub
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.