-
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
válasz
BagyiAti
#45958
üzenetére
Szia!
Ilyen hosszú képlet biztosan fog valahol hibázni.
Az A-W oszlopokban levő adatok után kell írnod a keresőrészt. Abból indultam ki, hogy az X5 cellában kezdődnek a keresendő értékek.
Az Y5 cellába kerülő tömbképlet:=HA(SZUM(($A$1:$W$50=$X5)*OSZLOP($A$1:$W$50))=0;"NINCS";INDEX($A$1:$W$1;SZUM(($A$1:$W$50=$X5)*OSZLOP($A$1:$W$50))))
A tömbképletet a Ctrl + Shift + Enter kombóval kell lezárni, az Excel kapcsos zárójelbe teszi.
Ajánlott a tartomány végét megadni - én itt 50 sorral számoltam, ezt igazítsd hozzá a sajátodhoz.
Üdv. -
Fferi50
Topikgazda
válasz
anonymus89
#45922
üzenetére
Szia!
A 8 lapfülből álló táblázatot nem lehet egy munkalapon(fülön) elhelyezni egymás alá átmásolva?
A keresést jelen esetben az INDEX - HOL.VAN párossal tudod megoldani. Avagy ha már úgyis másolni kell a keresési táblázatokat, akkor fel is lehet cserélni az oszlopokat és akkor mehet a klasszikus FKERES is.
Üdv. -
Fferi50
Topikgazda
válasz
ZoltanRobi
#45920
üzenetére
Szia!
Akkor szerintem kimutatás, ahol a hónapokat a bérlet vége oszlopból kell számolni, kicsit trükkösen lehet megoldani.
1. először behúzod a Bérlet_vége cimkét oszlopcimkének, ekkor megjelennek az évek és negyedévek is.
2. azután áthúzod a Bérlet_vége cimkét sorcimkének, az oszlopcimkékből pedig eltávolítod az évet és a negyedévet.
3. a bevétel bekerül az értékek területre összeg függvénnyel.
Üdv. -
Fferi50
Topikgazda
válasz
ZoltanRobi
#45915
üzenetére
Szia!
Itt is lehet SZUMHATÖBB vagy Kimutatás készítése. Azért van egy elég izgalmas kérdés is, mi van, ha a bérlet átnyúlik egy másik hónapba? Hogyan kell számolni a bevételt? A kezdő hónapba, a befejező hónapba vagy arányosan?
Üdv. -
Fferi50
Topikgazda
válasz
tomi_x
#45916
üzenetére
Szia!
Én csinálnék neki fejléceket az első sorba, ezután pedig kimutatást.
A kimutatásban sorcímke a nevek (A oszlop), oszlopcímke a tevékenység(D oszlop), az értékek pedig az órák (B oszlop) összesítve.
A tevékenységek közül pedig összevonnám amiket együtt szeretnék látni második oszlopcímkének.
Üdv. -
Fferi50
Topikgazda
válasz
bLaCkDoGoNe
#45903
üzenetére
-
Fferi50
Topikgazda
válasz
marec1122
#45901
üzenetére
Szia!
Ha csak a cellára nyomsz Fx-et akkor a /1000 nem része a függvénynek, ezért csak a konkrét végeredmény tudja megmutatni.
Ha F2 után (a szerkesztő sorban) ráállsz a Szumha névre és úgy nyomsz Fx-et, akkor a függvény paramétereit és annak az eredményét is fogod látni, a bal alsó sarokban pedig a cellába kerülő eredményt.
Üdv. -
-
Fferi50
Topikgazda
Szia!
Elképzelhető, hogy "megbuggyant" az Excel, mert ez a változó a VBA könyvtár része.
Próbáld újratelepíteni az Excelt.
Esetleg a másik gépen rendben lefutó munkafüzetet másold át ide. Ha akkor is jelentkezik, az Excel a hibás, ha nem, akkor a nálad levő verzió a bűnös.
Üdv. -
Fferi50
Topikgazda
válasz
kokokka
#45871
üzenetére
Szia!
Szín szerinti összesítés csak saját függvénnyel (makróval) működik jelenleg.
Ha csak egy oszlopot szeretnél értékelni, akkor megoldható a színre szűréssel és a RÉSZÖSSZEG Függvény első paraméterének 100 fölötti értéket adva:
Pl.=RÉSZÖSSZEG(109;A1:A100)az adott tartomány szűrés után látható celláinak összegét adja eredményül.
Üdv. -
-
Fferi50
Topikgazda
Szia!
Nem tudom, hogy a későbbi Excel verziók engedik-e a tömbképletet a feltételes formázásban, a 2016-os még nem.
Ezért egy segédoszlopot lenne érdemes csinálni, ahol a tömbképlet a következő:VAGY($b1:$y1>0,2)
A képlet eredménye IGAZ vagy HAMIS lesz a cellában.
A feltételes formázásban pedig az adott oszlop cellájára kell hivatkozni a képletben, pl.=$AA1
Üdv. -
Fferi50
Topikgazda
válasz
p5quser
#45839
üzenetére
Szia!
Nálam ez a jelenség (2016 Excel) nem jelentkezik....
Ellenben a két munkalapon a Combo értéke egy pillanatra megváltozik, ha utána belekattintok a Textbox-ba.
Ezt úgy lehet elkerülni, ha a Textbox nullázása után még egy sort beírsz, pl.
Textbox1.Activate
Ekkor átkerül a fókusz ide és utána már nem "ugrál" a Combo felirata.
A jelenség magyarázata persze nincs meg.
Remélem, ez nálad is segít.
Üdv. -
Fferi50
Topikgazda
-
-
Fferi50
Topikgazda
válasz
bela85
#45813
üzenetére
Szia!
Szerintem ott a gond, hogy a NEM benne van a keresendő értékek között (L3:M3), így persze a NEM is megfelelőnek számít. A keresendő értékek azL2:N2cellákban vannak, a D-G oszlopot is ezekhez kellene hasonlítani. AzL3:M3cellákra nincs szükség. A NEM ne legyen benne a keresendő értékek között.
Tehát, aholL3:M3hivatkozás van, azt írd átL2:N2hivatkozásra.
Üdv. -
Fferi50
Topikgazda
válasz
Salvi22
#45777
üzenetére
Szia!
A sor száma előtt ne legyen $ jel. Akkor másoláskor az új sor számára fog átíródni.
De ha átalakítod táblázattá az adataidat (kijelölöd majd beszúrás - táblázat -ha van fejléc, akkor fejléc bejelöléssel). Ezután új sor kezdése esetén a képletet automatikusan átviszi, nem kell újra beírnod. De szerintem a sor szám akkor is $ jel nélküli legyen a képletben.
Üdv. -
Fferi50
Topikgazda
válasz
Lokids
#45774
üzenetére
Szia!
Próbáld ki ezt a makrót (a munkalap neveket írd át a sajátodnak megfelelően lsz.):Sub atmasol()
Dim alap As Range, masolt As Range
Set alap = Sheets("Munka1").UsedRange
Set masolt = Sheets("Munka2").UsedRange
Application.ScreenUpdating = False
With masolt
Set masolt = .Offset(2, 2).Resize(.Rows.Count - 2, .Columns.Count - 2)
End With
With masolt
.Formula = "=IFERROR(VLOOKUP(" & .Cells(1, 1).Offset(0, -2).Address(rowabsolute:=False, columnabsolute:=True) & "," & alap.Parent.Name & "!" & alap.Address(rowabsolute:=True, columnabsolute:=True) & ",MATCH(" & masolt.Cells(1, 1).Offset(-1, 0).Address(rowabsolute:=True, columnabsolute:=False) & "," & alap.Parent.Name & "!" & alap.Rows(2).Address(rowabsolute:=True) & ",0),0),"""")"
.Value = .Value
.Replace what:=0, replacement:="", lookat:=xlWhole
.NumberFormat = "0%"
End With
masolt.Parent.Activate
Application.ScreenUpdating = True
End Sub
Üdv. -
Fferi50
Topikgazda
válasz
Lokids
#45772
üzenetére
Szia!
Az értékké alakítás természetesen a képletek kiértékelése után történhet. Tehát a képlet helyére másolja ugyanazt az értéket, amit a képlet eredményezett.
A képlet biztosan nem így működik, az megtalálja a megfelelő értékeket. Tehát, ha az első táblán az A5 cellában van a név, a másodikban pedig az A10-ben, akkor az A5-höz tartozó érték biztosan a 10. sorba fog kerülni. Persze ennek feltétele, hogy pontosan azonos legyen a két táblán a név a névlistában (A oszlop) és az azonosító az azonosító listában (1.sor).
Ha mindkét táblában az A oszlopban vannak a nevek, akkor az Fkeres /Hol.van kombináció is jó, hiszen az Fkeres az első oszlopban keres, a Hol.Van pedig az első sorból megtalálja a helyes oszlopot.
Vagyis először a képlettel megkeressük a megfelelő értékeket, majd az így kapott adatot átalakítjuk értékké.
Egyébként azt nem is értem, hogy az A5 (ami név ha jól gondolom), hogyan is kerülhetne a B10-be, mikor az már egy % érték lenne pl.
Üdv.
Ps. Ha mutatsz pl. egy 3x5 méretű táblát tartalmazó mintát, akkor valóságosan is meg tudom adni a képletet hozzá. -
Fferi50
Topikgazda
válasz
Lokids
#45768
üzenetére
Szia!
Szerintem az INDEX/HOL.VAN függvény párossal szépen meg lehet oldani, ha a fejlécek valóban azonosak a két táblában.
Az INDEX függvény első paramétere az első tábla teljes tartalma.
A második paraméter - ami a sor fogja adni:
HOL.VAN (második tábla A oszlop cellája; Első tábla A oszlop;0)
A harmadik paraméter - ami az oszlopot adja:
HOL.VAN (második tábla adott oszlop 1. cellája; Első tábla első sora;0)
Pl. 1. tábla adatai: A1-X30
A 2. tábla B2 cellájának képlete:=INDEX(Elsőtábla!$A$1:$X$30;HOL.VAN( $A2;Elsőtábla!$A$1:$A$30;0);HOL.VAN(B$2;Elsőtábla!$A$1:$X$1;0))
Ez a képlet húzható oldalra és lefelé is. Fontos a megfelelő címzés ($ jelek helye).
Azoknál a neveknél, amelyek az 1. táblában nincsenek benne, Hiányzik hiba kerül a cellába, ezt HAHIBA függvénnyel lehet "elmismásolni".
Üdv.
Ps. tudom, VBA -ban szeretnéd, akkor ezt a képletet írasd be a cellákba, összefüggő tartományba egy menetben is lehet. -
Fferi50
Topikgazda
válasz
karlkani
#45754
üzenetére
Szia!
Miért ne lehetne úgy átírni.
Tehát minden második sorban van az a szöveg, amit ki szeretnél cserélni?
Akkor ilyen legyen a makró:Sub modosit()
Dim a As String, cl As Range
For Each cl In ActiveSheet.UsedRange.Columns("A").Cells 'az A helyére írd az adataid oszlopát
If InStr(cl.Value, "/") > 0 Then
a = cl.Text
a = Left(a, InStrRev(a, "/")) & "valami_" & Mid(a, InStrRev(a, "\") + 1) ' a valami_ legyen idézőjelek között
cl.Value = a
End If
Next
End Sub
Remélem, így már tényleg működni fog.
Üdv. -
Fferi50
Topikgazda
válasz
karlkani
#45748
üzenetére
Szia!
Ezt leginkább makróval lehet gyorsan megoldani. Mivel nem írtad, hogy a szöveg mellett a hivatkozást is meg kell-e változtatni, azt is megadtam:Sub modosit()
Dim a As String, cl As Range
For Each cl In ActiveSheet.UsedRange.Columns("A").Cells 'az A helyére írd az adataid oszlopát
If cl.Hyperlinks.Count > 0 Then
a = cl.Text
a = Left(a, InStrRev(a, "\")) & "valami_" & Mid(a, InStrRev(a, "\") + 1) ' a valami_ legyen idézőjelek között
cl.Hyperlinks(1).TextToDisplay = a
'ha a linket is változtatni kell akkor a következő sor is szükséges, ha nem akkor töröld ki.
cl.Hyperlinks(1).Address = a
End If
Next
End Sub
A makrót másold be egy modullapra. Alt+F11 -Insert - Module
Ha testre szabtad, aktíváld azt a munkalapot, ahol a lista van és indulhat is. Fejlesztőeszközök - makrók - modosit - indítás.Üdv.
Ps. Ha csak a cellában levő szöveget írod át, akkor a link nem változik. -
Fferi50
Topikgazda
válasz
JoeGiuseppe
#45737
üzenetére
Szia!
Feltétel: Az első olyan cellától kezdve töltöd a B oszlopot, ahol az A oszlopban van szám.
A B oszlop első cellájába beírod az A oszlop mellette levő értékét. Legyen ez a B1 cella.
Ezután a képlet a B2 cellába:=HA(A2="";B1;A2)
Ez a képlet húzható lefelé a B oszlopon.
Üdv. -
Fferi50
Topikgazda
válasz
Vismajor01
#45730
üzenetére
Szia!
Képmetszővel kimented a területet. Ezután képfeltöltés - kiválasztod a mentett képet - feltöltés - beillesztés.
Vagy feltöltöd a mintafájlt a GoogleDrive-ra és megosztod, vagy egy olyan oldalra ahonnan le lehet tölteni (pl. Data.hu) és ide másolod a linket.
Üdv. -
Fferi50
Topikgazda
válasz
RAiN91
#45727
üzenetére
Szia!
Azt gondolom, hogy valóban rossz helyen van a kódod. Illetve, attól függ mit csinál...
A Worksheet_Change-ben lenne talán a helye. Mivel eseménykezelésről van szó, mindkét esetben a rutin elején ki kell kapcsolni az eseménykezelést azApplication.EnableEvents=False
utasítással, vége/kilépés előtt pedig visszakapcsolniApplication.EnableEvents=True
utasítással.
Ez alapján feltételezem, hogy azért lassú a futása, mert nincs az eseménykezelés kikapcsolva és így minden számolás után újraindul a rutin futása.
Üdv. -
Fferi50
Topikgazda
válasz
bela85
#45725
üzenetére
Szia!
Szeretném megmutatni, hogy több oszlop és feltétel esetében is működik, az a fontos csak, hogy egyenlő méretűek legyenek az oszlopok:
Az A oszlopban sárga, amiben van "a" betű. A B oszlopban zöld ha az érték 10 és 1000 közé esik. A C oszlopban kék az a cella, ahol az A sárga (mert van benne "a" betű) és a B oszlop zöld (mert a két érték közé esik). Természetesen itt is ÉS feltétel van.
Üdv. -
Fferi50
Topikgazda
válasz
ritterkrisz
#45721
üzenetére
Szia!
1. Bemásolod az adatokat, majd Adatok - ismétlődések eltávolítása. A korábban felvitt adatok maradnak meg, a későbbieket távolítja el.
2. A mellette levő cellában képlet B100-ban pl. =Darabteli($A:$A;A100)
Ha nem a függvény értéke, törölhető a beírt adat. A képletet húzhatod lefelé az adatok beírása előtt és után is.
Üdv. -
-
Fferi50
Topikgazda
válasz
PistiSan
#45715
üzenetére
Szia!
Most ránéztem ismét a feladatra. Talán szebb és egyszerűbb a következő:
Kijelölöd a tartományodat a 2. oszloptól kezdve.
Adatok - rendezés - a megjelenő párbeszédpanel beállításokra kattintasz és kiválasztod a balról - jobbra értéket.
A rendezésnél kiválasztod az 1. sort. Rendezés alapja értékek, Sorrend A-Z
Így néz ki:
Így egymás mellé kerülnek az azonos kódú oszlopok.
A másolást balról indíthatod. A kimásolt kódú oszlopokat elrejted a következő másolása előtt. Így az A oszlop is másolható a megfelelő oszlopokkal együtt.
(Mindig elfelejtem, hogy rendezni nem csak oszlop hanem sor szerint is lehet....)
Üdv. -
Fferi50
Topikgazda
válasz
Lokids
#45711
üzenetére
Szia!
Jól sejted, amikor egy sort törölsz, akkor a többi mintegy "felugrik" a helyére.
Ezért sorok törlésénél nem a For Each ----- Next ciklust, hanem a For ----- Next ciklust szokás használni. Ez kétféle módon eredményez helyes működést:
a.) hátulról kezded a sorok vizsgálatát és törlését, így nem változnak a törölt sor előtti sorok számai (For i=sorokszáma to 1 step -1)
b.) ha előlről indítod a ciklust, akkor egy sor törlése után a ciklusszámlálót eggyel vissza állítod a next utasítás előtt. Persze ekkor a ciklus "túlfut" az eredeti tartományon, erre nem árt figyelni.
Üdv. -
Fferi50
Topikgazda
Szia!
Ha nyitva van a fájl, akkor a fájlnév az azonosító és ezért okoz hibát, ha a teljes elérési utat beírod. Mivel az INDIREKT függvény csak nyitott fájlnál működik, ezért a fájlnév használható csak.
Nem indirektes hivatkozásnál megnézheted, ha nyitva van a fájl, akkor a fájlnév van a képletben, ha nincs nyitva, akkor van az elérési út is a képletben.
(Pl csinálsz egy hivatkozást a nyitott teszt fájlod egyik cellájára =Teszt.... A1, ezután bezárod a teszt fájlt és megnézed a hivatkozást.)
Üdv. -
Fferi50
Topikgazda
válasz
bela85
#45706
üzenetére
Szia!
Szerintem ebből a szerkezetből nem lehet azt az elrendezést PIVOT-tal megcsinálni. Talán POVERPIVOT használatával igen, de ahhoz nem értek.
Mivel ez a tábla eleve "kereszttábla", vissza kellene alakítani úgy, hogy a kritériumok is egy fő ismérv legyen, mint a város, úgy gondolom.
Egy ötlet, ami kimutatással is megy:
Üdv.
-
Fferi50
Topikgazda
válasz
bela85
#45704
üzenetére
Szia!
Szerintem megy ez függvénnyel is (egyszerűsített példa):
A Darabhatöbb képlet tartományait kell helyesen megválasztanod. Remélem ez már működik a 2007-ben.
Először az A8-tól kezdődő részt csináld meg. A B9 cella képlete húzható lefele és oldalt. Ezután az így kialakult adatokat másolás - irányított beillesztés - transzponálás tudod az A14-el kezdődő formába hozni.
Üdv. -
Fferi50
Topikgazda
válasz
PistiSan
#45702
üzenetére
Szia!
Így már érthető a feladat.
Egy megoldási javaslat:
Kijelölöd a vizsgálandó területet -> másolás -> a munkalap egy "tiszta" területére(vagy egy segédmunkalapra) ->irányított beillesztés -TRANSZPONÁLÁS.
Ezen a területen az első oszlopra már tudsz szűrni kódok szerint.
A szűréssel megkapott adatokra másolás > a kódnak megfelelő munkalapra irányított beillesztés -TRANSZPONÁLÁS
A transzponált alaptáblán minden szűrést végig tudsz csinálni és az eredményeket a kódnak megfelelő munkalapra transzponálással be tudod illeszteni a megfelelő helyre.
Üdv. -
Fferi50
Topikgazda
Szia!
Bocs, nem vettem észre az oszl+6 paramétert. (Csőlátás
)
A tartományok (Range) kijelölésénél pontosan kell meghivatkozni a munkalapot. Ezért az alábbi formát javaslom:With Sheets("Adatsor")
Range(Cells(1, 1), Cells(1, 6)).Value = _
.Range(.Cells(1, oszl + 1), .Cells(1, oszl + 6)).Value
End With
Ha egymás utáni sorokban vannak az adatok, akkor azt egyben is másolhatod.
"Fontos, hogy az adatok tagolása ne pontosvessző legyen, hanem sima vessző, "
A CSV fájl azt fogja csinálni.
Üdv. -
Fferi50
Topikgazda
Szia!
A hibaüzenet kimaradt a bejegyzésedből.
A leírásból azt látom, hogy továbbra is ragaszkodsz az A oszlopba gyűjtéshez. Ezt el kellene felejteni szerintem.
Egyébiránt jó lenne, ha a teljes makrót láthatnánk, esetleg egy példafájlt (nem érzékeny adatokkal), amiben megjelölnéd, hogy mi legyen a CSV fájlban.
Üdv. -
Fferi50
Topikgazda
válasz
tgumis
#45671
üzenetére
Szia!
"kiderül, hogy az 54 gr-os 25 ft-ért a jó"
Tehát a probléma megoldva.
(Mondjuk ebben az esetben akár "ránézésre" is kibökhető, hogy a legnagyobb súlyú a legolcsóbb, nyilván az a leggazdaságosabb... - tudom, példa lehet rossz is
)
Mi akkor a gond? A képlet jó, az eredményt le tudod olvasni.
Igazából nem értem a kérdésed.
Üdv. -
Fferi50
Topikgazda
válasz
tgumis
#45652
üzenetére
Szia!
Ahogyan a másik fórumon is írtam, a K oszlop képlete a hibás. Darabos termék esetén korrigálni kell a C oszlopban levő darabsúly értékével.
https://pcforum.hu/tudastar/145152/excel-fajlagos-arak-osszehasonlitasa
Üdv. -
Fferi50
Topikgazda
Szia!
Tapasztalatom alapján a következőt javaslom:
Nem kell az adatokat az A oszlopba összevonni! A makróval csv-be mentés "magától" megcsinálja a vesszővel tagolt fájlt. Így megspórolhatod az összemásolás műveletét.
Elég, ha az adott munkalapot átmásolod egy új munkafüzetbe és mented az újat, majd bezárod.
A rákérdezést az
Application.DisplayAlerts=False
sorral tudod elkerülni.
Vagyis nagyjából így nézhetne ki a makród ezen része:Sheets("… Adatsor").Copy '(az eredeti, oszlopokban adatot tartalmazó munkalap másolása új munkafüzetbe - ezután ez a munkafüzet lesz az aktív.
Application.DisplayAlerts=False
ActiveWorkbook.SaveAs Filename:= _
"C:\...\Vesszővel tagolt" & sz & Cikl & ".csv", FileFormat:=xlCSVUTF8, CreateBackup:=False
ActiveWorkbook.Close False ' további mentés nélkül bezárjuk az új munkafüzetet, ismét az eredeti lesz aktív
Application.DisplayAlerts=True ' ha a figyelmeztetéseket látni szeretnédÜdv.
Ps. persze a mentéshez szükséges változóknak értéket kell adnod itt is előzetesen. -
Fferi50
Topikgazda
válasz
hódmaci
#45659
üzenetére
Szia!
Azokat a cellákat, amelyekben nem szeretnéd, hogy módosítás történjen, zárolni lehet.
A cella zárolt - nem zárolt tulajdonságát a jobb egérgomb - cellaformázás - védelem fülön tudod megnézni/módosítani.
Alapból minden cella zárolva van egy új munkalapon, de a zárolás csak akkor lép érvénybe, ha a munkalapon bekapcsolod a lapvédelmet.
Mivel valószínűleg egyszerűbb a zárolt tulajdonság megszüntetése, mivel kevesebb az engedélyezett cella, ezeket kell kijelölnöd és megszüntetni a zárolást.
Utána bekapcsolod a munkalap védelmet. Véleményezés - lapvédelem - A minden felhasználónak engedélyezve listából kiveszed a zárolt cellák kijelölése jelölést.
Ekkor csak a nem zárolt cellák között lehet mozogni.
Üdv. -
Fferi50
Topikgazda
válasz
andreas49
#45619
üzenetére
Szia!
Mi vele a problémád?
Ha a cimkék összeérése a gond, akkor pl. megváltoztathatod a tengelyen a mértékegységet:
Tengely formázása - Nagyságrend. Itt kiválaszthatod hogy milyen legyen a megjelenés.
Ezen kívül meg lehet oldani, hogy minden másodikhoz legyen cimke, esetleg váltogatni lehet a megjelenés helyét - egyik felül, másik alul vagy középen.
Üdv. -
Fferi50
Topikgazda
válasz
p5quser
#45603
üzenetére
Szia!
A tömböt értékadással kapod meg.
Pl.Dim atomb()
atomb=Range("A1:F3").Value
'Ezután végigmész a tömb elemein sor vagy oszlop szerint. (Az első index a sor, a második az oszlop.)
'Aminek van értéke, azt beirod a soron következő cellába, az üreset pedig hagyod békén.
Dim i As Integer, j As Integer, k As Integer, m as integer
k=10:m=1 ' a 10 sor A oszlopától kezdődik a másolás
For i=1 to Ubound(atomb,1)
For j=1 to Ubound(atomb,2)
If atomb(i,j)<>"" Then
Cells(k,m).Value=atomb(i,j)
k=k+1
End If
Next j
k = k + 1: m = 1
Next i
Üdv. -
Fferi50
Topikgazda
válasz
morgusz
#45579
üzenetére
Szia!
Egy segédoszlop első cellájába írd be az alábbi tömbképletet:=MAX(($A$1:$A$7=$A1)*SOR($A$1:$A$7))=SOR($A1)
$A$7 -ben a 7 helyére írd az utolsó sorod számát.
A tömbképletet Ctrl+Shift + Enterrel kell lezárni és az Excel kapcsos zárójelbe teszi.
A képlet lehúzható a segédoszlopban.
Eredménye IGAZ lesz, ahol az adott cikkszám utolsó előfordulása van, mindenütt máshol pedig HAMIS értéket ad.
Ezután a segédoszlop alapján már tudsz szűrni az IGAZ értékekre.
Üdv. -
Fferi50
Topikgazda
válasz
zzz012
#45562
üzenetére
Szia!
A feltételes formázást az alábbiak szerint add meg:
Kijelölöd a formázandó területet
Kezdőlap - feltételes formázás - új szabály - a formázandó cellák kijelölése képlettel.
A képlet pedig:
=$G1>=2
beállítod a kívánt formázást. Ha terület nem az első sorban kezdődik akkor a $G1 helyett $Gkezdősorszáma legyen.
Üdv. -
Fferi50
Topikgazda
válasz
Lokids
#45552
üzenetére
Szia!
Ha képletet (formula) szeretnél a cellába írni, akkor azt abban a formában kell, ahogyan a cellában láttad, vagyis nem VBA formában, hanem "direkt" címezve a szabályok szerint:Workbooks(MainWBName).Worksheets(s_wsNAme2).Cells(s_Outrow, 3).Formula="=Countifs([MainWBName.xlsx]s_wsName!C : C,[MainWBName.xlsx]s_wsName!A: A)"
Továbbá nem pontosvessző kell, hanem vessző a paraméterek közé.
Üdv. -
Fferi50
Topikgazda
válasz
Fferi50
#45544
üzenetére
Szia!
Ebben a fájlban
az ujlap makró a Munka1 munkalapot kimásolja egy új munkafüzetbe.
A Munka1 munkalapon nem színezi a cellákat változáskor, de a létrehozott új munkafüzetben a megnyitás után igen.
(Megjegyzés: most pirosra színezi, mert nem sárga a cella és a colorindex=0 esetén nem látszik a változás.)
Kicsit várj a letöltéssel, mert még víruskergetés folyik odafenn a Data.hu-n.
Üdv. -
Fferi50
Topikgazda
válasz
Lokids
#45543
üzenetére
Szia!
Az miért nem opció, hogy abban a munkafüzetben, amiből létrehozod az újat, van egy olyan munkalap, amiben már benne van ez az eseménykezelő makró a munkalap kódlapján. Ezt a munkalapot másolod át új munkafüzetbe és küldöd el - persze makróbarátként?
Egyébként az is megoldható, hogy nálad ne fusson le ez a "fehérítés", csak ott amikor használják.
Üdv. -
Fferi50
Topikgazda
válasz
Lokids
#45535
üzenetére
Szia!
Ha cella egy feltétel teljesülése miatt sárga, akkor a benne levő érték módosítása esetén továbbra is a feltételnek megfelelően fog színeződni. Ha megfelel a feltételnek, marad sárga, ha nem felel meg, akkor visszaáll az alapszín.
Ha egy cellánál az érték változtatást szeretnéd színnel is jelölni, ahhoz viszont makró kell.
Üdv. -
Fferi50
Topikgazda
válasz
Lokids
#45540
üzenetére
Szia!
"Viszont ennek a ws change makrónak a létrehozott WB-n kell futnia."
Úgy érted, hogy amikor bezárják és újra megnyitják, akkor a "saját" makrója fusson?"makróval hogyan tudok makrót illeszteni egy létrehozott WB-be"
Elvileg lehet a VB projektben makróval makrókat módosítani, újakat beleírni, törölni stb. DE nem javasolt - bármelyik vírusírtó veszélyesnek ítélheti és kigyomlálhatja - és nem is egyszerű.
Megoldható például úgy, hogy mented az alap munkafüzetet más néven, kitörlöd belőle azokat a munkalapokat, amelyek nem kellenek bele, hozzáadod az újakat, formázod stb.
A mentéssel mentődnek a makrók is - természetesen makróbarát vagy bináris munkafüzetként kell menteni. Mindezt megteheted az alap munkafüzet makróiból.
Ráadásul mivel más néven mented, az eredeti mindig megmarad és újra felhasználható.
Aztán lehet sablont is létrehozni, amiben benne vannak a makrók és az új munkafüzetet a sablonból megnyitni.
Üdv.
Mentsd -
-
Fferi50
Topikgazda
válasz
daddy9
#45520
üzenetére
Szia!
Először a második kérdésedre a válasz:
"egy Modulban megírt SUB-ot (vagy Function-s) hogyan tudok "meghívni" a Userform egy gombjával?"
Ha általános modulban vannak az eljárásaid, akkor egyszerűen az eljárás nevét kell megadnod, de használhatod a Modulnév.Eljárásnév formát is.sub Gomb_click
eljárásnév
end sub
A fentiekből következik, hogy nem kell a Userform kódlapjára átmásolnod a modulokban levő eljárásokat, ha használni szeretnéd azokat.
Egyébként mit jelent az, hogy nem látja a SUB a bemásolt Function-t? Mi a hibaüzenet?
Üdv. -
Fferi50
Topikgazda
válasz
Winner_hun
#45516
üzenetére
Szia!
Ha már nincs képlet a cellákban csak az eredmény (átalakítottad értékké), akkor Ctrl F
Keres 0, Cserél üresen hagyod Egyebek - bejelölöd a Ha ez a teljes cella tartalma kockát.
Az összes cseréje.
Ha még a képleteid vannak, akkor az új képlet Ha függvény Lappy szerint, a két idézőjel (macskaköröm) között ne legyen semmi.
Üdv. -
Fferi50
Topikgazda
válasz
Lokids
#45514
üzenetére
Szia!
Talán ez lehet a probléma:
IttVan = Application.Match(Workbooks(MainWBName).Worksheets(s_wsName).Cells(sor, 1), Workbooks(FteWBName).Worksheet(1).Range("A:A"), 0)
Helyette:
IttVan = Application.Match(Workbooks(MainWBName).Worksheets(s_wsName).Cells(sor, 1), Workbooks(FteWBName).Worksheets(1).Range("A:A"), 0)
Üdv. -
Fferi50
Topikgazda
válasz
Winner_hun
#45512
üzenetére
Szia!
Mindkét munkalapot átmásolod a harmadik (összesítő) munkafüzetbe.
Ezután az összesítő lapon a két munkalapból képlettel tudsz összeadni, pl.
A1 cella ---> =Munka2!A1+Munka3!A1
Ez így húzható is lefelé és oldalra.
Majd kijelölöd az összesítő munkalap adattartományát, másolás - irányított beillesztés értéket ugyanoda.
A már nem szükséges átmásolt munkalapokat törlöd.
Hamarabb megvan, mint amennyi idő alatt elolvastad.
Üdv. -
Fferi50
Topikgazda
válasz
ReSeTer
#45459
üzenetére
Szia!
Itt találod az End magyarázatát
Gyakorlatilag azt csinálja, mint amikor egy cellán állva az End billentyűt használod a nyíl billentyűk előtt a gyorsabb mozgáshoz. Alapvetően 1 db cellából kiindulva használható, de nem haragszik meg akkor sem, ha tartományt adtál meg - úgy mint te, de ebben az esetben a tartomány első cellája lesz a kiindulási alap. Tehát a második Range egy cella lehet.
Ha megfigyeled az End billentyű működését, láthatod, hogy az utána következő nyíl billentyű az azonos fajtájú - kitöltött/üres - cellasor végére/elejére ugrik.
Mindig a kiválasztott cella sorában/oszlopában mozog. A te esetedben az A5 cellából indul lefelé és az utolsó még kitöltött cellát adja meg. Ha lenne közte üres cella, akkor csak addig ugrana le. (Próbáld ki, hogy kitörölsz átmenetileg pár cellaértéket.)
Amennyiben a többi oszlopban az A oszlopnál lejjebb is van még adat, ez akkor sem ad megfelelő értéket - a többi oszlop adata túl fog lógni a kiválasztott soron/területen.
Ezért kell megnézni az adatokat, képleteket tartalmazó cellákat.
Üdv. -
Fferi50
Topikgazda
válasz
Heavyrain
#45455
üzenetére
Szia!
Szerintem a C oszlopba vedd fel a kiszállítandó raklap igényeket az adott régióhoz. Ezután csinálj egy kimutatást, amelyben a sorcímkék a régiók, oszlopcimkék a termékek (vagy fordítva), az értékek pedig a raklap összegek. Így megkapod a termékenkénti igényt és a régiók szerinti összeget is. Összehasonlíthatod az igény a készlettel.
Pl. Kiindulás:
A kimutatás pedig:
Üdv. -
Fferi50
Topikgazda
válasz
ReSeTer
#45456
üzenetére
Szia!
Lehet, hogy túlgondoltam vagy nem értettem pontosan, mit szeretnél.
de nem láttam, hogy bármit is kijelölne, sőt a nextnél mindig visszamegy a For Each részig.
A For .... Next egy ciklus, pont az a lényege, hogy a két utasítás közötti részt többször is végrehajtja.
A kijelölés pedig a Next után történik, miután mindent megvizsgált.
A SpecialCells(xlCellTypeLastCell)) a munkalap utolsó használt celláját adja vissza
a SpecialCells(xlCellTypeFormulas) azokat a cellákat, amelyekben képletek vannak
a SpecialCells(xlCellTypeConstants) azokat, amelyekben értékek vannak.
Mivel nem kizárt, hogy a használt terület nem összefüggő, vannak üres sorral és oszloppal elválaszott munkalaprészek, ezért végigmegy ezeken a területeken és megnézi, hogy mely sorokat-oszlopokat foglalja el. Ezek közül a legmagasabb sorszám és legnagyobb oszlopszám határozza meg a képlettel és/vagy értékekkel kitöltött területet.
Jelenleg sikerült ezzel megoldani látszólag:Range("A5:RG5", Range("A5:RG5").End(xlDown)).Select
Ez akkor jó, ha tudod biztosan, hogy melyik az utolsó oszlopod és abban az oszlopban minden cella ki van töltve.
Egyébként ebben a kódban nem tudom mit jelent a második range értéke.
Melyik kódra gondoltál? Arra amit most használsz vagy arra amit küldtem?
Amit most írtál, abban az RG oszlop 5-től lefelé a folyamatosan kitöltött utolsó cellát jelenti.
Az enyémhez fentebb írtam a magyarázatot.
Üdv.
Új hozzászólás Aktív témák
- Yettel topik
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Apple asztali gépek
- Autós topik
- Honor Magic6 Pro - kör közepén számok
- Path of Exile (ARPG)
- Android alkalmazások - szoftver kibeszélő topik
- Jövedelem
- Vezetékes FEJhallgatók
- Témázgatunk, témázgatunk!? ... avagy mutasd az Android homescreened!
- További aktív témák...
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Game Pass Ultimate előfizetések 1 - 36 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN! AKCIÓ!
- Xbox / Microsoft Store feltöltőkártya kód (digitális, HU) több címlet, több db, azonnal, olcsón
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem.
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Lenovo Thinkpad P15 Gen 2 - 23 akkuciklus - 27% ÁFÁS
- CÉGEK FIGYELEM!! iPhone 11 64GB Black -1 ÉV GARANCIA - 27% ÁFA-S SZÁMLA Kártyafüggetlen, 100% Akks
- 16gb (2x8gb) Micron DDR5 SODIMM 4800 Mhz RAM
- Gamer PC-Számítógép! Felsőkategória! R7 9800X3D / RX 9070XT / 32GB DDR5 / 2TB SSD / Noctua !
- Hp USB-C/Thunderbolt 3 dokkolók: USB-C Universal, G2, G4, G5, Hp Elite/Zbook- Thunderbolt 4 G4
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



