Excel sorszámozás - VBA
2021-10-13T09:13:48+02:00
2021-10-14T09:47:37+02:00
2022-08-12T04:50:31+02:00
Ascan
Sziasztok!

Accessből exportálok ki adatokat Excelbe, viszont a sorszámozás nem akar rendesen működni. Tehát van egy B oszlop, aminek az értékei osztályok pl.: 1A, 1B stb., C oszlopban vannak az ehhez tartozó nevek, ezért a B oszlopban több ugyanazon érték van egymás alatt. Az A oszlopban van sorszám, ami pedig végigmegy egy osztályokon és a számozást minden egyes osztálynál újrakezdi.
Valahogy így kellene, hogy kinézzen: 
Ssz. Osztály  név
1.      1A       xy
2       1A       df
3.      1A       sa
1.      1B       as
2.      1B       zf
3.      1B       oi
de gyakorlatban minden egyes osztálynál az utolsó és az utolsó előtti tanuló ugyanazt a sorszámot kapja. Lehet, hogy valami apró banális hiba van benne, de nem tudok rájönni, hogy miért. (Van benne egy oldaltörés, hogy nyomtatásban minden osztály külön oldalon jelenjen meg. Ez tökéletesen működik.)
Itt a kód:
i = 1
       For o = 5 To LR
             
        While .Range("B" & o).Value <> .Range("B" & o + 1).Value
                                             o = o + 1
                      .Rows(o).PageBreak = xlPageBreakManual 'Oldaltörés
          i = 1
                                   Wend
          
                    .Range("A" & o, "A" & o + 1).Value = i 'Sorszámozás
       i = i + 1
          
                  Next

Segítséget előre is köszönöm!
Mutasd a teljes hozzászólást!
Szia!
Próbáld ezt ki:

Sub sorszamoz() Dim LR As Integer, o As Integer LR = Range("B1").End(xlDown).Row With ActiveSheet .Range("A2") = 1 .Range("A3", "A" & LR).Formula = "=if(B3=B2,A2+1,1)" .Range("A3", "A" & LR).Value = .Range("A3", "A" & LR).Value For o = 2 To LR If .Range("B" & o).Value <> .Range("B" & o + 1).Value Then .Rows(o).PageBreak = xlPageBreakManual Next End With End Sub
Itt az első sor fejléc, a második sortól kezdődnek az adatok.
Ezért kerül az A2 cellába 1. A következő sor beírja a képletet az A oszlopba, a második sor pedig átalakítja értékké.
Majd a ciklus beteszi az oldaltöréseket.
Arra figyelj, ha az adataid az 5. sorban kezdődnek, akkor az A5 cella értéke legyen 1 és a ciklus kezdődjön 5-től.
Üdv.
Mutasd a teljes hozzászólást!

abcd