-
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
RAiN91
#42751
üzenetére
Szia!
Feltételezhetően az eseménykezelés ismételt beindulása okozza stack "bedugulását", mivel minden egyes változásnál újra meghívódik.
Az elejébe tegyél egy
Application.EnableEvents=False utasítást, a végére pedig egy Application.EnableEvents=True utasítást, hogy futás közben az eseménykezelés legyen letiltva.Üdv.
-
Fferi50
Topikgazda
Szia!
Ha még az is túl hosszú lenne, amit az előbb írtam, használhatod ezt a makrót. Mielőtt elindítod, ki kell jelölnöd a formázandó területet.Sub szinez()Dim rsor As Range, rformat As ColorScaleFor Each rsor In Selection.Rowsrsor.FormatConditions.DeleteSet rformat = rsor.FormatConditions.AddColorScale(colorscaletype:=2)rformat.ColorScaleCriteria(1).FormatColor.Color = vbWhite 'RGB(255, 0, 0)rformat.ColorScaleCriteria(2).FormatColor.Color = vbRed 'RGB(255, 0, 0)NextEnd Sub
Itt a fehér-piros színátmenet van benne, piros a legmagasabb érték.Üdv.
-
Fferi50
Topikgazda
-
Fferi50
Topikgazda
Szia!
Mivel ebben a formázási szabályban nem lehet relatív hivatkozást megadni, ezért sajnos soronként kellene ismételten bevinni.
DE! A formátummásoló simán megoldja ezt a problémádat. Egy sort leformázol a kívánalmak szerint. Utána jobb egérgomb. Megkeresed a formátum másolót (nálam a kis menü jobb alsó szélén
Két egymás utáni gyors bal egérgomb kattintás bekapcsolja. Ezután kijelölöd a kívánt sorokat. Bal katt. A formátum másoló addig bekapcsolva marad, amíg ESC-t nem nyomsz neki. Ezért annyiszor és olyan részletekben használod, ahányszor csak akarod, a kikapcsolásig.
Üdv.
-
Fferi50
Topikgazda
válasz
Misi_D
#42744
üzenetére
Szia!
Használhatod hozzá a Solvert. A napi értékesítések mellé felveszel két segédoszlopot. Az egyikbe 0 és 1 kerül, a másikba az értékesítés és a mellette levő 1/0 szorzata. Ennek az összegét kell célértékként megadnod. Változóként pedig a 0/1-es oszlopot. Továbbá korlátozni kell ennek az oszlopnak a felvehető értékeit 0 és 1-re.Üdv.
-
Fferi50
Topikgazda
válasz
RAiN91
#42709
üzenetére
Szia!
Csak akkor működik a közvetlen érték átvétel, ha nyitva van a fájl.
Ha nincs nyitva, akkor képletként kell beírni. Makróban a Formula tulajdonságot kell használni és az Excel "3dimenziós" hivatkozását. A képlet így néz ki:=[asd.xlsx]Diagram!$A$1
Ezután bezárod a fájlt és megnézed, mi lett a képlet, ami az elérési utat is tartalmazza majd. Ezt kell reprodukálnod a makróban.
(Makrórögzítés a barátod. Csak kijelölöd a C1 cellát, F2 és enter. Utána megnézed, mit rögzített.)
ActiveCell.Formula = "='C:\Users\Balint\Desktop\[asd.xlsx]Diagram'!A1"
Üdv. -
Fferi50
Topikgazda
válasz
RAiN91
#42706
üzenetére
Szia!
Akkor ne Worksheet-ként hivatkozz rá, hanem Sheet-ként. Sheets("Diagram").
Illetve a fájlneved a Workbooks("asd.xlsx") legyen, amikor hivatkozol a munkalapra.
De még jobb, ha hozzárendeled a nyitáskor egy változóhoz:Set wb=Workbooks.open("C:\Users\Balint\Desktop\asd.xlsx")
Utána pedig wb.Sheets("Diagram") -ként hivatkozhatsz a munkalapra.
Üdv. -
-
Fferi50
Topikgazda
válasz
bagyulajuve
#42696
üzenetére
Szia!
Ez "csak" azért izgalmas kérdés, mert ha pl. 2.5 megjelenik febr. 5-ként, ha azt átállítod általános formátumra, már 43866 lesz az amit látsz. Szóval soha többet nem láthatod viszont a 2.5-öt, mert azonnal dátummá konvertálta az Excel! (Fújj Redmond!)
Üdv. -
Fferi50
Topikgazda
válasz
bagyulajuve
#42690
üzenetére
Szia!
"biztos rém egyszerű a megoldás"
Hát sajnos nem. Angol Exceled van? Mert a magyar a pontokkal való elválasztást "szereti így".
Egy lehetséges megoldás: A fájlt egyetlen oszlopba olvasod be. Utána Adatok - szövegből oszlopok - tagolt - a tagolás jelének beírod a vesszőt, a szövegjelölőhöz pedig az idézőjelet. Ezután oszlopról oszlopra megadhatod, hogy milyen típusú az oszlopban levő adat.
Üdv. -
Fferi50
Topikgazda
válasz
Gabiwan
#42682
üzenetére
Szia!
Jujujj, hát bizony a szabálytalant nem lehet szabályok közé szorítani....
Csak ötlet:
Ahol a végén van, ott használod a JOBB függvényt, ahol az elején, ott a BAL függvényt azzal a módszerrel, ahogyan írtam.
A középen levőket pedig kézzel "megvadászod" - rászűrsz arra, amelyikben előfordul a méret, aztán kiírod - vagy levágod az előtte v. utána levő szövegrészt és akkor használhatod a BAL-JOBB függvényt. Mindenesetre talán kevesebb a macera, mint az összeset végignyalni.Üdv.
-
-
Fferi50
Topikgazda
válasz
huliganboy
#42674
üzenetére
-
Fferi50
Topikgazda
válasz
pero19910606
#42669
üzenetére
Szia!
Az nem elég meggyőző, ha bemutatjátok, hogy a korábbi munkahelyeden milyen módszerrel mekkora megtakarítást lehetett elérni?
Túl nagy "elefánt" ez a cég ahhoz, hogy alulról meg lehessen mozdítani szerintem. Ha arra nem ugranak, hogy 1 % készlet megtakarítás is százmilliós nagyságrendű kp-t jelenthet, akkor talán nem is igazi cég az és nem igazi vállalkozók a tulajdonosok. (Csak nem egy nagy állami cégről van szó....?) Manapság az ilyenekre már harapni szoktak és nem is sajnálják rá a befektetést. (Kicsit Don Quijote harcnak tűnik az elképzelésed.)
Üdv. -
Fferi50
Topikgazda
válasz
csanyiadam
#42670
üzenetére
Szia!
Pl. a Darabteli függvénnyel megnézheted, hogy a második fájlban levő érték benne van-e az első fájlban. (A két fájl adatait beolvasnám egy fájl két munkalapjára, úgy a legkönnyebb a vizsgálat.)
Üdv. -
Fferi50
Topikgazda
válasz
pero19910606
#42666
üzenetére
Szia!
"nem akarnak költeni a cégnél erre"
Azért 35 Mrd készletérték mellett talán mégis megérné az SAP modulját megvenni. Valószínűleg gyorsabban lenne eredménye, mint a "saját izzadós" dolognak. Nem nagyon hiszem, hogy egy ilyen komplex probléma megoldáshoz innen fogsz sikeres, használható megoldást kapni.
Üdv. -
Fferi50
Topikgazda
válasz
csanyiadam
#42640
üzenetére
Szia!
A C oszlop címkéit szétszedted már. Nem tudom, hány oszlop keletkezett így, de ezeket kellene egymás alá bemásolni egy segédoszlopba. (Tehát pl. D oszlop, majd ennek a végére az E oszlop, ennek a végére az F oszlop és így tovább.) Ezután a segédoszlopot kijelölöd. Adatok - ismétlődések eltávolítása. Maradnak az egyedi címkék, amit oda teszel, ahova neked jó.
Üdv. -
Fferi50
Topikgazda
-
Fferi50
Topikgazda
válasz
dogpatch06
#42615
üzenetére
Szia!
Miért is kéne visszaállítani? Hogy újabb folytatás esetén ismét kelljen vele foglalkoznod?
Üdv.
-
Fferi50
Topikgazda
válasz
csanyiadam
#42611
üzenetére
Szia!
Az adatok menücsoportban a szövegből oszlopok menüponttal tudod külön-külön cellába tenni az adatokat. A címkék sorrendje nem tudom miből derül ki, melyik az 1 - 2 stb. , mivel úgy gondolom, ott értékek vannak.
Ha tévednék és mégis van azonosításra alkalmas érték a cellákban az értékek mellett, akkor azokat külön kellene választani és utána rendezni az azonosítókra. Ehhez elképzelhető, hogy esetleg transzponálni kell az adatokat.
Pici részlete a valódi fájlnak (na persze nem éles adatokkal), sokkal többet mondana.Üdv.
-
Fferi50
Topikgazda
válasz
Retro11
#42603
üzenetére
Szia!
Próbáld ezt a tömbképletet:=SZUM(($A$1:$A$14<>$A$2:$A$15*1*(BAL($A$1:$A$14;4)="SZEG"))
A képlet első része feltételezi, hogy sorba vannak rendezve az azonosítók, továbbá figyelj rá, hogy a hasonlításnál a sorok eggyel lejjebb csúsznak. (Bevitel Shift+Ctrl+Enter)Üdv.
-
Fferi50
Topikgazda
válasz
norby91
#42572
üzenetére
Szia!
Az Indirekthez a tartomány elejét fixen be lehet írni, a végét viszont változóra kell hagyni (legalábbis így gondolom). Ehhez a Cella függvényt használtam.
Az induló kritérium tartomány végét a C1 cellába=CELLA("cím";AAH7), az átlag tartomány végét pedig a D1 cellába=CELLA("cím";AAH4)képlettel adtam meg. Így a számítás képlete a következő:=D7-(ÁTLAGHA(INDIREKT("F7:" & C1);">0";INDIREKT("$F$4:" & D1)))
Ha beszúrsz oszlopot akkor a C1 és D1 cellák tartalma a beszúrásnak megfelelően fog változni.
Remélem sikerül megoldanod.
Üdv. -
Fferi50
Topikgazda
válasz
norby91
#42570
üzenetére
Szia!
Sajnos az Excel olyan "okos", hogy sorok-oszlopok, cellák beszúrásakor, törlésekor a képleteket "hozzáigazítja" a változáshoz, legyen az a képlet abszolút vagy relatív címzésű. Feltételezhetően abból kiindulva, hogy a beszúrás-törlés okán nem szabad változnia a képlet eredményének. Ez a legtöbb esetben meg is felel a felhasználó elvárásainak. A tied valószínűleg a kisebbséghez tartozik

A szöveg formátumban megadott címeket viszont nem tudja megváltoztatni, az idézőjelek közé "nem lát be". Talán érdemes lenne megpróbálkozni az INDIREKT függvénnyel megadni a a képletben használt cella címét. (Jobb kezemmel hátulról megvakarni a bal fülemet...)
A feltételes formázásnál a szabályok kezelése menüpontban láthatod a szabály érvényességi területét - ezt kell átállítanod ahhoz, hogy másik cellát formázzon a feltétellel.Üdv.
-
Fferi50
Topikgazda
válasz
szente
#42548
üzenetére
Szia!
Szerintem cellaformázással megoldható közel hasonlóra. Természetesen a cella egyesítéseket meg kell szüntetni.
A beállítások - speciálisnál leveszed a rácsvonalak megjelenítését (bár úgy látom ez már most is így van).
A csapatok nevét és ahol egyesített cellád volt beírod mindkét sorba a csapattag neve mellé. Az egyiket láthatatlanná teszed a betűformázással.
A cella szegélyeket úgy alakítod ki, hogy a mostani egyesített cellák közé ne kerüljön semmi.
A képeket hozzá tudod "ragasztani" a bal felső cellához, méretezni pedig a kettő magasságára lehet.
Talán így jobban fog tetszeni.
Üdv. -
Fferi50
Topikgazda
Szia!
Nem tudom, hogy a \r\n az tulajdonképpen milyen karaktereket takarhat. A cellákban van a sortörés azt írod. A soremelés karakterkódja 10, a kocsivissza karakterkódja 13, a kocsivissza + soremelés-kombi így karakter(13) & karakter(10) . Ezeket próbáld meg kicserélni a szövegben mondjuk szóközökre.
Üdv.
Esetleg 3 sor minta is jó lehetne, ránézni. -
Fferi50
Topikgazda
válasz
dellfanboy
#42411
üzenetére
Szia!
Szerintem felcserélted az offset-nél a magasság és a szélesség számát. Az 1 legyen a magasság (ami az új sorok számát jelenti) és a Match képlet a szélesség (ami az oszlopok számát jelenti).Üdv.
-
Fferi50
Topikgazda
válasz
tgumis
#42405
üzenetére
Szia!
Ha a "célfüzetben" szeretnél tovább dolgozni, akkor más megoldást célszerű alkalmazni.
A forrás munkalapodat is hozzárendelheted egy változóhoz a cél megnyitása előtt (ez fontos, előtte), utána a másolás miatt nem kell megváltoztatni az aktív munkafüzetet.
Pl.Dim forras as WorkSheetSet forras=ActiveSheet---ide jön a célfüzet megnyitásaSet celfuzet=ActiveWorkbookforras.Range(Range("A2"), Range("K2").End(xlDown)).Copy Destination:=celfuzet.Sheets("anyagbiz_lista").Range("Anyagbiz[Anyagbiz-szám]")
Mivel nem változtattuk meg az aktív munkafüzetet, a másolás után is a celfuzet marad aktív.Az aktív munkafüzet megváltoztatása nélkül lehet műveleteket végezni, ha a munkafüzeteket/munkalapokat változóhoz rendeljük és a makróban a változókat használjuk hivatkozásként.
Üdv.
-
Fferi50
Topikgazda
válasz
CoolBoy323
#42397
üzenetére
Szia!
Akkor használd az INDEX - HOL.VAN függvény párost.
Az INDEX tartománya a teljes teli lap, a második paraméterhez (sor) a HOL.VAN a negyedik oszlopban keressen, az INDEX 3. paramétere (oszlop) pedig amelyik oszlopból szeretnéd az adatot. Ezt kell végig a cél sorodon.
Üdv. -
Fferi50
Topikgazda
válasz
tgumis
#42394
üzenetére
Szia!
A Windows helyett én a Workbooks -ot használnám, az jelöli ki egyértelműen a munkafüzetet. (Tudom, a makrórögzítés a Windowst használja
)
Bevezetnék változókat a munkafüzetekre.
Gondolom ahova másolni kell, azt a munkafüzetet a felhasználó választja ki és nyitja meg.
Nos a megnyitáskor ezt a munkafüzetet hozzárendelném pl. egy celfuzet nevű változóhoz. A továbbiakban pedig ezt használnám hivatkozásként.
pl.Set celfuzet =ActiveWorkbook '(mivel megnyitás után az új füzet lesz aktív)
A copy után meg lehet adni közvetlenül a másolás helyét, ha mindent másolsz.
pl.Range(Range("A2"),Range("K2").End(xlDown)).Copy Destination:=celfuzet.sheets(1).Range("Anyagbiz[Anyagbiz-szám]")
A munkafüzet mellett meg kell adni a munkalapot is(!), akkor is, ha csak egy munkalap van benne.Üdv.
-
Fferi50
Topikgazda
válasz
CoolBoy323
#42393
üzenetére
Szia!
Az FKERES függvény használható arra is, hogy külső munkafüzetből keressen. Az a fontos, hogy a másik munkafüzet is nyitva legyen.
A képletet a függvényvarázslóval szépen megcsinálhatod, ott lehet egérrel kijelölni, ami a képletbe kell.
Üdv. -
Fferi50
Topikgazda
válasz
tgumis
#42385
üzenetére
A törlő makró:
Sub torlo()Sheets("sheetneve").Listobjects("anyagbiz").DataBodyRange.DeleteEnd Sub
A sheetneve helyére írd a munkalap nevét, ahol a táblázatod van.
Gondolom, az anyagbiz a táblázatod neve. Ha a munkalap neve, akkor a sheetneve helyére kell beírnod, a helyére pedig a táblázatod nevét.
Üdv. -
Fferi50
Topikgazda
Szia!
Erre való a HIPERHIVATKOZÁS függvény.
A oszlopban vannak a cikkszámok.
B oszlopban a függvény. B2 képlete:
=HIPERHIVATKOZÁS("IDE írod a mappa teljes elérési útvonalát \" & A2 & ".jpg")
Ez a képlet húzható lefelé.
Ha nincs a cikkszámnak megfelelő kép, akkor hibaüzenetet ad.
Üdv. -
Fferi50
Topikgazda
válasz
dellfanboy
#42361
üzenetére
Szia!
Angol Excelben nem pontosvessző, hanem sima vessző a paraméter elválasztó.
Üdv. -
Fferi50
Topikgazda
válasz
Norbika1493
#42312
üzenetére
Szia!
Két lehetőség - makró nélkül - "félautomatikus"
1. CTRL+0 beírja az adott cellába a mai dátumot. Ez nem frissül tovább
2. Ma() függvény előre végighúzva az oszlopon. Amikor beírod a terméket, akkor az adott soron másolás - irányított beillesztés értéket.
Egyébként valóban makró.
Üdv. -
Fferi50
Topikgazda
válasz
Pakliman
#42293
üzenetére
Szia!
Pedig nagy eséllyel Windows területi beállítási különbségek miatt van.
A VBA-ban alapvetően angol (nemzetközi) beállítások szerint kell a függvények paramétereit megadni. Magyar formátumot csak akkor fogad el. ha a Windowsban is be van állítva.
Pl. előfordulhat, hogy szóköz is van a pontok mellett, vagy nincs pont a végén.
Javaslom, nézd meg a munkalapfüggvény működik-e megfelelően mindkét helyen.
Üdv. -
Fferi50
Topikgazda
válasz
lordring
#42286
üzenetére
Szia!
Az FKERES függvény segít(het) neked.
Én csinálnék egy "fő" munkalapot, ahova az összes adatot összegyűjteném:=FKERES("Összesen:";Munkalapnév!B:C;2;0)
Persze jó lenne, ha a munkalapok neve is valamilyen rendszert követne, mert akkor könnyebb lenne a képletet másolni.
Vagy a munkalapneveket beírni egy oszlopba és utána az=FKERES("Összesen:"; Indirekt(D1 & "!B:C");2;0)
képlet már húzható lefelé
Üdv. -
Fferi50
Topikgazda
Szia!
Az ÉS függvény akkor ad igaz értéket, ha minden benne szereplő feltétel igaz.
Tehát csak akkor lesz igaz az értéke - ezáltal akkor érvényesül a formázás - ha az adott cella sora megegyezik az első paraméter értékével és az oszlopa pedig a második paraméter értékével.
Mivel csak ezt a metszéspontot kell színezni.
Bárhol máshol nézed, a feltétel eredménye hamis lesz, így nem fog - és nem is kell neki - színezni.A @ nem helyettesítő karakter, az csak a ? és a *. Tudomásom szerint csak az egyéni számformátumban levő szöveg helyét jelöli.
Üdv.
-
Fferi50
Topikgazda
válasz
Petium001
#42248
üzenetére
Szia!
Úgy tűnik, hogy a B oszlopban nem számok vannak... Ha nem akarsz egyéni formázást - ami megőrzi a számokat a számoláshoz - az előző hsz. javaslata szerint, akkor a képlet:=FKERES(ÉRTÉK(HELYETTE(B5;"kg";""));$I$1:$J$5;2;1)+HA(B5<=8;C5*0,3;0)Az FKERES függvénynek 4 paramétere van. A harmadik azt az oszlopot jelöli, ahonnan az adatot kell venni. A negyedik pedig azt határozza meg, hogy pontos legyen az egyezés vagy hozzávetőleges.
Üdv.
Ps. A súgó legyen a legjobb barátod. -
Fferi50
Topikgazda
válasz
Petium001
#42242
üzenetére
Szia!
A hivatkozott hozzászólásban mutatott képlet pont ezt csinálja. Csak a 125-öt írd át 1250-re a táblázatban.
A súly a B oszlopban, az érték a C oszlopban van. A táblázatban az I oszlop a súly, a J oszlop a fizetendő érték.
A képlet: =Fkeres(B1;$I$1:$J$5;2;1)+Ha(B1<=8;C1*0,3;0)
A képlet első része keresi meg a súlyhoz tartozó értéket, a második része pedig 8 kg-ig hozzáadja az összeg 30 %-át. 8 kg felett nem ad hozzá semmit.Üdv.
-
Fferi50
Topikgazda
-
Fferi50
Topikgazda
válasz
PeLa87
#42228
üzenetére
Szia!
Makró nélkül is megy, ha minden hónapba beteszel egy segédoszlopot. A képlet attól függ még, hogy a hónapok neve milyen módon szerepel.
Feltételeztem, hogy a hónapok teljes neve a lapok neve is. Ha nem így van, azt hiszem át tudod nevezni. A rövidített nevekkel ennél bonyolultabb a képlet.
Továbbá azt feltételeztem, hogy a nevek az A, a születési dátumok a B, az életkor a C oszlopban van. A segédoszlopot az E oszlopba tettem minden munkalapon.
A fő lapon az első sor lehet fejléc.
Akkor az A2 cella képlete (az első születésnapos neve):=INDEX(INDIREKT(SZÖVEG(MA();"hhhh") &"!A1:C100");HOL.VAN(NAP(MA());INDIREKT(SZÖVEG(MA();"hhhh") & "!E1:E100");0);1)
A B2 cella képlete (az életkora):=INDEX(INDIREKT(SZÖVEG(MA();"hhhh") &"!A1:C100");HOL.VAN(NAP(MA());INDIREKT(SZÖVEG(MA();"hhhh") & "!E1:E100");0);1)
Az A3 cella képlete (a következő születésnapos neve):=INDEX(INDIREKT(SZÖVEG(MA();"hhhh") &"!A1:C100");HOL.VAN(A2;INDIREKT(SZÖVEG(MA();"hhhh") & "!A1:A100");0)+1;1)A B3 cella képlete (a következő születésnapos életkora):
=INDEX(INDIREKT(SZÖVEG(MA();"hhhh") &"!A1:C100");HOL.VAN(A2;INDIREKT(SZÖVEG(MA();"hhhh") & "!A1:A100");0)+1;3)
Ez a két képlet húzható lefelé. Amennyiben már nincs több születésnapos, akkor Hibaértéket fogsz kapni. Ennek elkerülésére az egészet beágyazhatod egy HAHIBA függvénybe.
Akkor is hibát kapsz az első sorba, ha nincs születésnapos, szintén HAHIBA függvénnyel kezelhető, hogy pl. azt írja ki, hogy nincs születésnapos ma.
A hibakezeléseket rád bízom.
A MA() függvények "köszönhetően" minden nap aktuális lesz az érték.Üdv.
-
Fferi50
Topikgazda
válasz
Richard
#42223
üzenetére
Szia!
Ha van a szűrésnek eredménye, akkor csak a szűrt értékeket másolja a DataBodyRange.Copy.
A DataBodyRange az a fejléc és összesítősor nélküli tartományt jelenti. Ha nincs a szűrésnek eredménye, akkor ennek nincs látható része, tehát a SpecialCells(xlCelltypeVisible) hibával tér vissza és ezt a hibaüzenetet az Application.DisplayAlert paranccsal sem tudod elnyomni, csak a megelőző On Error Resume Next utasítással ellenőrizheted, hogy hiba keletkezett-e .
On Error Resume NextListObjects(1).DataBodyRange.SpecialCells(xlCellTypeVisible).CopyIf Err<>0 Then Msgbox "Nincs mit másolni"On Error Goto 0Viszont így a teljes tartomány egyben marad, ezért a sima DataBodyRange.Copy másolja az egészet. (Lehet, hogy ez bug, mert ilyenkor hibát kellene logikusan adni, ezt igazából Redmond tudhatja, miért nem így van.)
A szűrés eredményét a táblázat teljes tartományának vizsgálatával is tudod ellenőrizni.
pl. így, ekkor nem kell hibakezelés bele:ListObjects(1).Range.SpecialCells(xlCellTypeVisible).Rows.Count
Üdv. -
Fferi50
Topikgazda
-
Fferi50
Topikgazda
Szia!
Pár lépés feltételes formázással és szín szerinti rendezéssel elérhető szerintem a kívánt eredmény.
1. lépés:
Kijelölöd a teljes táblázatot - kezdőlap - feltételes formázás - cellakijelölési szabályok - ismétlődő értékek - válaszd az egyedit, mindegy milyen színű lesz. OK.
2. lépés a két utolsó oszlopot, ahol a színek vannak, kijelölöd. Adatok - rendezés - E oszlop szín szerint - nincs cellaszín felül OK.
3.Kijelölöd az A-D oszlopot. Utána feltételes formázás mint az 1. lépésben
4.Kijelölöd a C-D oszlopot. Rendezés mint a 2. lépésben.
Ekkor már tkp. látod, hogy mi az egyedi.
5.Kijelölöd az E-F oszlop "fehér celláit", a színeseket nem!. Feltételes formázás - új szabály - a formázandó cellák kijelölése képlettel: A képlet:=DARABTELI($A$1:$D$20;$F1)>=2
Kijelölsz hozzá egy formátumot. OK
6.A kijelölt területet (E-F oszlop) rendezed szín szerint, de most a színes legyen felül.
Eredmény:
Ezután megszünteted a feltételes formázást, hisz már nincs rá szükség.
A "kilógó" tételeket úgy színezed, ahogyan akarod.
Remélem érthető.
Üdv. -
Fferi50
Topikgazda
válasz
bucihost
#42199
üzenetére
Szia!
Sajnos MS úgy intézte, hogy a felvett makró ne legyen az igazi.
Ma már másként kell a képeket beilleszteni...
Ezt ókumuláltuk ki Delilával:Sub PlacePics()Dim Path As String, Pics As Range, Pic As Range, pc As ObjectOn Error Resume NextPath = "C:\Users\branyiczkif\Desktop\AjanlatKepek\kepek\"Set Pics = ActiveSheet.Range("B2:B20")For Each Pic In PicsPic.Offset(0, -1).SelectActiveSheet.Shapes.AddPicture Filename:=Path & Pic.Value & ".png", linktofile:=msoFalse, saveWithdocument:=msoTrue, Left:=Pic.Offset(0, -1).Left, Top:=Pic.Top, Width:=50, Height:=60If Pic.Value = "" Or Err <> 0 ThenPic.Offset(0, -1).Value = "X"Pic.Offset(0, -1).Font.ColorIndex = 3ElsePic.RowHeight = 60End IfNextCells(1).SelectEnd SubÜdv.
-
-
-
Fferi50
Topikgazda
válasz
bucihost
#42194
üzenetére
Szia!
Mit csinálna a fájl a másik helyen?
Ha a makróval szeretnéd a képeket másik helyen berakni, akkor természetesen nem fogja ott megtalálni azokat.
A beágyazott képeknek elvileg benne kellene lenniük a fájlban (ezért írta Delila, hogy az X kép helyett jelet tegyél a cellába), méret növekedés megmutatja ezt.
Ahhoz, hogy a képek megjelenjenek nem kell újra betölteni azokat.
Üdv. -
Fferi50
Topikgazda
Szia!
Kijelölöd az összes ábrádat a nyilakkal együtt, jobb egérgomb - csoportosítás. Így "egy" ábrává '"olvad össze". Szétbontás ugyanígy a jobb egérgombbal.
Egy-egy alakzatot és nyilat elvileg lehet úgy mozgatni, hogy a nyíl "vándorol" az alakzatnak megfelelően (azaz nyúlik vagy zsugorodik is).
Üdv. -
Fferi50
Topikgazda
válasz
Petium001
#42191
üzenetére
Szia!
Az Fkeres függvény alkalmas rá, a 4. paramétert igaznak beállítva. Csinálsz egy táblázatot, ami a súly függvényében mutatja a szállítási költséget és a haszonkulcsot, figyelembe véve a határokat.
Pl. súly 0 szállítási ktg 10, súly 10 szállítási költség 5, súly 20 szállítási ktg 0
Első oszlop súly, második oszlop ktg. Az Fkeres a határt is beleértve az alatta levő értéket adja vissza.
Ugyanígy a haszonkulcsra is.
Üdv. -
Fferi50
Topikgazda
válasz
Richard
#42187
üzenetére
Szia!
A táblázatokban az a szép, hogy lehet velük szuperül dolgozni.
Pl.Range("Táblázat3[[#All],[Hozam]:[Hozam2]]").Copy
A Hozam és a Hozam2 közötti oszlopokat másolja egy lépésben.
A kettőspont jelenti azt, hogy ami közte van.
Érdemes megnézned a Táblázatok-hoz kapcsolódó Súgót. Ott vannak a műveleti lehetőségek.
(Nomeg néha a makrórögzítés is segít -- mint nekem most
)
Ha a fejléceket nem szeretnéd másolni, akkor a #All helyett írd #Data.Üdv.
-
Fferi50
Topikgazda
válasz
Richard
#42185
üzenetére
Szia!
Az oszlopoknál használhatod a neveket (ha ismered őket) az index szám helyett. Ha több oszlopot is szeretnél kijelölni, akkor az Union függvényt használhatod:With Worksheets("munka1").ListObjects("tabla1")Union(.ListColumns(nev1).Range, .Listcolumns(nev2).Range, . Listcolumns(nev3).Range).Copy 'ahány oszlopot szeretnél kijelölni, annyit kell a függvényhez beírni.End With
Üdv. -
Fferi50
Topikgazda
válasz
Richard
#42179
üzenetére
Szia!
1. Az i és x változód ne Single legyen, hanem Integer vagy Long (ha sok munkalapod van).
2. A Range("A1").Cells(x,1) helyett használd nyugodtan a Cells(x,1) formát, ez a helyes.
3. A Cells(i,x+1) cella az i-edik sor x+1-edik oszlopban, tehát biztosan nem az x-edik sorban.
4. A For Each tbl ciklus pontosan a lehetséges több tábla miatt van.
5. Ha a táblák nevét az A oszlopba betett munkalapnév mellé a B,C stb oszlopban szeretnéd látni, akkor a Cells(x,i) cellába kell íratnod és i értéke 2-től induljon, továbbá minden táblás ciklus előtt 2-re kell állítanod az értékét, hogy ne írja felül az A oszlopban levő értéket.
Remélem, ez alapján már menni fog.
Üdv. -
Fferi50
Topikgazda
válasz
csferke
#42129
üzenetére
Szia!
Azt gondolom én is, hogy akkor két pivot kell, az egyik legyen a diagram forrása, a másik pedig az összeg szemléltetése.
Esetleg még lehetne olyan az összeg szerintiben, hogy egy határ alatt összevonni a cégeket egyéb címszó alatt és az egyéb kategóriát külön kibontani - van ilyen kördiagram fajta.
Üdv. -
Fferi50
Topikgazda
Szia!
Kell hozzá egy segédoszlop és utána feltételes formázással megoldható.
A segédoszlop (a példában X oszlop) képlete: a második cellába:
=HA(B2=B1;X1;NEM(X1))
Ezt végighúzod a segédoszlopon. A képlet eredménye IGAZ és HAMIS lesz felváltva, ahogyan a cikkszámok váltakoznak.
Ezután kijelölöd a formázandó területet. A továbbiakat sajnos csak a magyar nyelvű Excel alapján tudom leírni, de gondolom megtalálod az ábra alapján majd.
Kezdőlap - feltételes formázás - új szabály:
Ezután kiválasztod, hogy a cellák formázása képlettel, beírod a képlethez =$X2
Utána kiválasztod a formátumot, amit érvényesíteni szeretnél az IGAZ sorokhoz.
Majd OK.
Ha nem a kívánt eredmény jön elő, akkor válaszd a Feltételes formázás - szabályok kezelése menüpontot és ott beállíthatod a formázandó tartományt a kívánságod szerint, illetve ellenőrizheted a képletet is.
(A képen azért látsz a képletben $D2 értéket, mert én a D oszlopba tettem azt a képletet, amit nálad az X oszlopba javasoltam.)Üdv.
-
Fferi50
Topikgazda
válasz
harkhon
#42112
üzenetére
Szia!
Egy szép kis tömbképlet jó lehet neked.
1. Másold át a cikkszámokat egy oszlopba vagy egy új munkalapra és távolítsd el az ismétlődéseket.
A következő képletek azt feltételezik, hogy az eredeti cikkszám az A oszlopban, a dátum a B oszlopban, az ár pedig a C oszlopban van.
Az átmásolt egyedi cikkszámok az E oszlopba kerültek, az első sortól kezdve.
Az F oszlopba így kapod az utolsó vásárlás dátumát:=INDEX($B$1:$B$20;HOL.VAN(MAX(($A$1:$A$20=$E1)*($B$1:$B$20));$B$1:$B$20;0))
A G oszlopban pedig az ehhez tartozó ár:=INDEX($C$1:$C$20;HOL.VAN(MAX(($A$1:$A$20=$E1)*($B$1:$B$20));$B$1:$B$20;0))
Mindkét képlet tömbképlet, vagyis Ctrl+Shift+Enter kombóval kell lezárni, az Excel pedig kapcsos zárójelbe teszi, az első sorba kell beírni, majd húzhatod lefelé. A záró sor a $20 helyett legyen a nálad levő utolsó sor.Üdv.
-
Fferi50
Topikgazda
válasz
Peterhappy
#42101
üzenetére
Szia!
Örülök, hogy sikerült, ügyes vagy!Üdv.
-
Fferi50
Topikgazda
válasz
Richard
#42100
üzenetére
Szia!
'"vannak olyan munkalapok ahol egyéb számításhoz szükséges változók és egyebek vannak szintén külön táblában."
Ha tudod, hogy melyek ezek a munkalapok, akkor a nevük alapján ki lehet hagyni a másolásból:Dim mlapnevek as Stringmlapnevek="Munka1,Munka2,Munka5,Munka11"For Each sh In WorksheetsIf sh.ListObjects.Count > 0 ThenIf Instr(mlapnevek,sh.name)=0 ThenFor Each tbljöhet a folytatásNextEnd If
A vastag sorokat kell beírni pluszba. Az mlapnevek változóba azok a nevek kerüljenek, amely munkalapokról nem kell másolni.
Üdv. -
Fferi50
Topikgazda
válasz
Richard
#42097
üzenetére
Szia!
Úgy tűnik, rosszul raktam össze a célba való másolást, az első másolás miatt pedig betettem egy vizsgálatot.If celtabla.Range(2, 1).Value = "" Thenceltabla.Range(2, 1).PasteSpecial xlPasteValuesElseceltabla.ListColumns(1).DataBodyRange.Cells(1).End(xlDown).Offset(1, 0).Paste Paste:=xlPasteValuesEnd If
Azt írtad, hogy több táblából másolsz. Ha ez kevés számú, akkor lehet egymás után többször leírni a kódot más-más táblanevekkel. De már 3 után is megéri ciklusba szervezni. A kérdés az, hogy a táblák külön-külön munkalapon vannak-e (feltételezem), de ugyanazon munkafüzetben..
Ebben az esetben a ciklus:Sub a()Dim sh As Worksheet, tbl As ListObjectFor Each sh In WorksheetsIf sh.ListObjects.Count > 0 ThenFor Each tbl In sh.ListObjectsWith tblUnion(.ListColumns("Név").DataBodyRange, .ListColumns("Cím").DataBodyRange…..).CopyEnd WithIf celtabla.Range(2, 1).Value = "" Thenceltabla.Range(2, 1).PasteSpecial xlPasteValuesElseceltabla.ListColumns(1).DataBodyRange.Cells(1).End(xlDown).Offset(1, 0).Paste Paste:=xlPasteValuesEnd IfNextEnd IfNextEnd SubÜdv.
Ps.
"a táblázat alá ugrik és amikor beilleszti a következő oszlopokat, akkor automatán kiterjeszti a táblát is."
Miért, nem kellene a táblázatot kiterjesztenie a beillesztett adatokra? -
Fferi50
Topikgazda
válasz
Richard
#42095
üzenetére
Szia!
1. Amennyiben a cél táblába egymás mellé kerülnek az oszlopok, akkor az Union függvény használatával egyben átmásolható a kívánt oszlopszám:
Az értékek átmásolásához célszerű a céltáblát változóba tenni:Dim celtabla As Listobject, usor As LongSet celtabla =Worksheets("Munka_cel").Listobjects("Tbl_cel")With Worksheets("Munka_forras").Listobjects("Tbl_forras_1").Union(.Listcolumns("Név").Databodyrange,.Listcolumns("Cím").Databodyrange…..).CopyEnd With
2. A céltábla utolsó sor után a bemásolás:celtabla.Databodyrange.Listcolumns(1).Cells(1).End(xlDown).Offset(1,0).Paste Paste:=xlPasteValuesAz első másolásnál még maradhat a Range(2,1), de ne feledd ekkor egyben jön a 8 oszlop adata már.
Természetesen a sok tábla másolását csinálhatod ciklussal és akkor a forrás tábla neve helyett az indexét használhatod.
Ha kérdésed lenne, csak írj.Üdv.
-
Fferi50
Topikgazda
válasz
Peterhappy
#42091
üzenetére
Szia!
A PowerPivotból tudja normálisan. Lépések:
A fejlesztőeszközök - Com bővítmények között aktíválod a PoverPivot bővítményt
1. Nyitsz egy új üres munkafüzetet.
2. Átmész a PP ablakba - a Kezelés menüponttal
3. Kezdőlap - Külső adatok beolvasása -- Más forrásokból - kiválasztod az Excel fájlt,
4. Kiválasztod az Excel fájlod, amiben az adatok vannak.
5. Kiválasztod a munkalapot belőle ($ jel lesz a név végén).
6.Beolvasás. - ha vannak ott olyan adatok, amelyekre nincs szükséged, törölhetők
7. Még mindig a PP ablak Kezdőlap fülén - Kimutatás
és innentől úgy, mint az Excelben, kiválasztod a mezőket és az összegzési függvényeket, a kimutatás az Excel munkalapra készül el.
Ez már normálisan formázza a dátumot. (Legalábbis nálam így volt.)Üdv.
-
Fferi50
Topikgazda
válasz
Peterhappy
#42087
üzenetére
Szia!
Te most fogod a fejed a falba verni, én már túlvagyok rajta!
El kell felejteni az Excel dátumbontását, mert egyszerűen nem működik tisztességesen a kimutatásban. Ahhoz hogy rendesen láthassuk a nap - hónap - év felépítését és a napok "olvasható" formában szerepeljenek, mindent amit eddig gondoltunk, sutba kell dobni. Legalábbis a 2016-os Excel ilyen rettenetesen viselkedik, hiába állítgatjuk a formátumot, az neki smafu.
Mit is kellett csinálnom, hogy ilyen formátumú kimutatást kapjak:
Három + oszlopot csináltam.
1. oszlop az évet tartalmazta az év függvény szerint (azaz =ÉV(A2))
2. oszlop a hónapok nevét a HÓNAP függvény és a Választ függvény használatával:=VÁLASZT(HÓNAP(A2);"JANUÁR";"FEBRUÁR";"MÁRCIUS";"ÁPRILIS";"MÁJUS";"JÚNIUS";"JÚLIUS";"AUGUSZTUS";"SZEPTEMBER";"OKTÓBER";"NOVEMBER";"DECEMBER")
3. oszlop a dátumot szöveg formátumban:=ÉV(A2) & "." & JOBB("00" & HÓNAP(A2);2) & "." &JOBB("00" & NAP(A2);2)
Ezután a kimutatásba ez a három oszlop került be és szépen is mutat.
Nem tudom, mitől bolondult meg, mert a korábbi Excelben létrehozott kimutatásaim szépen működnek dátum alábontással továbbra is.
Talán a korábban létrehozott oszlopaid közül fel tudsz használni párat....
Még utána nézek, hogy Power Pivotban lehet-e valamit varázsolni. mert ez így nagyon-nagyon gáz szerintem.Üdv.
Új hozzászólás Aktív témák
- Kerékpárosok, bringások ide!
- gban: Ingyen kellene, de tegnapra
- Milyen billentyűzetet vegyek?
- Mesterséges intelligencia topik
- Ilyen olcsó sem volt még egy Apple notebook
- Ingatlanos topic!
- Vivo X200 Pro - a kétszázát!
- Videó stream letöltése
- Path of Exile (ARPG)
- Túl nagy alkatrészt vettél? Így kerülheted el a PC-építés legnagyobb hibáját
- További aktív témák...
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Játékkulcsok ! : PC Steam, EA App, Ubisoft, Windows és egyéb játékok
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- MEGA AKCIÓ! - Jogtiszta Windows - Office & Autodesk & CorelDRAW - Azonnal - Számlával - Garanciával
- CÉGEK FIGYELEM!! iPhone 11 64GB Black -1 ÉV GARANCIA - 27% ÁFA-S SZÁMLA Kártyafüggetlen, 100% Akksi
- iPhone 17 Pro Max Kozmosznarancs - Bontatlan !! www.stylebolt.hu - Apple eszközök és tartozékok !!
- iPhone 14 Pro 256GB 100% (1év Garancia) - AKCIÓ
- Apple iPhone 15 128GB,Újszerű,Dobozaval,12 hónap garanciával
- HP Dell, üzleti kategóriás notebook kiárusítás - frissítve: 02.28
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


)




