Hozzászólások
-
SzerzőBejegyzés
-
Az összeszámoló képlet:
=DARABTELI(B:B;"*cigi*")
Az Immediate ablakban (VBE-ben Ctrl+g) a ?activeworkbook.Path megadja az aktív fájl útvonalát.
2018-03-05-11:08 Hozzászólás: [Resolved] TARC táblázat automatikus kitöltése a megfelelő cellában #4489Újra elküldöm. Az volt a hiba, hogy az INDEX függvényen belül a második HOL.VAN, ami az oszlopszámot keresi ki, az adatlap_% lap 4. sorára hivatkozott, holott azon a lapon a 2. sorban vannak a címek.
Olvasd el figyelmesen azt a hozzászólásomat, ahol részletesen leírom az INDEX-HOL.VAN páros működését.
Attachments:
You must be logged in to view attached files.Még egy módszer: ThisWorkbook laphoz:
Private Sub Workbook_Open() Dim leir As String, leir1 As String leir = "Két egész számot összegez" leir1 = "Két egész számot összeszoroz" Application.MacroOptions macro:="összead", Description:=leir Application.MacroOptions macro:="szoroz", Description:=leir1 End Sub
Modulba:
Function összead(a As Long, b As Long) összead = a + b End Function
Function szoroz(a As Long, b As Long) szoroz = a * b End Function
Csak a Sub kezdetű makróknál tudsz így leírást adni.
Funkcióknál más lehetőség van a help megadásához, de az többször róba után addig él, amíg beírom. 🙁
http://www.ozgrid.com/VBA/DesciptionToUDF.htm2018-02-28-18:58 Hozzászólás: [Resolved] TARC táblázat automatikus kitöltése a megfelelő cellában #4470Töröld a -1-eket a képletekből. Váltakozva hol a kék százalékot, hol a piros értéket akarod megjeleníteni.
2018-02-28-18:40 Hozzászólás: [Resolved] TARC táblázat automatikus kitöltése a megfelelő cellában #4468Szívesen, örülök, hogy összejött.
Rögzíts egy makrót, aminek a neve legyen a készítendő UDF név, akár üres is lehet, nem kell bele semmi.
Alt + F8-cal megjeleníted a makrókat, az újat kiválasztod, az Egyebeknél a leírásnál beírod a súgó szöveget.
A makró Sub-ját átírod Funtion-ra, és befejezed.Szia!
Próbáld így:
Private Sub Workbook_Open() Dim lap As Integer For lap = 1 To Sheets.Count Sheets(lap).Unprotect Password:="" Next ActiveWorkbook.RefreshAll For lap = 1 To Sheets.Count Sheets(lap).Protect Password:="" Next End Sub
A füzet megnyitásakor az összes lap védelmét feloldja, elvégzi a frissítést, majd minden lapot újra levéd.
2018-02-28-15:09 Hozzászólás: [Resolved] TARC táblázat automatikus kitöltése a megfelelő cellában #4463A profil lap képletében az első HOL.VAN függvényed az adatlap_% lap B oszlopában keresett. Addig jó is volt ez, míg be nem szúrtál egy oszlopot a B elé.
Másik hiba is volt. Az adatlap_% lap B oszlopában a számított értékek – a megjelenítéstől eltérően – törtek, ezért a sort kereső HOL.VAN függvény nem találta meg a kerek számokat. A képleteket beágyaztam a KEREKÍTÉS függvénybe, így már egész számok között keres a profil lap függvénye.
Attachments:
You must be logged in to view attached files.2018-02-27-19:08 Hozzászólás: [Resolved] TARC táblázat automatikus kitöltése a megfelelő cellában #4458Ezt írtad az egyik hozzászólásodban:
„…elvileg a piros betűs %-kal dolgoztál, de nekem a kék betűsekkel kellene (1%, 2%, 3% , stb)”
A most belinkelt füzetben viszont a pirosakat hoztad be a képletekkel.
A profil lap 3. sorában még most is egyforma címek vannak (M3, P3), ezek miatt hamis eredményeket kapsz. A Nézet menüben nyiss egy új ablakot, és a Mozaik menüpontban tedd egymás alá a két lapot, ahonnan- és ahova íratod az értékeket. Az O:P tartomány az utóbbiban rossz értékeket kapott.
Miért nem alkalmazod a HAHIBA függvényt?2018-02-27-16:07 Hozzászólás: [Resolved] TARC táblázat automatikus kitöltése a megfelelő cellában #4451Az adatlap_2 lapon módosítottam az összesítő oszlopok címsorát. Ha például a mindennapos tevékenységnél és a motoros ügyességnél is csak össz. pontszám szerepel, az INDEX(HOL.VAN) párossal a motorosnál is az első találat – mindennapos – értéket kapnánk. Az adatlap_% és a profil lap 2. sorában mindenhova hivatkozással vittem be a címeket.
Az adatlap!B5 és az adatlap!B8 cellákban is szerepel a 32-es érték, ez hibát okoz a profil lapon.Egy kis leírás a függvényhez, ami a profil lap B3 cellájában van:
Az INDEX függvényben megadjuk a tartományt, amiben bizonyos cellák értékére van szükségünk. Ez a tartomány a mi esetünkben az ‘adatlap_%’!$A:$AIA függvény második paramétere a sorszám, a tartománynak ebben a sorában lévő adatot keressük. A HOL.VAN függvénnyel keressük ki ezt a sort.
HOL.VAN($A3;'adatlap_%'!$B:$B;0)
Ez azt jelenti, hogy az A3 értéket (100-at) az adatlap_% B oszlopában keressük. Az utolsó paraméter, a nulla mondja meg a függvénynek, hogy pontos értéket keresünk. Lehetne még közelítő keresés is, de az most nem érdekes. A hol.van értéke itt 3, mert a másik lap 3. sorában találja meg a hol.van a 100-as értéket.Az INDEX harmadik paramétere az oszlopszám. Itt határozzuk meg, hogy a tartomány melyik oszlopában szereplő értéket akarjuk megkapni. Ezt is a HOL.VAN függvénnyel határozzuk meg.
HOL.VAN(B$2;'adatlap_%'!$2:$2;0)
Itt az adatlap_% második sorában keressük meg a címsorban szereplő értéket (B$2). A fenti képlet a 4. oszlopot adja meg, mert ott találja meg a szobatisztaság szöveget. Nekünk viszont az előtte lévő oszlop adata kell, ezért a megtalált oszlopszámból levonunk 1-et.
HOL.VAN(B$2;'adatlap_%'!$2:$2;0)-1)
A profil lap A oszlopában most olyan számok is vannak, amik az adatlap_%-on még nem szerepelnek. Mivel ebben az esetben a HOL.VAN függvények #HIÁNYZIK értéket adnának, a teljes képletet beágyaztam a HAHIBA függvénybe. Ha hiba van az INDEX-HOL.VAN párosban, akkor a HAHIBA 2. paraméterében megadott „” (üres string) lesz az eredmény.
Még most is baj van a profil lap felépítési logikájával. A Mindennapos tevékenység csoportban az első megnevezés, a szobatisztaság előtt szerepel a %, a további 3 csoportban nem. Nem látom át a teljes feladatot. A részletesen leírt függvényt most már biztosan át tudod alakítani a saját igényeidhez.
A második, tarc-1-2.xlsx a jó.
- A hozzászólás módosításra került: 6 years, 2 months telt el-delila.
- A hozzászólás módosításra került: 6 years, 2 months telt el-delila.
Attachments:
You must be logged in to view attached files.2018-02-27-08:56 Hozzászólás: [Resolved] TARC táblázat automatikus kitöltése a megfelelő cellában #4447Az adatlap_% elrendezésében következetlenséget látok. A Mindennapos tevékenység résznél a % oszlop a megnevezés (pl. szobatisztaság) előtt áll, a többi kategóriában viszont fordítva van. Jobb lenne az egységes elrendezés. Melyik legyen érvényes?
Szia!
A névadás után az érvényesítésnél a Forrás mezőben állva F3 billentyűre megjelenik az elnevezett tartományok listája, ezekből választod ki a megfelelőt.
2018-02-24-17:23 Hozzászólás: [Resolved] TARC táblázat automatikus kitöltése a megfelelő cellában #4419Szívesen. 🙂
2018-02-22-07:24 Hozzászólás: [Resolved] TARC táblázat automatikus kitöltése a megfelelő cellában #4414Szia!
Az INDEX, HOL.VAN párossal írathatod ki az értékeket.
A függvény szintaktikája: INDEX(tömb;sor_szám;oszlop_szám)
A tömb az adatlap_% A:AI tartománya, a sor- és oszlopszámot a HOL.VAN függvénnyel keresheted ki, szintén az adatlap_% lapon.A profil lap B3 képlete
=INDEX('adatlap_%'!$A:$AI;HOL.VAN($A3;'adatlap_%'!$B:$B;0);HOL.VAN(B$2;'adatlap_%'!$2:$2;0))
lesz, amit le-, és jobbra másolva megkapod a szükséges adatokat a teljes lapon.
Figyeld meg a $ jelek alkalmazását, amikkel a keresendő sort, ill. az oszlopot rögzíted a másoláshoz.
Üdv, Kati
A kakaós csiga is jó ötlet, sütök is!
Szia Titok!
A Munka4 lapon már volt mindenféle adat, amik közül a hónapokat tartalmazót kibővítettem egy oszloppal.
Ez lehetővé tette a naptár lap C8 cellájába írt nagyon vidám (ha-ha-ha) függvényed kicserélését egy sima fkeres-re.=FKERES($I$3;Munka4!$E$19:$F$30;2;0)*1
Attachments:
You must be logged in to view attached files.Én is pontokkal vittem be, mégis beteszi ezt az egy hibát.
Szia!
Vidd fel a római számokat emelkedő sorrendben az egyéni listákhoz (Az Excel beállításai, Népszerű elemek, Alapvető beállítások az Excel használatához, Egyéni listák).
Állj be a rendezendő tartományba, Rendezés, Egyéni sorrend. A Sorrend legördülőjében az A-Z helyett az Egyéni listát választva kattints a felkínált római számokra.
Szerk.: többszöri próba esetén valamiért a IX. kerület a IV. után jelenik meg rendezéskor, nem tudni, miért. Utólag kijelölve a IX. kerületi adatokat a helyükre húzhatod, ha Nálad is előjön ez a furcsaság. A többivel nálam nincs gond.
- A hozzászólás módosításra került: 6 years, 2 months telt el-delila. Indok: Hiba a rendezésben
Nagyon szívesen. 🙂
A D:E képleteket is elhagyhatod, ha a C2-ben ezt adod meg:
=INDEX(J:L;1;HOL.VAN(MAX(J2:L2);J2:L2;0))
- A hozzászólás módosításra került: 6 years, 2 months telt el-delila.
Átalakítottam a füzetedet. A naptár lap helyére egy üres lapot vittem be, amin csak egy, a userformot indító gomb van. A Munka4 lapot elrejtettem, azon vannak a szükséges adatok.
A formon nézd meg a ComboBoxok RowSource tulajdonságait, a Névkezelőben pedig az elnevezett tartományokat.
Tanulmányozd a felviteli gombokon az ellenőrzéseket, az egyes gomboknál pedig az AfterUpdate-et.A Kiadásoknál a 3. ComboBox RowSource tulajdonságát a 2. combó határozza meg.
A ThisWorkbook laphoz is rendeltem egy makrót, ami a füzet megnyitásakor az első lapra áll.Attachments:
You must be logged in to view attached files.Szia!
A sorszám kikeresése nem szükséges. Az oszlopszámot felhasználva a C2 képlete
=INDEX(I:L;1;E2)
C49-től nézd a feltételes formázást.
Csúnya – nem csúnya, attól függ, mire akarod használni. Cégeknél szokásos a dekádonkénti tervezés, ellenőrzés, ott a 10 napos bontás célszerű.Szia!
Kiváló érzékkel tudod megtalálni a lehető legbonyolultabb megoldásokat.
Összeállítottam egy új füzetet a csatolmányod alapján.
A cellák összevonását lehetőleg el kell kerülni. Semmi szükség rá, hogy pl. 2 sorban (és több oszlopban) helyezd el a hónap nevét. A sorok magasságát növelheted, az oszlopok közötti középre helyezés megoldható a cellaformázásnál. Beírod az adatot az első oszlopba (J3), kijelölöd a tartományt, aminek a közepén szeretnéd látni (J3:O3), cellaformázás, igazítás, vízszintesen a kijelölés közepére. Ezt egyszer megcsinálod, majd a C9:D9 tartományt kijelölve az F4 ismétli a műveletet.A Munka3 lapon elég a költségeket felvinni (táblázattá alakítva), a többi megoldható a naptár lapon. Nézd meg a képleteket, és a két léptető cellacsatolását. A P1 karakterének a színét feketére módosíthatod.
Az alsó sorba bevittem egy feltételes formázást, ami a következő hónap napjainak a színét módosítja.
A fájl mérete az eredeti 2/3-a lett.
Attachments:
You must be logged in to view attached files.Úgy érdemes elhelyezni, hogy eltakarja a csatolt cellát.
Attachments:
You must be logged in to view attached files.Szia!
A csatolt képen láthatod a vezérlő beállításait. Nálam a 12 hónap neve az A1:A12 tartományban van, a csatolt cella a D3. Már csak be kell írnod egy cellába: =INDIREKT(„A” & D3), és ott megjelenik a kiválasztott hónap neve.
Attachments:
You must be logged in to view attached files.Szia Potus!
Jól látod, azért küldtem egy teljesen új költségvetést, mert a régit túlbonyolítottad. A helyedben az egyszerűségre, jól kezelhetőségre koncentrálnék. Minél bonyolultabb, annál nagyobb a hibalehetőségek száma. A március! átírása április!-ra a csere funkcióval könnyedén megoldható. A másik módszer, amit az általam küldött fájl 2018-as lapján a C2-ben (is) látsz, sz INDIREKT függvény alkalmazása. Ennek a függvénynek az a hátránya, hogy bármelyik adatot módosítod a füzetben, újraszámolódik. Azért alkalmaztam mégis, mert nem nagy fájlról van szó, elviseli.
Az érvényesítés olyan széles, mint az oszlop, amelyikben alkalmazod.
A + és – jelek a csoportba foglalással hozhatók elő, nézd meg a súgóban.
Jó ha tudod, hogy az összesítő lapon a
=szum(január:december!b23)
képlet összegzi a 12 hónap B23 celláit. Nem kell
=január!b23 + február!b23 ... + december!b23
.
Ebből látszik, hogy az egyes lapok felépítését feltétlenül uniformizálnod kell a helyes eredményhez.„… nem feledve az eredeti koncepciómat, hogy mindent erről a fülről kiindulva szeretnék kitölteni” Bocsi, de ezt nagyon rossz ötletnek tartottam első olvasásra. Átgondolva, ha a 2018-at töltöd ki, mi szükség van a többire? És valóban! Bőven elég 1 lap, nincsenek duplikációk.
Üdv,
DelilaSzívesen. 🙂
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then Application.EnableEvents = False Cells(Target.Row, 1) = Date Application.EnableEvents = True End If End Sub
Teszek fel egy fájlt. A mostani 3 lapon azonos helyen vannak a bevételek és kiadások. Minden kategóriában hagytam üres sorokat, ahova újakat adhatsz meg. Új megnevezés esetén kijelölöd az összes lapot, majd az éppen aktuális lapon a B oszlopba beírod az új megnevezést. MEGSZÜNTETED A LAPOK KÖZÖS KIJELÖLÉSÉT!
Hasonlóan jársz el új sor beszúrásakor. Fontos, hogy minden lapon azonos sorban legyenek az azonos megnevezések.A többi hónaphoz: kijelölöd a január lapot, a Ctrl nyomva tartása mellett áthúzod a február lap mögé, majd átnevezed a lapot. Most az új (március) lapon a C oszlopban törlöd az adatokat, de az összesítéseket nem. Ezt az kiürített lapot másolod tovább.
A 2018 lapon folytathatod a B:C oszlopok képleteinek a másolását.
Figyeld meg a csoportosításokat. Jelenleg a 2018 lapon az egyes csoport látszik, a januáron a kettes, a februárin pedig a hármas. A táblák bal oldalán fent, valamint a + és – jelekre kattintva módosíthatod a csoportok láthatóságát.
- A hozzászólás módosításra került: 6 years, 3 months telt el-delila.
Attachments:
You must be logged in to view attached files.Először rendet kell teremtened a fájlban, mert nagy a zűr. Például a 2018 lap C16-os cellája összesítené a januári kiadásokat [=SZUM(C17:C25)], de a megadott tartományban szövegek vannak.
A D16 a februári kiadások összesítése lenne. Ott azon kívül, hogy szövegeket választhatsz ki érvényesítések segítségével, az egyes sorok a január lap celláira hivatkoznak. Például a D19 képlete: =január!M5Szívesen.
A válaszadás nem kötelező, hanem önkéntes. Szóval semmi bocsánatkérés.A Cells-nél az első szám a sor, a második az oszlop – nem úgy, mint a Range-nél.
Range(Cells(2, 3).Value, Cells(2, 5).Value).Select
Nincs mit. 🙂
A +1 és -1 helyére írd be a cella címét: +Range(„C2”).Value, -Range(„C2”).Value. Írd a Range elé a lapnevet, ahonnan az értéket veszed.
Szia Karesz!
Duplaklikk eseményhez rendelve
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Range(Cells(1, 1).Value, Cells(2, 1).Value).Select
End SubBeszúrsz a 17. sor fölé egy újat, ott adod össze a tételeket. A laphoz rendelt makró
If Target.Row = 17 Then
sorában a 17 helyére 18.at írsz.
Örülök, hogy elnyerte a tetszésedet, szívesen.
Jöhet a makróbarátként mentés.Az éves összesítőre ugrásodat nem láttam, betettem helyette a január lapra egy visszaugrást.
2003-ban a karakter nagyságát kisebbre kell állítani, magasabb verzióban jó lesz.A gombot másolhatod a többi lapra, viszi magával a makró-hozzárendelést.
- A hozzászólás módosításra került: 6 years, 3 months telt el-delila. Indok: Gomb másolása
Attachments:
You must be logged in to view attached files.Szia!
Beírtam a makrókat. A lapok nevét úgy adtam meg, ahogy a 2018 lap 17. sorában vannak, mert ezekre hivatkozom a laphoz rendelt, eseményvezérelt makróban.
A 2018 és a január lapokon a csúf #ZÉRÓOSZTÓ eredményű képleteket átírtam.
2003-as Excelben a HAHIBA helyén _xlfn.IFERROR, az ÁTLAGHA helyén _xlfn.AVERAGEIF függvényt találsz.
Felteszem, hogy 2003-nál magasabb verzióban dolgozol, másképp nem tudtad volna megadni az említett függvényeket. Ebben az esetben az xls kiterjesztésű fájlt makróbarátként, xlsm kiterjesztéssel mentsd el.Jól mutat a fekete alapon sárga előtér, de hosszabb ideig dolgozva fárasztja a szemet. Érdemes kevésbé elütő elő- és háttérszínt alkalmazni. Ez csak egy tanács, nem kötelező betartani.
Üdv,
DelilaAttachments:
You must be logged in to view attached files.Szia Potus!
Semmi ok a szégyenkezésre!
Mivel nem tudtad belinkelni a fájlodat, úgy tűnik, félreértettem a dolgot.A mostani értelmezésem szerint az Összesítő lapon 2 érvényesítés van: hónapok, és kategóriák. Ezen értékek szerint kell a kiválasztott hónap lapján a kiválasztott kategória sorára lépni.
Csatolom a füzetet, amiben az egyes lapokon különböző sorokban (de mindenhol az A oszlopban) vannak a kategóriák, de előfordul, hogy egyes lapokon hiányoznak.
Az Összesítő laphoz rendeltem az eseményvezérelt makrót. Ez az A3 cella módosításakor a lapnev változóban eltárolja az A1 cellában kiválasztott lapnevet, a sor változóban pedig azt a sorszámot, ahol a lapnéven megtalálja a kiválasztott kategóriát. Meghívja a Module1-ben lévő Ugras makrót, átadva a fenti 2 értéket. Az Ugras makró kiválasztja a kívánt helyet.
Az Összesítő lap lapfülén jobb klikk, a Kód megjelenítése parancsra belépsz a makró szerkesztőbe, ahol jobb oldalon láthatod a laphoz rendelt makrót. Bal oldalon a Module1-re kattintva nézheted meg az Ugras makrót.
Mint látod, a füzet makróbarátként, xlsm kiterjesztéssel van mentve.
Jó munkát, üdv,
DelilaAttachments:
You must be logged in to view attached files.Szia!
A csatolt képen láthatod a hivatkozás címzését.
Az Összesítő lap A1 cellájába vittem be a hivatkozást, ami a Január lap (az alsó kép) A3 cellájára mutat.Attachments:
You must be logged in to view attached files.Nagyon szívesen, örülök hogy összejött.
Megszüntetjük:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 7 Then Application.EnableEvents = False If Target <> "" Then Target.Offset(0, -4) = Format(Date + Time, "yyyy.mm.dd. h:mm") Else Target.Offset(0, -4).ClearContents End If Application.EnableEvents = True End If End Sub
Szia!
Próbáld így
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 7 Then Application.EnableEvents = False Target.Offset(0, -4) = Format(Date + Time, "yyyy.mm.dd. h:mm") Application.EnableEvents = True End If End Sub
Delila
Az INDEX, HOL.VAN párossal.
A tartomány a Műszak lapod felső táblázata, a sort kikeresteted a neveket tartalmazó oszlopban, az oszlopot pedig a dátumokat tartalmazó sorban.Szivi. 🙂
A B1 cellába írd be az évet, a B2-be pedig a hét számát.
A képen látod a D1 és a E1 cella képletét. Az E1-et húzd jobbra J1-ig, hogy a teljes hét meglegyen.Attachments:
You must be logged in to view attached files.Miután elküldtem, észrevettem, hogy hiányzik a hónap első napja. Az AH oszlop elé szúrj be egy oszlopot. A Műszak lap C2 képlete legyen =INDEX(Naptár!$A$1:$AF$14;HOL.VAN($A$2;Naptár!$A:$A;0);OSZLOP()-1), ezt húzd jobbra az AG2-ig.
A lenti képletekben is kell javítani. Mégis elküldöm az újabb verziót.
- A hozzászólás módosításra került: 6 years, 4 months telt el-delila.
Attachments:
You must be logged in to view attached files.Az A16-ba fixen írtad be a kiválasztott személy nevét. Azt hittem az alsó táblázatból annyit akarsz készíteni, ahány dolgozó van. Az A16-ba tettem egy érvényesítést a dolgozó kiválasztásához, a képleteket pedig (az összegzést is) átírtam.
Mivel minden képletben hivatkozni kell a sorra, ami a felső táblázatban a kiválasztott dolgozóhoz tartozik, az amúgy is rejtett első sorba, a B1-be tettem ennek a megkeresését.
Attachments:
You must be logged in to view attached files.Szívesen.
Az alsó táblázatod eredeti, hosszú képleteiben a saját lap 1-1 tartományára hivatkozó részben nem kell beírni a lap nevét. Műszak!A1 helyett ezen a lapon elég az A1. Csak akkor kell beírni a lapnevet, ha másik lap A1-ére hivatkozol.
Szia!
Hosszú lenne elmesélni a módosítások értelmét, de rá fogsz jönni. Nézd meg a csatolt fájl Segédtáblák lapján az L2:N7, és az L9:N13 tartományokat, valamint a névkezelőbe bevitt új neveket. A kezdés a befejezés időit írd át a valóságnak megfelelően.
A Műszak lapra bevittem egy új oszlopot (B), ahol kiválaszthatod a műszakot. Jobb híján a kétféle beosztásnak a Műszak és a Forda nevet adtam. Ha találóbbat adsz nekik, a Műszak lap B oszlopában lévő érvényesítésben, és a névkezelőben is írd át ezeket.
A Műszak lapon a B3:AF8 tartományban írtam át az érvényesítéseket, valamint a B17:AF18-ban a képleteket. Az utóbbiban a cellaformátumot is módosítottam.Előszeretettel alkalmazod a cellák összevonását ott is – például a Segédtáblák!U3:V3-ban –, ahol elég lenne az U oszlopot szélesebbre venni.
A T2:V2 helyett ekkor elég a T2:U2 a címnek, aminek a középre helyezéséhez tegnap írtam a „Kijelölés közepére” formázást. Az Excel megengedi a cellák összevonását, de sok esetben nem tudja jól kezelni.Attachments:
You must be logged in to view attached files.A Cells(2) a B1 cella címe. Nem lehet egy makrót ráhúzni egy másik feladatra. 🙂
Csatolom a füzetet. A 2. lap B11 és F11 celláinak a módosulására írja be a makró a megfelelő adatokat. Ha bővíteni akarod, másold az A:C oszlopokat, majd bővítsd ki a
If Target.Address = "$B$11" Or Target.Address = "$F$11" Then
sort az új címekkel.Attachments:
You must be logged in to view attached files.Szívesen. 🙂
Beszúrtam a Műszak lap tetejére egy sort, amit elrejthetsz. A képletek az N3:N8 tartományban vannak.
Attachments:
You must be logged in to view attached files.🙂
Nem azt akartad? Akkor ne írd át a képletben az A1-et. Jelöld ki a B1:AF1 cellákat, majd a Ctrl gomb nyomva tartása mellett húzd le a B20-ba.
Másold az A1:B1 cellákat a 20. sorba. A B20-ban írd át a keresendő értéket a HOL.VAN függvényben $A$20-ra, majd a B1-et másold jobbra.
A képletben az [=INDEX(Naptár!$A$1:$AF$14;HOL.VAN($A$1;Naptár!$A:$A;0);OSZLOP())] a félkövérrel írt $A$1 helyére írd a keresendő hónapot. Pl. ha a 10. sorba másolsz, akkor $A$10 legyen a keresendő cella. Csak a B1-et másold, írd át a keresendő cella helyét, majd másold jobbra.
Hova akarod másolni?
Szívesen. Remélem, ezt tudod majd használni.
A formázást a Műszak lapon is meg kell adni.
A Segédtáblák lapra a 9. sortól felvittem pár új segédtáblát, ezeknek az alapján történik a színezés. Nézd meg a névkezelőt!
Szerintem zavaró a számok mellett a *, /, #, . és ! karakter. Ezek helyett marad a színezés, és még meg sem kell jegyezni a kiegészítő karaktereket. A feltételes formázás automatikusan színez a dátumok szerint.
Az egyes naptári napok besorolását (munkanap, pihenő, stb.) a https://www.nefelejtsdel.hu/index.php?page=remindercal&language=hu oldalról vettem.Attachments:
You must be logged in to view attached files.Szívesen.
Szia!
Nézd meg a B25:AF27 tartományt, majd a fenti táblában az érvényesítéseket. Az alsó 3 sor elrejthető.
Delila
Attachments:
You must be logged in to view attached files.Szia!
Csatolom a makróbarátként mentett fájlodat.
Nincs mágikus gomb, hanem a B1-ben kiválasztva a nevet indul a laphoz rendelt eseményvezérelt makró. Kitölti a B4:C4 cellákat (ha van a kiválasztott dolgozónak túlórája az adott 7 napban), majd nyomtat.Delila
Attachments:
You must be logged in to view attached files.Szia Galamb!
Egy másik fórumon kaptál egy többszörösen egymásba ágyazott HA függvényt.
Ha módosíthatsz annyit a feladaton, hogy a minta táblázat első oszlopában csak a -tól értékek szerepeljenek (1; 28; 45; 53 és 78), akkor egy egyszerű FKERES függvény is elegendő. A képlet ebben az esetben =FKERES(A8;Segédtáblák!$E$6:$F$10;2;IGAZ).
A súgóban megtalálod az FKERES függvény leírását, ott is a tartományban_keres paramétert nézd meg arra az esetre, ha közelítő értéket szeretnél meghatározni.
Üdv, Delila
2017-11-22-07:49 Hozzászólás: [Resolved] Sorbarendezés mezőre kattintva dinamikusan futás közben #3994Autoszűrőt kell alkalmaznod.
A táblázatban állva Kezdőlap | Szerkesztés csoport | Rendezés és szűrés | Szűrő hatására a címsor mindegyik celláján megjelenik egy kis lefelé mutató nyíl. Ezek bármelyikét legördítve választhatod a táblázatnak az aktuális oszlop szerinti növekvő-, vagy csökkenő rendezését.
Részemről szívesen. 🙂
Szia Péter!
Átírtam a tegnapit. A fájlneveket nem tömbben, hanem az AA1:AA15, ill. az AC1:AC15 tartományba viszem be. A bevitel után rendezem a neveket ABC szerint. Ezt egy makrórögzítéssel létrehozott Rendezes makróval végeztetem, amit testre szabtam, és a Masolas makróból hívok meg, átadva a szükséges változók értékeit.
Ezután a két tartományban lévő fájlokat nyitom meg páronként, és végzem el a lapok másolását.Sub Masolasok() Dim utvonal As String, FN As String, sorszam As Integer Dim WB As Workbook, lapnev As String, ter As Range, kulcs As String Dim WBE As Workbook Application.ScreenUpdating = False Set WBE = ActiveWorkbook 'aktív, makrót tartalmazó füzet lapnev = ActiveSheet.Name 'aktív lap 'első mappa fájlnevei az AA1:AA15-be utvonal = "F:\első mappa\" FN = Dir(utvonal & "*.xlsx", vbNormal) Do While FN <> "" sorszam = sorszam + 1 Range("AA" & sorszam) = FN FN = Dir() Loop Set ter = Range("AA1:AA15") kulcs = "AA1" Rendezes lapnev, ter, kulcs 'második mappa fájlnevei az AC1:AC15-be utvonal = "F:\második mappa\": sorszam = 0 FN = Dir(utvonal & "*.xlsx", vbNormal) Do While FN <> "" sorszam = sorszam + 1 Range("AC" & sorszam) = FN FN = Dir() Loop Set ter = Range("AC1:AC15") kulcs = "AC1" Rendezes lapnev, ter, kulcs 'másolások For sorszam = 1 To 15 Workbooks.Open "F:\első mappa\" & Range("AA" & sorszam) Set WB = ActiveWorkbook Workbooks.Open "F:\második mappa\" & WBE.Sheets(lapnev).Range("AC" & sorszam) Sheets(4).Copy After:=WB.Sheets(3) ActiveWorkbook.Save ActiveWorkbook.Close ActiveWorkbook.Close Next Application.ScreenUpdating = True MsgBox "Kész a másolás", vbInformation End Sub
Sub Rendezes(lapnev, ter, kulcs) ActiveWorkbook.Worksheets(lapnev).Sort.SortFields.Clear ActiveWorkbook.Worksheets(lapnev).Sort.SortFields.Add Key:=Range(kulcs), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortTextAsNumbers With ActiveWorkbook.Worksheets(lapnev).Sort .SetRange ter .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
Míg Imre előkerül, és megmondja, miért nem jó ez:
Sub Masolasok() Dim tomb(2, 15), utvonal As String, FN As String, sorszam As Integer Dim WB As Workbook 'első mappa fájlnevek feltöltése a tomb() tömbbe utvonal = "F:\első mappa\" FN = Dir(utvonal & "*.xlsx", vbNormal) Do While FN <> "" sorszam = sorszam + 1 tomb(1, sorszam) = FN FN = Dir() Loop 'második mappa fájlnevek feltöltése a tomb() tömbbe utvonal = "F:\második mappa\": sorszam = 0 FN = Dir(utvonal & "*.xlsx", vbNormal) Do While FN <> "" sorszam = sorszam + 1 tomb(2, sorszam) = FN FN = Dir() Loop 'másolások For sorszam = 1 To 15 Workbooks.Open "F:\első mappa\" & tomb(1, sorszam) Set WB = ActiveWorkbook Workbooks.Open "F:\második mappa\" & tomb(2, sorszam) Sheets(4).Copy After:=WB.Sheets(3) ActiveWorkbook.Save ActiveWorkbook.Close ActiveWorkbook.Close Next End Sub
Esetleg ott lehet majd gond, hogy nem biztos, hogy az 1. mappa 1. fájljához kell a 2. mappa 1. fájl utolsó lapja. Lehet, hogy valami szerint (név, mentési idő) párba kell rendezni a fájlokat a másolások elindítása előtt.
Az utvonal változók értékét írd át a saját 2 útvonaladra, minden előfordulásukkor a makró futtatása előtt.- A hozzászólás módosításra került: 6 years, 5 months telt el-delila.
Igazad van, de választanod kell, mi a fontosabb: a szűrés automatikus frissítése, vagy a hibás bevitel helyett az előző állapot visszaállítása.
Örülök, hogy összejött, szívesen.
Szia!
Ehhez makró kell, mégpedig kettő. Az elsőt a Beosztás laphoz kell rendelned: lapfülön jobb klikk, Kód megjelenítése. Ezzel bejutottál a VB szerkesztőbe, ott is a lapod kódlapjához. A jobb oldalon lévő üres területre bemásolod a lenti makrót.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, [C:O]) Is Nothing And _ Application.WorksheetFunction.CountA(Range("C" & Target.Row & ":O" & Target.Row)) > 1 Then AutoSzuro End If End Sub
Ez a makró figyeli a billentyűzetről történő bevitelt. Ha a bevitel a C:O oszlopok valamelyik sorába történt, meghívja a másik makrót (AutoSzuro), amit modulba másolsz: A VB szerkesztőben állva bal oldalon kijelölöd a füzetedet, majd Insert menü, Module hatására új, üres modult kapsz. A jobb oldalon kapott újabb üres felületre bemásolod:
Sub AutoSzuro() Dim usor As Long usor = Sheets("BB Szolgálati hely").Range("C" & Rows.Count).End(xlUp).Row Sheets("BB Szolgálati hely").Range("$C$27:$R$" & usor).AutoFilter Field:=1, Criteria1:="<>" End Sub
A 2. lapon a C:O képleteit tovább kell másolnod lefelé!
Az első lap BB Szolgálati hely táblázatot a helyedben a mostani helyzetéből átmozgatnám fel és jobbra, hogy a bal felső cellája a Q1 legyen, másképp összecsúszik a két táblázat.A makrók beírása után a füzetedet másként, makróbarátként kell elmentened.
Szia!
A 2. lap C27 cellájába tegyél autoszűrőt. Ezt legördítve vedd ki a pipát az (Üres) elől.
A C:O oszlopok képleteit kicsit egyszerűsítettem.
Attachments:
You must be logged in to view attached files.Szívesen, örülök, hogy összejött.
Örülök, hogy segíthettem, szívesen.
Nézd meg az E6:G23 tartomány képleteit.
A sok tétel kimaradt kis dobozait, ha a számuk meghaladta a 216-ot, újabb nagy dobozokba teheted. Persze ha az egyes tételeket más-más vevőnek szállítjátok, akkor nem, a 23. sorra nincs szükség.Attachments:
You must be logged in to view attached files.Ebben az esetben minden tételnél 1 a részleges dobozok száma, mivel a teljes dobozokban 216-tal osztható szám van, a maradék 1 dobozban elfér.
Míg megjön Imre:
Az E6 cella képlete
=INT(D6/216)
Az F6-é pedig=MARADÉK(D6;216)
, ez mindig a kimaradt kis dobozok számát adja.Üdv,
KatiSzia Péter!
A Munka2 lapon lévő táblázatot át kell alakítanod a csatolt kép szerint. A Munka1 lap I2 cellájának a képlete
=FKERES(H2;Munka2!A:B;2;1)
Ennek az eredménye a H oszlopban található százalékhoz tartozó telj. díj.
Attachments:
You must be logged in to view attached files.Add meg az e-mail címedet.
Szia!
A leírásodból úgy tűnik, hogy nem 2 füzetről, hanem 1 füzetben lévő 2 lapról van szó.
Nem tenném Change eseménybe, mert akkor minden beírásnál lefut a laphoz rendelt makró. Inkább egy modulba másolnám a lenti makrót, amit pl. úgy indíthatsz, hogy az F8 funkcióbillentyű hatására megjelenő ablakban kiválasztod a Masolas nevűt, vagy kiteszel a Munka1 lapra egy gombot, amihez hozzá rendeled (jobb klikk) a makrót.Bemásolás: Alt+F11-gyel belépsz a VB szerkesztőbe. Bal oldalon kiválasztod a füzetedet, majd Insert menü, Module. A jobb oldalon kapott nagy fehér felületre másolsz.
Sub Masolas() Dim usor As Integer, sorIde As Long sorIde = Sheets("Munka2").Range("A" & Rows.Count).End(xlUp).Row If sorIde > 1 Then sorIde = sorIde + 1 Sheets("Munka1").Select Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row).Copy Sheets("Munka2").Range("A" & sorIde) End Sub
Indítás előtt írd át a Munka1 és Munka2 lapneveket minden előfordulásuknál a saját lapjaid nevére. Ez a makró a Munka1-ről másol a Munka2-re.
Üdv,
KatiMég annyit, hogy a Kalkulator lapon az Index – Hol.van páros helyett az Fkeres függvényt alkalmaznám. Ha a C3 cella képlete
=HAHIBA($B3/100*FKERES($A3;Táblázat1;OSZLOP();0);””),
akkor ezt húzással másolhatod jobbra az E oszlopig, majd le.Nekem nem akar összejönni az „öröklés”.Mit örököljön, ha eleve nem adtam meg a csatolást? Hogy hivatkozol a képletekkel a ComboBox értékére?
Azt hiszem, lassanként megértem, miről van szó.
Rossz hírem van. Az első lapon minden sorba be kell másolnod a vezérlőt, aminek a ListFillRange tulajdonsága azonos (Kaja, így neveztem el a 2. lap A2:Asok tartományát), viszont a cellacsatolást – LinkedCell – egyenként kell megadnod. Igaz, csak egyszer kell babrálni vele.Lehetne érvényesítést is bevinni az A oszlopba, de ott görgetned kell a sokadik értékig, míg a ComboBox-nál a beírt karakter(ek)kel kezdődő adatra áll a fókusz. Könnyebb vele bánni.
Attachments:
You must be logged in to view attached files.Észrevettem egy hibát. Mikor az első lapon nincsenek kiválasztott adatok, törli a 2. sort.
Csatolom a javított fájlt.Attachments:
You must be logged in to view attached files.Szia Krisztina!
Csatolok egy füzetet. Ha nem gond a makrós megoldás, talán alkalmazhatod.
Az Adatok lap A1 cellájába tettem egy TextBoxot, ebbe írd be a szűrendő értéket. A leszűrt sorokat a Másolás gomb segítségével átmásolhatod a Kalkulator lapra.A TextBox1 tartalmát kitörölve megszűnik a szűrt állapot.
Üdv,
KatiAttachments:
You must be logged in to view attached files.Szívesen.
Ha arra járok, megkereslek. 🙂Szia!
Az ilyen jellegű feladatokhoz az Excelnek van egy hatékony szolgáltatása, a kimutatás. A csatolt fájlban elkészítettem pár kattintással a 3 kimutatást, és írtam némi magyarázatot hozzá.
Üdv,
KatiAttachments:
You must be logged in to view attached files.Az utóbbit kerestem, össze is jött.
Annyi a szépséghibája, hogy csak a teljes függvényhez enged leírást csatolni, az egyes paraméterekhez nem.
3 paraméterem van, amikből az utolsó opcionális, logikai. Ez utóbbihoz lett volna jó egy kis magyarázat. Úgy oldottam meg (a kevés felhasználható karakterrel), hogy a leírásba az utolsó paraméter 2 állásának a szerepét írtam le.Rád mindig számíthatok, köszönöm!
Örülök, hogy összejött.
Szerencsére másodállásban gondolatolvasó vagyok, ezért sikerült kitalálnom, mit szeretnél elérni.Csatolok egy fájlt, benne egy saját függvénnyel. Remélem, erre gondoltál.
Üdv,
KatiAttachments:
You must be logged in to view attached files.Köszönöm, Imre a javítást.
Úgy gondoltam, ha 1-1 csoporthoz nem sok ember tartozik, a Case utasításban fel lehet sorolni a neveket.Case "Péter", "Pál"
Lehet, hogy nem is erről van szó. Előfordulhat, hogy az egyes felhasználók bizonyos lapokat nem láthatnak. Majd kiderül, ha a kérdező újra megjelenik.
Több dolog ismeretlen. Vegyük, hogy 1 lap bizonyos sorait, oszlopait láthatják a különböző felhasználók a saját gépükön. Ilyenkor a username ismeretére van szükség.
A lapon elrejted a sorokat és oszlopokat. Csak az maradjon látható, amit 1 bizonyos felhasználó láthat. Nézet menü, Munkafüzetnézetek, Egyéni nézetek, Hozzáadás. Nevet adsz a nézetnek. Ezt pl. Kiss Jóska láthatja.
Nagy Piroskához újabb nézetet adsz meg az fenti minta szerint. A saját nevedhez legyen minden látható.
Mikor minden nézetet bevittél, levéded a lapot.A ThisWorkbook-ba beírod a makrót.
Private Sub Workbook_Open() Dim nev As String, csoport As String Sheets(1).Select ActiveSheet.Unprotect Password:="Jelszó" nev = Environ("username") Select Case nev Case "Kiss Jóska" csoport = "Csoport_1" Case "Nagy Piroska" csoport = "Csoport_2" Case "Saját nevem" csoport = "Mind" End Select ActiveWorkbook.CustomViews(csoport).Show ActiveSheet.Protect Password:="Jelszó" End Sub
Szerk: ez megint nagyon csúf lett, pedig a makrót a code kiválasztása után másoltam be. Hogy lehet úgy írni, hogy a tagolás megmaradjon?
Tényleg, a kimutatás eszembe sem jutott, pedig csak pár kattintás. 🙁
Szia!
Sajnos azzal kell kezdened, hogy a dátumok helyére beírod a rendes értéket.
Az I oszlopot kijelölöd, és a csere funkcióval (Ctrl+h) kicseréled az összes pontot vesszőre.
Másold át a rendszám oszlopát egy üres oszlopba, pl. az S-be. Kijelölöd, Adatok menü, Ismétlődések eltávolítása. Kapsz összesen 3 rendszámot.
A T2 képlete: SZUMHA(C:C;S2;I:I), amit lemásolsz a T3, T4-be.
Ennyi.Üdv, Kati
Esetleg egy másik módszer:
MsgBox ThisWorkbook.BuiltinDocumentProperties(„Creation Date”)Persze egy ciklusban kellene listázni az egyes fájlok nevét, és a létrehozási idejüket.
A 2017-05-28-19:14 hsz azt sugallja, hogy egyáltalán nincs mód a csalások leleplezésére. 🙁
Egy kis trükkel a „Creation Date” is módosítható.
-
SzerzőBejegyzés