Avatar billede Janek3 Nybegynder
21. september 2012 - 10:02 Der er 7 kommentarer og
1 løsning

Opdatering af nye data ifbm sortering af mastersheet til nye sheet (vba)

Jeg har et excelark hvor jeg har en sagsoversigt som er mit 'mastersheet'. Det er sorteret ud fra sagens status (kolonne L) vha en vba kode, hvor de forskellige statusværdier flyttes over på hver deres sheet.

Men jeg får jo nye sager tilføjet sagsoversigten (mastersheetet) - så mit spørgsmål er nu hvordan jeg kan opdatere vba sorteringen uden at skulle afspille koden igen.. (Når jeg gør det - laver den en helt ny sortering på samtlige data - hvilket betyder alle tidligere eksisterende sager kommer til at gentage sig på de enkelte sheets)

Nice Day :0)
Jane K
Avatar billede supertekst Ekspert
21. september 2012 - 10:15 #1
Skal de gl. data på sagsoversigten bibeholdes?
Avatar billede Janek3 Nybegynder
21. september 2012 - 10:25 #2
Ja - fremadrettet er det meningen, at alle nye sager der kommer tilføjes det eksisterende sagsoversigt-ark via Data Form! Så ja det skal de vel - hvis jeg forstår dit spørgsmål korrekt! :O)
Avatar billede supertekst Ekspert
21. september 2012 - 10:35 #3
Så skal koden udvides - så sidste række gemmes inden næste opdatering indlæses.
Avatar billede supertekst Ekspert
21. september 2012 - 10:58 #4
Ville det være ok at anvende cellerne AA1 til teksten: Sidste række opdateret" og AA2 til nr på sidste række?

AA2 vil så blive opdateret automatisk når opdateringskørslen er udført.
Avatar billede Janek3 Nybegynder
21. september 2012 - 11:08 #5
ja det er helt fint med mig.. Det eneste der skal være i de sheets er den data der kommer fra mastersheetet :o)
Avatar billede supertekst Ekspert
21. september 2012 - 11:20 #6
Rem Version 2
Rem =========
Dim antalRækker As Long, status As String, ræk As Long
Dim startRæk As Long, slutRæk As Long
Dim førsteRække As Long
Const statusKolonne = "J"                          '<--- Justeres
Const sidsteKolonne = "T"                          '<--- justeres
Public Sub fordelStatus()
    antalRækker = ActiveCell.SpecialCells(xlLastCell).Row
    førsteRække = Range("AA2") + 1
   
    Sortering førsteRække, antalRækker
   
    startRæk = førsteRække
    slutRæk = 1
    status = Trim(Range(statusKolonne & førsteRække))
   
    Application.ScreenUpdating = False
   
    For ræk = førsteRække + 1 To antalRækker
        If Range(statusKolonne & ræk) = status Then
            slutRæk = slutRæk + 1
        Else
            overførTilStatusArk status, startRæk, slutRæk
           
            startRæk = ræk
            slutRæk = ræk
            status = Trim(Range(statusKolonne & ræk))
        End If
    Next ræk

    overførTilStatusArk status, startRæk, slutRæk

Rem opdater første række
    Range("AA2") = ræk - 1
   
    Application.ScreenUpdating = True
   
    MsgBox "Status-fordeling afsluttet"
End Sub
Private Sub overførTilStatusArk(status, startRæk, slutRæk)
Dim sidsteRække As Long
    Range("A" & startRæk & ":" & sidsteKolonne & slutRæk).Select
    Selection.Copy

    Sheets(status).Activate
    sidsteRække = ActiveCell.SpecialCells(xlLastCell).Row

    ActiveSheet.Range("A" & sidsteRække + 1).Select
    ActiveSheet.Paste
    ActiveSheet.Columns.AutoFit
   
    Sheets("Sagsoversigt").Select
    Application.CutCopyMode = False
End Sub
Private Sub Sortering(fra, til)
    ActiveWorkbook.Worksheets("Sagsoversigt").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sagsoversigt").Sort.SortFields.Add Key:=Range(statusKolonne & CStr(førsteRække) & ":" & statusKolonne & CStr(til)) _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sagsoversigt").Sort
        .SetRange Range("A" & CStr(førsteRække) & ":" & sidsteKolonne & CStr(til))
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
Avatar billede Janek3 Nybegynder
21. september 2012 - 11:39 #7
Du er bare dagens solstråle på ellers kedelig gråvejrsdag :O) 1000 Tak Peter
Avatar billede supertekst Ekspert
21. september 2012 - 13:26 #8
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