Keresés

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

  • Delila_1

    veterán

    válasz commanDOS #43837 üzenetére

    Írtam hozzá egy makrót. A 6 lap az első helyen legyen, és vegyél fel egy új lapot Összegző névvel, vagy írd át a makróban ezt a nevet.
    Ha az egyes lapokon foglalt az AA oszlop, akkor a makróban 3 helyen (csillagokkal jelöltem) írd át az oszlop betűjelét olyanra, ahol biztosan nincs egyik lapodon sem adat.

    Az egyes lapokról az Összegző lapra egymás alá másolja a tartalmukat, közöttük egy sorral, ahol az első, A oszlop annak a lapnak a nevét tartalmazza, ahonnan az adatok származnak. Üres sorok itt már nem lesznek.

    Sub Osszegzes()
    Dim lap As Integer, ide As Long, usor As Long, sor As Long

    Sheets("Összegző").Cells = ""
    Sheets(1).Rows(1).Copy Sheets("Összegző").Range("A1")

    For lap = 1 To 6
    ide = Sheets("Összegző").Range("A" & Rows.Count).End(xlUp).Row + 1
    usor = Sheets(lap).Range("A" & Rows.Count).End(xlUp).Row
    Sheets(lap).Rows("2:" & usor).Copy Sheets("Összegző").Range("A" & ide)
    Sheets("Összegző").Cells(ide, "AA") = Sheets(lap).Name '***
    Next

    With Sheets("Összegző")
    usor = .Range("A" & Rows.Count).End(xlUp).Row
    For sor = usor To 2 Step -1
    If Application.WorksheetFunction.CountA(.Rows(sor)) = 0 Then .Rows(sor & ":" & sor).Delete
    If .Cells(sor, "AA") > "" Then '***
    Rows(sor).Insert
    .Cells(sor, 1) = Cells(sor + 1, "AA") '***
    End If
    Next
    .Columns("AA").Delete
    End With
    End Sub

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

Hirdetés