-
Fototrend
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Fferi50
Topikgazda
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 Longx = 2For Each sh In SheetsIf sh.Name <> ActiveSheet.Name ThenIf InStr(sh.Name, "'") > 0 ThenCells(1, x).Value = "'" & Replace(sh.Name, "'", "''") & "'!"ElseCells(1, x).Value = "'" & sh.Name & "'!"x = x + 1End IfEnd IfNextEnd 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.
-
Delila_1
veterán
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
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Formula-1
- Sony Xperia 10 VI - vajon miben bízhat?
- Fejhallgató erősítő és DAC topik
- Kutyának sem kellenek a 8 GB-os VGA-k?
- Hogy is néznek ki a gépeink?
- Elektromos cigaretta 🔞
- PlayStation 5
- Luck Dragon: Asszociációs játék. :)
- Futás, futópályák
- További aktív témák...
- Samsung Galaxy S24 128GB, Kártyafüggetlen, 1 Év Garanciával
- Death Stranding Director s Cut
- BESZÁMÍTÁS! Asus H370-A i5 9600K 16GB DDR4 512GB SSD RTX 2060 Super 8GB Zalman T7 Zalman 500W
- ÁRGARANCIA! Épített KomPhone Ultra 7 265KF 32/64GB RAM RTX 5070 Ti 16GB GAMER PC termékbeszámítással
- ÁRGARANCIA! Épített KomPhone Ultra 9 285K 64GB RAM RX 9070 XT 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő
Fferi50
