Hirdetés

Keresés

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

  • Fferi50

    Topikgazda

    válasz #43762 üzenetére

    Szia!
    Talán indirekt függvénnyel megoldható lenne...
    A munkalapok neveit felírod az első (vagy a 100. sorba) ebben a formában:
    '12th July ''06'!
    Az aposztrófok azért kellenek, hogy a nevet értelmezni tudja a képletben.
    Ezután a képlet, ha pl. a B oszlopban kezdődnek a munkalap nevek:
    =INDIREKT(B$1 & "B5")
    Ezt végig lehet húzni a soron jobbra és így az első sorban levő munkalapról a B5 cella értéke kerül bele.
    Ezt még lehetne kombinálni pl. azzal, hogy a második sorban x-eket teszel abban az oszlopban, amelyik adatra szükséged van.
    Akkor a képlet (nyilván legalább a harmadik sortól):
    =HA(B2="x";INDIREKT(B$1 & "B5");"")
    Vagyis csak akkor lesz benne értékes adat, ha x van a B2 cellában. Ez a képlet is húzható jobbra.
    A plusz munka - ami szerintem megéri, hogy a munkalapok neveit ki kell gyűjtened egyszer.
    Erre egy kis makró:
    Sub nevkigyujto()
    Dim sh As Worksheet, x As Long
    x = 2
    For Each sh In Sheets
        If sh.Name <> ActiveSheet.Name Then
           If InStr(sh.Name, "'") > 0 Then
           Cells(1, x).Value = "'" & Replace(sh.Name, "'", "''") & "'!"
           Else
           Cells(1, x).Value = "'" & sh.Name & "'!"
           x = x + 1
           End If
        End If
    Next
    End Sub
    Ez abban a formában gyűjti ki az első sorba a munkalap neveket, hogy az INDIREKT függvényben használni lehessen.
    Szúrd be az üres munkalapot a többiek elé és futtasd le a makrót. Ha utána már nincs rá szükséged, akkor mentésnél hagyd figyelmen kívül a makrós figyelmeztetést - egyébként makróbarátként vagy bináris fájlként (xlsm ill. xlsb) kell mentened.
    A makrót Alt+F11 után Insert Module részbe kell bevinned.

    Üdv.

  • szricsi_0917

    tag

    válasz #43762 üzenetére

    Szia

    Ebből a videóból próbálj mazsolázni, mert szerintem a Power Query a megoldás számodra, de a nálam hozzáértőbbek megcáfolnak, ha nem lenne igazam.

  • Delila_1

    veterán

    válasz #43762 üzenetére

    Abszolút próba nélkül!
    Vegyél fel egy üres lapot, aminek add a Gyűjtőlap nevet. Legyen ez az utolsó lap, hogy ne zavarja meg a makrót a lapok sorrendjében.
    A makrót modulba másold (a Téma összefoglaló szerint), és indulhat.

    Sub Kigyujtes()
    Dim lap As Integer, sor As Integer
    Sheets("Gyűjtőlap").Select

    sor = 2
    For lap = 65 To 122
    Cells(sor, 1) = Sheets(lap).Range("B5")
    Cells(sor, 2) = Sheets(lap).Range("B8")
    Cells(sor, 3) = Sheets(lap).Range("B12")
    sor = sor + 1
    Next
    End Sub

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