Hozzászólások
-
SzerzőBejegyzés
-
Egyszerűbben is megoldhatod. Csak egy címke legyen, Label1. Ennek a magassága (Height) 3, szélessége (Width) nulla.
Private Sub UserForm_Activate() For i = 2 To 100 Step 2 For j = 1 To 1000000: Next DoEvents UserForm1.Caption = i & "% komplett" Label1.Width = i * 2 Next End Sub
Feltételezem, hogy a formon a zöld csík (Label2) szélességét akarod növelni, és ebbe akarod beíratni az adatok betöltésének pillanatnyi értékét.
A Label1 és Label2 Left tulajdonságát (bal szélét) azonosra állítottam, a Label2 kiinduló szélessége (width) nulla.
Lassítani, gyorsítani a Label2 szélességét a For j=1 To … érték módosításával tudod. Nagyobb értéknél lassúbb lesz a folyamat.Attachments:
You must be logged in to view attached files.Egy példa:
Sub StatuszSor() Dim sor As Integer For sor = 1 To 25 Application.StatusBar = sor & ". sor összege: " & Cells(sor, 1) + Cells(sor, 2) Application.Wait Now + TimeValue("00:00:01") Next Application.StatusBar = False End Sub
A For i Next i ciklust lezártad, de a For j-t nem.
Egy példa:
Sub StatuszSor() Dim sor As Integer For sor = 1 To 25 Application.StatusBar = sor & ". sor összege: " & Cells(sor, 1) + Cells(sor, 2) Application.Wait Now + TimeValue("00:00:01") Next Application.StatusBar = False End Sub
A For i Next i ciklust lezártad, de a For j-t nem.
Szia!
Próbáld így:
Sub pttro_1() Dim ciklus As Integer, usor As Long, ciklusszam As Integer ciklusszam = Range("I1") For ciklus = 1 To ciklusszam usor = Cells(ActiveCell.Row, ActiveCell.Column).End(xlDown).Row Range(Cells(ActiveCell.Row, ActiveCell.Column), Cells(usor, ActiveCell.Column)).Copy _ Cells(usor + 1, ActiveCell.Column) Cells(usor + 1, ActiveCell.Column).Activate Next Application.CutCopyMode = False End Sub
Itt az I1 cella tartalmazza az ismétlések számát. Ha ebbe a cellába beírt érték 3, akkor 3-szor fut le a ciklus, vagyis az eredetivel együtt összesen 4-szer szerepelnek majd egymás alatt az adataid.
Ha csak a megadott számban szeretnéd látni az adatokat, a
ciklusszam = Range("I1")
helyett írj
ciklusszam = Range("I1")-1
-et.Üdv,
KatiÖrülök, hogy összejött, szívesen.
Szia Feri!
A Module2-be írtam egy makrót, benne némi magyarázattal.
Üdv, Kati
Attachments:
You must be logged in to view attached files.A1-> 5500, B1->2990, C1->=100-B1*100/A1
Én vagyok a hibás, tényleg rosszul írtam. Helyesen =B2*100/B1
Eszerint a 602 átnézett kép tartalmazza a 141 problémásat is. Akkor az 1 órája írt két képlet közül az elsőt kell alkalmaznod.
%=érték*100/összeg
érték=141, összeg=602+141 –> 18,97712Ellenőrzés: (602+141)*18,97712%
Számológépen: 602 plusz_gomb 141 =_gomb *_gomb 18,97712 %_gombHa az átnézett képek száma tartalmazza a problémásakat is, akkor a képlet
=B2*100/B2, ha nem (ebben az esetben az összes kép száma 743), akkor a =B2*100/(B1+B2) képlet adja meg a százalék értéket.2018-05-22-09:36 Hozzászólás: [Resolved] Beosztásban szereplő műszakok átmásolása a jelenlétibe Időszak és Név alapján #4839Szia!
A másik fórumon, ahol feltetted ugyanezt a témát, válaszoltam.Az R8 cella eredménye nem tetszik? Oda nem DARAB2, hanem DARABTELI függvény kell.
=DARABTELI(M:M;”x”)Szívesen. 🙂
Jó, hogy kitetted a képet. Az utvonal változó megadásánál hiányzik a szöveg végéről a backflash jel.
Kiteszel a lapodra egy alakzatot (négyszög, kör, miegyéb). Elnevezed Udvozlet-nek. Ennek az alakzatnak a képpel történő feltöltését végzi a makró a pillanatnyi idő függvényében.
A képeket az utvonal változóban megadott mappában kell tárolnod.A rohanásban elfelejtettem csatolni a mintát, elnézést. Csomagold ki, és a ThisWorkbook laphoz rendelt makróban írd át az utvonal változó értékét a sajátodra.
A beszúrt alakzat neve Udvozlet.Attachments:
You must be logged in to view attached files.Most nem érek rá a magyarázatra, de biztosan rájössz.
A csatolt fájlodban NYÍTÓOLDAL névre hallgatott az első lapod. Lehet, hogy azóta javítottad a hosszú Í-t, azért fut hibára.
Szarvas hiba részemről! Úgy akartam egy cellára állni, hogy előtte nem aktiváltam a lapot.
Private Sub Workbook_Open() Dim WS As Worksheet, sor As Long, valasz Set WS = Sheets("AKCIÓK") valasz = MsgBox("Töröljem a lejárt érvényességű tételeket?", vbYesNo + vbQuestion, "Törlési kérdés") If valasz = vbNo Then GoTo Raall With WS sor = 5 Do While .Cells(sor, 1) <> "" If .Cells(sor, 2) < Date Then .Range("A" & sor & ":C" & sor).Delete Shift:=xlUp Else: sor = sor + 1 End If Loop sor = 5 Do While .Cells(sor, 5) <> "" If .Cells(sor, 6) < Date Then .Range("E" & sor & ":G" & sor).Delete Shift:=xlUp Else: sor = sor + 1 End If Loop End With Raall: Sheets("NYÍTÓOLDAL").Select Range("H5").Select End Sub
Visszaküldöm a VÁZLATOS füzetet, némi módosítással.
Szerk.: El kellene menned Horváth Imihez egy VBA tanfolyamra. Míg nem látod átfogóan a lényeget, csak kapkodsz, és semmi nem marad meg. Hidd el, érdemes lenne.
-
A hozzászólás módosításra került: 7 years, 2 months telt el-
delila. Indok: Kéretlen tanács
Attachments:
You must be logged in to view attached files.Makró nélkül is megoldhatod. Kijelölöd a diagramon a teljes kört, majd az egyik cikket. Jobb klikk, Adatpont formázása, a Kitöltés menüpontnál beállítod a színt.
Szia!
Azt hiszem, arra gondoltál, amivel kiegészítettem a füzetedet. A „2” laphoz rendeltem egy eseményvezérelt makrót, ami a B:O tartományba beírt adatokat figyeli. Ha ez x, vagy X, akkor az „1” lap A oszlopában az első üres sorba beírja a „2” lap aktuális oszlopának a címét.
A makró miatt makróbarátként kellett menteni a füzetet.
Üdv,
KatiAttachments:
You must be logged in to view attached files.Igazad van, ez a kézenfekvő megoldás nem jutott eszembe.
A feltétel (If .Cells(5, 2) > „” Then) sem kell, elég ez:
.Range("CH3:CO4").Copy .Range("B7:I28").PasteSpecial xlPasteFormats Application.CutCopyMode = False
Figyeld meg, hogy a másolandó formátumba a CH4:CO4 tartományt is be kell venni, hogy az alacsony sorok fekete háttere is másolódjon.
Itt az újabb makró:
Private Sub Workbook_Open() Dim sor As Long, usor As Long sor = 5 With Sheets("Munka1") 'ide a saját lapod nevét írd a Munka1 helyett 'lejárt időpontok adatainak törlése Do While .Cells(sor, 2) <> "" If .Cells(sor, 2) < Date Then .Range("B" & sor & ":I" & sor + 1).Delete Shift:=xlUp Else sor = sor + 2 End If Loop 'formátum másolása If .Cells(5, 2) > "" Then .Range("B5:I6").Copy .Range("B7:I49").PasteSpecial xlPasteFormats Application.CutCopyMode = False End If End With End Sub
Szia!
A leírásodból nem derült ki, hogy melyik oszlopok adatait akarod töröltetni. Úgy gondolom, hogy a B:I tartományban lévőket.
Célszerű a füzet megnyitásakor eltüntetni a lejárt idejű bejegyzéseket, ezért az Open eseménybe érdemes betenni, a ThisWorkbook laphoz kell rendelni a makrót.Private Sub Workbook_Open() Dim sor As Long, usor As Long sor = 5 Do While Cells(sor, 2) <> "" If Cells(sor, 2) < Date Then Range("B" & sor & ":I" & sor + 1).Delete Shift:=xlUp Else sor = sor + 2 End If Loop End Sub
A Do-Loop ciklussal megyünk végig a B oszlop dátumain, az 5. sortól kezdve.
A Shift:=xlUp határozza meg a törlés irányát. Ha volt törlés, az alatta lévő adatok a törölt sor helyére ugranak fel, nem változtatjuk a sor változó értékét, ha nem volt, növeljük a sor értékét kettővel.
A ciklus addig fut, míg a B oszlopban talál adatot.Szívesen. 🙂
A dicséret Krizsák Lászlót illeti.Krizsák László készített 5 éve egy vezérlő nélküli naptár userformot, amit egy fórumon közkinccsé tett.
Csatolom a füzetet, amiből átmásolhatjátok a saját fájljaitokba a Naptar userformot, a cmdClass modult, és a Munka1 laphoz rendelt eseményvezérelt makrót. Az én részem csupán a szombatok és vasárnapok színezése.
Attachments:
You must be logged in to view attached files.2 DataPicker kell a 2 oszlophoz (kezdés és befejezés). Mivel a dátumon kívül időpont is szükséges, azt a laphoz rendelt eseményvezérelt makróval lehetne megoldani.
2018-03-27-13:43 Hozzászólás: Excelre hivatkozó Word körlevél abszolút hivatkozásának relatívvá tétele #4577Meg kell nézni, van-e x nevű lap az osszes.xlsx-ben. Ha nics, létre kell hozni a Sheets.Add utasítással.
`On Error Resume Next
Set a = Sheets(„x”)
If Err.Number <> 0 Then
MsgBox „Nincs ilyen”
End If
On Error Goto 02018-03-27-12:50 Hozzászólás: Excelre hivatkozó Word körlevél abszolút hivatkozásának relatívvá tétele #4575Pedig megírtam, hogy az osszes.xlsx lapjairól csak azokat a sorokat törölje, amelyik füzetnek amelyik lapján lévő adatokat másolod éppen be.
A hibaüzenet fölött ki kell lépned a makróból : Exit Sub
2018-03-27-07:19 Hozzászólás: Excelre hivatkozó Word körlevél abszolút hivatkozásának relatívvá tétele #4571Szia!
Ezzel az a baj, hogy a gyűjtő füzet lapjain mindig csak az utoljára bemásolt füzet adatai lesznek meg. A meglévő adatokat a
WSO.Range("A2:BA100000").Delete
sor törli.
Másoláskor be kellene vinni egy üres oszlopba annak a fájlnak a nevét, ahonnan másolsz, és az új másolás előtt csak ezeket a sorokat kellene törölni. A tartományt megkeresheted a Match függvénnyel.2018-03-26-16:29 Hozzászólás: Excelre hivatkozó Word körlevél abszolút hivatkozásának relatívvá tétele #4569Egy másik módszer az adott könyvtárban lévő Excel fájlok tartalmának az összemásolására:
Sub Osszemasolas() Dim utvonal As String, FN, lap As Integer, WSO As Worksheet, usor As Long Set WSO = ActiveWorkbook.Sheets("Munka1") 'Aktív füzet Munka1 lapja, ide gyűjtjük az adatokat utvonal = "D:\Mappa\" 'Útvonal, ahonnan megnyitjuk másolásra a füzeteket FN = Dir(utvonal & "*.xls*") Do While FN <> "" Workbooks.Open utvonal & FN 'A mappában lévő fájlok megnyitása 'Végig megyünk a megnyitott fájl lapjain For lap = 1 To Sheets.Count usor = WSO.Range("A" & Rows.Count).End(xlUp).Row + 1 'A gyűjtő lap első üres sora 'Másoljuk és beillesztjük a lapokon lévő adatokat, címsor nélkül (offset) 'Ha feltehetően vannak üres sorok is, a CurrentRegion helyett mást kell használnunk. Sheets(lap).Range("A1").CurrentRegion.Offset(1).Copy WSO.Range("A" & usor) Next ActiveWindow.Close False 'A megnyitott fájl mentés nélküli bezárása FN = Dir() Loop End Sub
Most sajnálom, hogy nincs szükségem kéményre, de neked intézek némi engedményt a képbeszúrós linkért. 🙂
Nagyon klassz, köszönöm!
Jelenleg még csak 3 logó képét kell ide-oda beillesztenem. A csatolt képen a bal oldali választásoktól függően összesen 12 ajánlat jelenhet meg a jobb oldalon. Ezekhez kellett beillesztenem a megfelelő logókat. Újabb cégek gyártmányainál csak felteszem a formra az új logókat.
Attachments:
You must be logged in to view attached files.Szívesen 🙂
Próbáld meg a kép szerint.
Attachments:
You must be logged in to view attached files.2018-03-07-12:48 Hozzászólás: [Resolved] TARC táblázat automatikus kitöltése a megfelelő cellában #4516Örülök, hogy sikerült, és különösen annak, hogy önállóan javítottad a hibát!
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: 7 years, 4 months telt el-
delila.
-
A hozzászólás módosításra került: 7 years, 4 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: 7 years, 4 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: 7 years, 5 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: 7 years, 5 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: 7 years, 6 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: 7 years, 7 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 hozzászólás módosításra került: 7 years, 2 months telt el-
-
SzerzőBejegyzés