Avatar billede Lupinmarken101 Nybegynder
12. august 2010 - 17:24 Der 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.

På forhånd tak.

NB:Jeg bruger Excel 2007 men har også 2003.
Avatar billede supertekst Ekspert
12. august 2010 - 17:34 #1
Må det være VBA?
Avatar billede supertekst Ekspert
12. august 2010 - 17:35 #2
og så velkommen til..
Avatar billede Lupinmarken101 Nybegynder
12. august 2010 - 17:36 #3
ja
Avatar billede supertekst Ekspert
12. august 2010 - 18:13 #4
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
Avatar billede supertekst Ekspert
16. august 2010 - 09:34 #5
afprøvet?
Avatar billede Lupinmarken101 Nybegynder
17. august 2010 - 09:31 #6
Hej Supertekst

Undskyld den lange svartid. Det virker bare helt perfekt. Tusind tak for hjælpen
Avatar billede supertekst Ekspert
17. august 2010 - 09:37 #7
ok & selv tak..
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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