Oprettet ons. d. 25. juli 2012 kl. 15:23:46

Laudman83
Laudman83 (3.005 point. Point ude: 0)

Transponer kolonne til rækker

Hej

Lad mig starte med at sige, at jeg ikke er VBA ekspert, derfor vil jeg sætte pris, på så meget forklaring som muligt. Så jeg kan forstå det bedst muligt.

Det jeg skal bruge hjælp til er en makro i excel der kan opdele en kolonne i flere antal rækker, alt efter hvor mange der er.
Jeg har forneden forsøgt at lave et forsimplet eksempel, hvor makroen skal opdele og fordele ordrene i en række ud fra Kunde id'et.

Håber virkeligt der er en der kan hjælpe mig, har søgt alle steder på nettet, men synes ikke jeg kan finde nogen i lignende situation:(


Nuværende situation:

Kunde ID:    Adresse:        Ordre:
123    Vestergade 10, 2100 København Ø    ABX
212    Østergade 3,  8000 Århus C    NNA
124    Nøregade 7, 5200 Odense V    VVY
123    Vestergade 10, København    NNA
   
           
Ønsket situation:                       
Kunde ID:    Adresse:    Ordre:    Ordre2:
123    Vestergade 10,  2100  København Ø    ABX    NNA
212    Østergade 3,  8000 Århus C    NNA   
124    Nøregade 7, 5200 Odense V    VVY

Skrevet ons. d. 25. juli 2012 kl. 16:02:25| #1

supertekst
supertekst (139.434 point)
supertekst-it.dk
Du er velkommen til at sende filen eller en model. @-adresse under min profil.

Det ser ikke ud til at der er tale om en egentlig transponering - men nærmere en samling af ordre til den pågældende kunde.

Det skulle VBA nok kunne klare..

Skrevet tor. d. 26. juli 2012 kl. 00:35:22| #2

supertekst
supertekst (139.434 point)
supertekst-it.dk
Rem VBA-kode anbringes under det aktuelle ark (Højreklik på ark / Vis programkode / Indsæt VBAKode her
Rem Koden kan eksekveres med Alt+F8 / Marker samlingAfOrdre / Afspil
Rem ================================================================

Dim sidsteRække As Long, ræk As Long
Dim kundeId As Variant, kundeRække As Long
Dim ræk2 As Long
Public Sub samlingAfOrdre()
Rem Beregn sidste række
    sidsteRække = ActiveCell.SpecialCells(xlLastCell).Row
    ræk2 = 2
       
Rem Traverser rækkerne
    For ræk = 2 To sidsteRække
        kundeId = Range("A" & ræk)
        ordre = Range("C" & ræk)
   
Rem findes kundeid i ny tabel
        kundeRække = findesKunde(kundeId)
        If kundeRække = 0 Then
Rem Opret kundedata
            opretKundeData
        Else
            indsætNyOrdre kundeRække, ordre
        End If
       
    Next ræk

Rem tilpas kolonnebredde
    Columns.AutoFit
End Sub
Private Function findesKunde(kundeId)
Dim r As Long
    For r = 2 To sidsteRække
        If Range("E" & r) = kundeId Then
            findesKunde = r
            Exit Function
        End If
    Next r
   
    findesKunde = 0
End Function
Private Sub opretKundeData()
    Range("E" & ræk2) = Range("A" & ræk)
    Range("F" & ræk2) = Range("B" & ræk)
    Range("G" & ræk2) = Range("C" & ræk)
    ræk2 = ræk2 + 1
End Sub
Private Sub indsætNyOrdre(række, ordre)
Dim kolonne As Integer
Rem find celle til ny ordre på eksisterendekundedata
    For kolonne = 8 To 16384
        If Cells(række, kolonne) = "" Then
            Cells(række, kolonne) = ordre
            Exit Sub
        End If
    Next kolonne
End Sub

Skrevet tor. d. 26. juli 2012 kl. 06:44:45| #3

Laudman83
Laudman83 (3.005 point)
Tak for hjælpen

Skrevet tor. d. 26. juli 2012 kl. 08:55:29| #4


Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   


Seneste spørgsmål

Betinget formatering

Oprettet den 17. maj 2013 kl. 19.41
kvisten63 giver 100 point for svar | Giv et svar »

Pivot Excel 2010/2013

Oprettet den 17. maj 2013 kl. 17.11
issay giver 30 point for svar | Giv et svar »

Kopiering af celleværdi og cellefarve fra ark1 til ark2 i...

Oprettet den 17. maj 2013 kl. 13.14
hannelangeland giver 30 point for svar | Giv et svar »








Tips & Tricks fra PC World

Teaser billede

Her er seks Google Labs-funktioner, som du skal slå til med det samme

Gmail Labs giver dig adgang til en masse smarte funktioner, som Googles ingeniører leger med i øjeblikket.


Anmeldelser fra PC World

Teaser billede

Test: Samsung Galaxy S4 er et hit - trods gøglertricks

Kan Samsung beholde førertrøjen i det store Android-race? Galaxy S4 er smækfyldt med innovative funktioner, men også med en del gøgl. Er det for meget? Få vores dom over Samsungs nye topmodel.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Tre smarte trick som gør Windows 8 bedre

Boot direkte til skrivebordet, få en strategisk godt placeret luk-knap og slip for at logge ind. Her er tre tips til Windows 8, som gør det nemmere at blive venner med styresystemet.


Nyheder fra Computerworld

Teaser billede

Galleri: Her er Googles nyeste værktøj og legetøj

Google har i denne uge afholdt udviklerkonferencen I/O i San Francisco. Se her hvad søgegiganten kunne præsentere af nyskabelser.


IT Kurser
Samarbejdspartnere

Udgiver · © 2013 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger