Ú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.

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