Keresés

Új hozzászólás Aktív témák

  • Delila_1

    veterán

    válasz Pulsar #5697 üzenetére

    Egy kicsit átalakítottam arra az esetre, ha nincs szükséged a laponkénti összegzésre, és a Data lapon egy összegben akarod látni az A14 cellában az összes lap megfelelő sorainak számát.

    Sub Xek_1()
    Application.ScreenUpdating = False

    Dim sor, darab, lap, sor_data
    darab = 0
    For lap = 2 To Worksheets.Count
    Sheets(lap).Select
    For sor = 1 To ActiveSheet.UsedRange.Rows.Count
    If Cells(sor, 4) = "y" And Cells(sor, 13) = "o" _
    And Cells(sor, 17) = "x" Then darab = darab + 1
    Next
    Next lap
    Sheets("Data").Cells(14, 1) = darab

    Application.ScreenUpdating = True
    End Sub

    Az Application.ScreenUpdating = False sor leállítja a képernyő frissítését, az Application.ScreenUpdating = True pedig visszaállítja azt. Ezt azért tettem be, hogy ne zavarjon, hogy a program egyik lapról a másikra "ugrál".

  • Delila_1

    veterán

    válasz Pulsar #5697 üzenetére

    Nem egészen tiszta, mit akarsz 114-szer átrakni.
    Átírtam úgy a makrót, hogy a Data lapon gyűjti össze az adatokat az A2-től kezdve. Az A oszlopba beírja a munkalap nevét, mellé a B-be a darabszámot.
    A Data lap legyen a füzetben az első helyen.

    Nagy különbség! A lapokon a Q oszlopban szereplő x szöveg, míg a makróban lévő szám. Hogy ne zavarjon az azonos kinézet, az x változó nevét átírtam darab-ra, de csak azért, hogy ne zavarjon.

    Sub Xek()
    Dim sor, darab, lap, sor_data
    darab = 0
    sor_data = 2
    For lap = 2 To Worksheets.Count
    Sheets(lap).Select
    For sor = 1 To ActiveSheet.UsedRange.Rows.Count
    If Cells(sor, 4) = "y" And Cells(sor, 13) = "o" _
    And Cells(sor, 17) = "x" Then darab = darab + 1
    Next
    Sheets("Data").Cells(sor_data, 1) = Sheets(lap).Name
    Sheets("Data").Cells(sor_data, 2) = darab
    darab = 0
    sor_data = sor_data + 1
    Next lap
    End Sub

Új hozzászólás Aktív témák