Avatar billede mfynbo Juniormester
24. februar 2010 - 08:50 Der er 2 kommentarer og
1 løsning

Sortering af regneark med 6000 linier

Hej Eksperter,

Jeg har følgende opstilling af data.

kundenavn
faktura 1
faktura 2

kundenavn 2
faktura 3

etc.

Jeg vil gerne flytte "faktura 1,2 og 3 til kolonne 2 med korrekt kundenavn for hver faktura.

Jeg har 6000 linier med forskellige kundenavne og forskelligt antal fakturaer under hver.

/Mfynbo
Avatar billede kabbak Professor
24. februar 2010 - 10:21 #1
Stil dig på første kundenavn og kør makroen.

Kravet er at der er en tom række, eller flere imellem kunderne, den skriver dem over i c og d kolonnen.

Public Sub Flyt()
    Dim Data As Variant, I As Long, RW As Long
    Dim Fra As String, Til As String, Kunde As String
    Fra = ActiveCell.Address
    Til = Cells(65536, ActiveCell.Column).End(xlUp).Offset(1, 0).Address
    Data = Range(Fra & ":" & Til)
    For I = 1 To UBound(Data, 1)
        If Kunde = "" Then Kunde = Data(I, 1)

        If Not IsEmpty(Data(I, 1)) And Kunde <> Data(I, 1) Then
            RW = Range("C65536").End(xlUp).Row + 1
            Cells(RW, 3) = Kunde
            Cells(RW, 4) = Data(I, 1)
        End If
        If IsEmpty(Data(I, 1)) Then Kunde = ""
    Next
End Sub
Avatar billede mfynbo Juniormester
24. februar 2010 - 11:12 #2
Hej Kabbak,
Tak for dit svar. Desværre er min virkelighed lidt anderledes end eksemplet og macroen virker ikke efter hensigten.

Jeg har følgende kolonner med tilhørende indhold.

Number      Type    Due Date    Amount    Current    (Invoice)

kunde 1      data    data        data      data   

3044367
3045378

Tallene er invoice numre, som står i samme kolonne som kundenavnet. Jeg forestiller mig, at det kunne stå således.

Kunde 1                                            3044367
Kunde 1                                            3045378

Dermed kan jeg bevare det andet data.

Håber du kan hjælpe.

Mvh.
Mfynbo
Avatar billede kabbak Professor
25. februar 2010 - 10:41 #3
Hvis dine data står sådan her:

Number         Type       Due Date       Amount       Current       (Invoice)
kunde 1          data       data           data         data      
3044367                   
3045378                   
                   
kunde 2          data       data           data         data      
3044369                   
3045388                   

Så komme det til at se sådan ud:

Number         Type       Due Date       Amount       Current       (Invoice)
kunde 1          data       data           data         data      
kunde 1    3044367               
kunde 1    3045378               
                   
kunde 2          data       data           data         data      
kunde 2    3044369               
kunde 2    3045388               

Med denne Kode:

Public Sub Flyt()
    Dim Data As Variant, I As Long, RW As Long
    Dim Fra As String, Til As String, Kunde As String
    Fra = "$A$2"
    Til = Cells(65536, "A").End(xlUp).Offset(1, 1).Address
    Data = Range(Fra & ":" & Til)
    For I = 1 To UBound(Data, 1)
        If Not IsNumeric(Data(I, 1)) And Not IsEmpty(Data(I, 1)) Then Kunde = Data(I, 1)

        If IsNumeric(Data(I, 1)) And Not IsEmpty(Data(I, 1)) Then
            Data(I, 2) = Data(I, 1)
            Data(I, 1) = Kunde
        End If
    Next
    Range(Fra & ":" & Til) = Data
End Sub
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