VBA Excel makró sorok rendezése
2022-06-10T08:41:38+02:00
2022-06-10T11:07:09+02:00
2022-08-12T09:25:31+02:00
ffuser
Sziasztok! 
Munkahelyemen használunk egy táblázatot. 

Dátum,         Terület,      Szak,      Pozíció,           Napszak,      Túlórás neve,       Megjegyzés
2022-07-08  Gyár1         A4         Gépkezelő1     Nappal12     Böbe                   csak délig
2022-08-01  Gyár2        B4          Gépkezelő2     Éjjel12           Piri                      

Volt rajta egy VBA ami nyitáskor sorbarendezte, első körben dátum szerint, aztán szak,, és napszak szerint majd pozíció szerint legvégül. 

Sajnos a makró megsérült és nem működik, és senki nem tudja megcsinálni... 

Szeretnék segítséget kérni, mert így a táblázatban nagyon nehéz dolgozni. 

VBA tudásom annyi, hogy kb. tudok róla hogy létezik és be tudom másolni, pl. egy modulba vagy ThisWorbook lapra...

Köszönöm szépen!
Mutasd a teljes hozzászólást!
Szia!
Hány soros a táblázatod?
Gyanús nekem, hogy  Key paraméterekben mindig az első 5 sor szerepel.
Történt-e frissítés vagy valami más változtatás, ami után "elromlott"?
Próbáld meg, hogy ezeket a sorokat kihagyod egy apsztrófot téve eléjük:

'Cells.Select Cells.EntireColumn.AutoFit ' Cells.Select Cells.EntireRow.AutoFit Rows("1:1").Select Selection.RowHeight = 75 ' Columns("A:G").Select
Ezután a Key:=Range("A2:A5") típusú paraméterekben csak az A2 stb értékeket hagyd meg 
              Key:=Range("A2") stb.
A .SetRange Range("A1:G5")
sort módosítsd így:

.SetRange Range("A1").CurrentRegion
 
Üdv.
Mutasd a teljes hozzászólást!

  • Hali!

    Mutasd – VBA-forráskóddal/-részlettel –, hogy eddig mivel, hogyan próbálkoztál, meddig jutottál el, mi nem megy, miben/hol akadtál el!

    Persze, csak ha segítséget kérsz a problémád megoldásában. Ha mással szeretnéd megoldatni a feladatot, akkor viszont irány a Társalgó állás-rovata (ahol a munka elvégzéséért nyújtott/adott ellenszolgáltatást/-értéket is fel tudod tüntetni). Főleg, ha a munkádhoz kell.

    Mutasd a teljes hozzászólást!
  • Szia!
    Ha bemásolnád ide a régi makrót, talán könnyebben tudnánk segíteni. Írd hozzá légy szíves azt is, hogy melyik kódlapról másoltad.
    Üdv.
    Mutasd a teljes hozzászólást!
  • Szia! 

    ez van most:

    Sub START()
    '
    ' START Makró
    '
    ' Billentyuparancs: Ctrl+b
    '
        ActiveSheet.Unprotect "8888"
        Cells.Select
        Cells.EntireColumn.AutoFit
        Cells.Select
        Cells.EntireRow.AutoFit
        Rows("1:1").Select
        Selection.RowHeight = 75
        Columns("A:G").Select
        ActiveSheet.AutoFilter.ShowAllData
        ActiveWorkbook.Worksheets("Túlóra").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Túlóra").Sort.SortFields.Add2 Key:=Range("A2:A5") _
            , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        ActiveWorkbook.Worksheets("Túlóra").Sort.SortFields.Add2 Key:=Range("C2:C5") _
            , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        ActiveWorkbook.Worksheets("Túlóra").Sort.SortFields.Add2 Key:=Range("D2:D5") _
            , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        ActiveWorkbook.Worksheets("Túlóra").Sort.SortFields.Add2 Key:=Range("E2:E5") _
            , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        ActiveWorkbook.Worksheets("Túlóra").Sort.SortFields.Add2 Key:=Range("B2:B5") _
            , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Túlóra").Sort
            .SetRange Range("A1:G5")
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        Range("A1").Select
        ActiveSheet.Range("$A$1:$G$5").AutoFilter Field:=1, Criteria1:=RGB(217, 217 _
            , 217), Operator:=xlFilterCellColor
        ActiveSheet.Range("$A$1:$G$5").AutoFilter Field:=1, Criteria1:=RGB(177, 160 _
            , 199), Operator:=xlFilterCellColor
            Range("A1").End(xlDown).Select
        ActiveSheet.Protect "8888"
    End Sub


    A rendezésen kívül még a multba mutató dátumakat is törli. Az működik, de a rendezés nem...
    Mutasd a teljes hozzászólást!
  • ez a rész szín szerint szűr. a feltételes formázás megszínezi az aktuális dátum előtti napokat, és így ezzel nem kell foglalkozni... 
    ActiveSheet.Range("$A$1:$G$5").AutoFilter Field:=1, Criteria1:=RGB(217, 217 _
            , 217), Operator:=xlFilterCellColor
        ActiveSheet.Range("$A$1:$G$5").AutoFilter Field:=1, Criteria1:=RGB(177, 160 _
            , 199), Operator:=xlFilterCellColor

    viszont a többi nem működik... azaz néha nem rendezi sorba de nem értem miért
    Mutasd a teljes hozzászólást!
  • Szia!
    Hány soros a táblázatod?
    Gyanús nekem, hogy  Key paraméterekben mindig az első 5 sor szerepel.
    Történt-e frissítés vagy valami más változtatás, ami után "elromlott"?
    Próbáld meg, hogy ezeket a sorokat kihagyod egy apsztrófot téve eléjük:

    'Cells.Select Cells.EntireColumn.AutoFit ' Cells.Select Cells.EntireRow.AutoFit Rows("1:1").Select Selection.RowHeight = 75 ' Columns("A:G").Select
    Ezután a Key:=Range("A2:A5") típusú paraméterekben csak az A2 stb értékeket hagyd meg 
                  Key:=Range("A2") stb.
    A .SetRange Range("A1:G5")
    sort módosítsd így:

    .SetRange Range("A1").CurrentRegion
     
    Üdv.
    Mutasd a teljes hozzászólást!
abcd