Avatar billede Morten S. Juniormester
14. august 2016 - 16:38 Der er 8 kommentarer og
1 løsning

Data sortering

Hej.
Jeg skal sortere en masse data i Excel ud fra serienumre. I et ark har jeg en masse data (transaktioner), som hver er tilknyttet et serienummer, og ofte flere transaktioner med samme serienummer. De data skal over i en ny Excel mappe, hvor der er lavet ark som passer til hvert enkelt serienummer. Er det muligt at få Excel til at genkende serienummeret i de rå data, og automatisk sende dem til det pågældende ark i den nye Excel mappe? Evt. med VBA?

På forhånd tak :)
Avatar billede Mikael Ekspert
14. august 2016 - 17:11 #1
Ja ALT er muligt med Excel ;)

Men det er svært at komme med tips, når de pågældende Excel ark ikke kendes.

Og versionen af Excel (Officepakke)

Men ofte bruger jeg selv den simple løsning.. At indsætte (evt. skjulte) sorteringer (formler) i det oprindelige ark, og så KUN lade disse info "kædes" til det andet ark.
Avatar billede ebea Ekspert
14. august 2016 - 17:15 #2
Det kan laves med data sortering (indbygget i Excel), ved at vælge "Data", "Filtrering" og "Avanceret", og der kan du så vælge data der skal filtreres, og hvor de skal flyttes hen, og om det skal være unikke data (entydige poster).

Eller det kan laves med Indeks Sammenligning, og TÆL.HVIS Formel.
Avatar billede supertekst Ekspert
14. august 2016 - 17:30 #3
Ja VBA er oplagt at anvende til denne situation
Evt uploade en demo version eller via direkte kontakt til www.supertekst.dk  så sender jeg svar
Avatar billede Morten S. Juniormester
14. august 2016 - 20:14 #4
Jeg har en demo version, men hvordan uploader man det her?
Avatar billede supertekst Ekspert
14. august 2016 - 20:20 #5
Aktiver kontakten på min www så får du min @-adresse
Avatar billede Morten S. Juniormester
14. august 2016 - 20:41 #6
www.supertekst.dk virker ikke, jeg bliver bare sendt til dandomain. Er det supertekst-it.dk?
Avatar billede ebea Ekspert
14. august 2016 - 21:08 #7
Du kan også bruge www.dropbox.com
Avatar billede supertekst Ekspert
14. august 2016 - 23:14 #8
Avatar billede supertekst Ekspert
15. august 2016 - 23:29 #9
Forslag til løsning:
Rem =============== Version 1 =============================
Rem VBA-kode indsættes i Data.xlsx -- .ext rettet --> .xlsm
Rem =======================================================
Rem FÆLLES
Rem ======
Dim aktuelleSti As String
Dim serieNr As Long

Rem DATA
Rem ====
Const dataArkNavn = "DATA"
Dim dataXLS As Object
Dim antalRæk As Integer

Rem HOVEDMAPPE
Const hovedMappeNavnSkabelon = "Hovedmappe1.xlsx"      '<------ rettet
Const hovedarkNavn = "Hovedark"
Dim hmapXLS As Object
Public Sub overførDataTilHovedMappe()
Dim Ræk As Integer
    houseKeeping
   
    For Ræk = 2 To antalRæk
        serieNr = Range("H" & Ræk)
       
        kopierDataTilHovedmappe Ræk, serieNr
    Next Ræk
   
    afSlutning
End Sub
Private Sub houseKeeping()                          'klargøring
    aktuelleSti = ThisWorkbook.Path
    If Right(aktuelleSti, 1) <> "\" Then
        aktuelleSti = aktuelleSti & "\"
    End If
   
    Set dataXLS = ThisWorkbook
    antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
       
    Set hmapXLS = CreateObject("Excel.Application")
    hmapXLS.Workbooks.Open aktuelleSti & hovedMappeNavnSkabelon
   
    Application.ScreenUpdating = False
End Sub
Private Sub kopierDataTilHovedmappe(Ræk, serieNr)
Dim hmapRække As Integer, arkNavn As String, arkAntalRæk As Integer, arkRæk As Integer
Rem marker range i DATA
    With dataXLS
        ActiveSheet.Range("A" & Ræk & ":H" & Ræk).Select
        Selection.Copy
    End With
   
Rem find serienr i Hovedark
    With hmapXLS
        .Sheets(hovedarkNavn).Activate
       
        For hmapRække = 2 To .ActiveCell.SpecialCells(xlLastCell).Row
            If .Range("A" & hmapRække) = serieNr Then
                arkNavn = .Range("B" & hmapRække)
                hmapXLS.Sheets(arkNavn).Activate
                arkAntalRæk = hmapXLS.ActiveCell.SpecialCells(xlLastCell).Row
               
                With hmapXLS.ActiveSheet
                    .Range("A" & arkAntalRæk + 1).Select
                    .Paste
                End With
               
                hmapXLS.ActiveWorkbook.Save
                Exit For
            End If
        Next hmapRække
    End With
   
    dataXLS.Application.CutCopyMode = False
End Sub
Private Sub afSlutning()
    hmapXLS.Application.Quit
    Set hmapXLS = Nothing
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

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