-
PROHARDVER!
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
-
Louro
őstag
Sziasztok!
Fejre állok lassan, annyira nem találom a megoldását a lenti gondomnak.
Nemrég cseréltem laptopot, amihez volt Windows és Office is. Gondoltam az egyik makrómon kicsit javítok és teszek be pár hibakezelést. Mivel a munkalapok nevei tartalmaznak ékezetes karaktereket, Subscript Out of Range hibaüzenetet kapok. Ha lecserélem őket az ékezet nélküli "párjaikra", akkor persze lefut.Notepad ++-szal megnéztem és a VB kódban az "ő" betűmet a hullámos verzióra cserélte. Sajnos az előző gépemen nem emlékszem milyen Office volt, de most 2019 Pro van rajta. Lehet a korábbi verzió tudott kezelni speciális nyelveket és az új nem? Vagy valami környezeti beállítás lenne?
Példa:
Készítettem egy új Excel állományt. Átneveztem a munkalapot TesztŐ-re. A makró tartalma:
Sub teszt()
Sheets ("TesztŐ").Range("A2").Select
End SubEzt bemásolva a VB editor-ba:

-
Louro
őstag
Sziasztok!
Rég jártam erre, de most kifogtak rajtam
Még Guglizni sem tudom, hogyan lehetne. Adott egy fájl, mondhatni egy sablon. Ezt kitöltik, majd egy gomb segítségével lefutnak kalkulációk és egy xml mentés. Semmi gond nem volt eddig vele.
De most szóltak, hogy ha megfuttatja a felhasználó, akkor problémás. Megfuttatja a főnöke, akkor jó. Én is megfuttattam és nálam is rossz.Az érintett rész egy dátumot tartalmaz Date formátumban, ami yyyy.mm.dd
A rá futó VBA kódrészlet: Replace(Worksheets("főlap").Range("C33"), ".", "")Ez eddig visszaadta, hogy yyyymmdd. De most nálam is valamiért a pontokat szóközökre cseréli. Ha kiveszem azt a képletből, hogy a főnöknél jó, akkor is furcsa. Vagy használjak inkább application.text() függvényt? Bár akkor se magyarázat a hibás működésre. Az meg, hogy a főnök futassa ezentúl, nem járható út
Van ötletetek?
-
Louro
őstag
válasz
Fferi50
#48592
üzenetére
Igen, mert az egyedi ügyfélazonosítókat (oszlop1) kell megszámolni.
De hagyd. Kitaláltam, hogy a lista végére csinálok képletezett oszlopokat, ahol ha üres 0, különben 1 értéket kap. Így könnyűszerrel szűrhető. Csak majd hatalmas piros betűkkel felirom, hogy ne nyomja meg kétszer a ctrl+a kombót a forráson, amikor átmásolja. Különben az egész munkalapot felülírja. Az oszlopok száma fix, így talán nem csúszik el neki. Tömbfüggvényt igyekszem kerülni, még ha azzal lehetne egyedi értéket számolni. Sajnos botlottam bele korábbi munkahelyen, hogy aki átvette, nem ismerte és nem értette, hogy ő írja be a kapcsos zárójeleket, miért nem működik. Könnyen karbantartható megoldás kell.
-
Louro
őstag
válasz
Fferi50
#48590
üzenetére
A shift és ctrl jelölést ismerem. A properties-ben van no data, de amit tegnap rittyentettem itthonra demónak, ott nem működött, de lehet csak fáradt voltam. Meglesem

Készítettem egy minidemót: [link]
A slicernél is max az állítható be, hogy a listán mi jelenjen meg.Például, ha a B11-be beírok egy 1-est -, ami eddig nem volt -, akkor a Data/Refresh all-ra a slicer jól működik, mert a korábban kijelölteket tartja meg. Az újakat nem veszi fel. De nem tudok olyat megadni, hogy nagyobb legyen, mint X, mint a pivot többi mezője esetén.
-
Louro
őstag
válasz
Fferi50
#48588
üzenetére
Nem jó, mert ha új érték jelenik meg, akkor a slicerben is kijelöletlen lesz. Nem lehet úgy szűrni, mint a Rows vagy Columns pivotmezőkben
Nem értem miért nem lehet megadni, hogy Greater than... . 
Kicsit konkrétabban. Egyik oszlopban ügyfélazonosítók. Másikban mennyiségek. Harmadikban dátumok. Mivel az alap fix, így bővíteni nem lehet. Pedig milyen jó lenne egy segédoszlop, hogy ha töltve van, kap egy 1-est és akkor könnyű szűrni

Heti bontásban kellene megmutatni ,hogy mennyi egyedi ügyfélazonosító volt, ahol a mennyiség ki van töltve. (Ha nincs rendelés, csak látogatás, akkor nincs mennyiség.)
Az adatmodel az egyedi ügyfelek megszámlálása miatt kell. A heti bontás pipa. De azt nem tudom betenni, hogy csak azokat vegye figyelembe (report filter) ahol van mennyiség töltve :/
-
Louro
őstag
válasz
Fferi50
#48586
üzenetére
Tudtam, hogy valamit lehagyok. Office 365. De a slicerben van olyan, hogy csak a töltött mezőket? MEglesem. Jó lenne, ha nem kellene mindig frissíteni a szűrőket is. Elég lenne csak a Data/Refresh all-t megmutatni a kolléganőnek.
Ha nagyon nem megy, marad a makró persze.
-
Louro
őstag
válasz
Fferi50
#48584
üzenetére
Sziasztok!
Lusta vagyok makrót írni, így fennakadtam egy dolgon. Pivot tábla. Adatmodelt kell használni, mert egyedi értékeket kell számolni.
Ami fejtörést okozott és nem találtam a neten megoldást az az, hogy a szűrőben (filter) csak a töltött cellákra kellene szűrnöm. Ez még oké, ha statikus a forrás. De frissíttetném vele és akkor amint van új adat az oszlopban, akkor bajba kerülök, mert manuálisan kellene bejelölni.
Van erre ötletetek? Ha az segít, az oszlopban számok vannak 0-tól kezdve a végtelenségig
Makró nélkül megoldható? -
Louro
őstag
válasz
Fferi50
#44689
üzenetére
Amúgy nagyon brutál különbség jött ki a két megoldás között.
40000 sorral:
A For Each ciklussal 10 másodperc alatt iterált végig.
Ha a tartományba "beíratom" a képletet, majd felülírom az értékével a cella tartalmát, akkor 0,1-0,2 másodperc.Pedig azt hittem, hogy ha képletet írok be, akkor a vége felé belassul a sok képlet miatt. Tudom, kikapcsolhattam volna az automata kalkulációt és a végén vissza. Vagy cellánként beiratom. Bár úgy látom, hogy ha a tartományba íratom be a képletet, akkor egyszerre írja be a program.
-
Louro
őstag
válasz
Fferi50
#44689
üzenetére
Köszönöm, akkor marad a ciklus.
Első körben pont egy mini tesztet akartam, hogy melyik a gyorsabb.
1. ha beírom, mintha az Excel-be írnám be a képletet, majd Paste As Values.
2. ha egyből beírom az eredményt a tartományba
3. ha ciklussal végigiterálva beírom az eredményt cellánként.Persze így se lassú a makró, de gondoltam kísérleteznék, afféle személyes fejlődés gyanánt.
Köszönöm!!!!
-
Louro
őstag
Sziasztok!
A feladat, ami megfogott és a Google se segít. Adott egy feltételvizsgálat. Az első két karakter szám, akkor csak azt, különben semmit ne írjon ki.
Persze IF-THEN-ELSE megoldással meg tudnám csinálni, csak hosszú lenne. For ciklussal kiegészítve.
IIf-fel próbálnám.
Valami ilyesmi lenne:
Range("B1: B10000") = IIf(IsNumeric(Left(????,2)),Left(????,2),"")A kérdőjelek helye kérdéses.
-
Louro
őstag
-
Louro
őstag
Sziasztok!
Tudtok arra módot, hogy egy munkalap tartalmát könnyű szerrel kimentsem .csv állományba (igazából XML, de ez most lényegtelen szerintem) és fontos, hogy utf-8 kódolással?
Amit most használok:
Dim xml_text As Variant'Stream létrehozása az XML-hezSet st = CreateObject("ADODB.Stream")'Karakterkódolás beállításast.Charset = "utf-8"st.Type = 2 ' adTypeTextst.Openxml_text = GetTextFromRangeText(XMLsablon.UsedRange)st.WriteText xml_text'XML mentésest.SaveToFile ThisWorkbook.Path & "\A60_bevallás_" & Application.Text(Now(), "yyyymmdd") & ".xml", 2
AGetTextFromRangeTextigazából csak annyit csinál sajnos erőforrásigényesen, hogy egy változóban összeszedem a tartalmakat. A makróm feldolgozásának közel 90%-a erre megy el
-
Louro
őstag
válasz
torrentwarez
#42711
üzenetére
Én a Google-be beírom, hogy "Excel angol magyar függvények". Az első találat elég jó. A biprojekt kellően komoly, hogy hihető legyen
Sok hasznos dolog van ott.Wow, ez nincs ott. Valami új függvény lehet. (Megpróbáltam, így off-ba teszem.)
-
Louro
őstag
válasz
Gabiwan
#42682
üzenetére
Ha, ismétlem HA olyan nem fordulhat elő, hogy egy gyártó mondjuk egy X-et ír a termék nevébe, akkor lehet rá egy kicsit csúnyácska megoldás.
A többiek miatt: OR(ISNUMBER(SEARCH("xl";A2));ISNUMBER(SEARCH("xxl";A2));.....)
Mivel az elején és végén is lehet, ezért nem tudtam elé és mögé szóközt tenni.
Mivel egy ruha neve lehet "Longsleeve", ezért az L-es méretnél szívás.Vagy lekezelni rengeteg esetet. Ha ez elején szerepel a méretek egyike és utána egy szóköz. Vagy a végén szerepel a méretek egyike és előtte egy szóköz. Vagy ha középen van, akkor előtte és utána is lehet a méreteknél szóköz.
Méretek, ahogy látom: XXS, 2XS, XS, S, M, L, XL, XXL, 2XL, XXXL, 3XL, XXXXL, 4XL. Elég sok érték. Ezt szépen nem lehet megoldani.
-
Louro
őstag
válasz
norby91
#42568
üzenetére
Szia,
ha azt akarod, hogy ne mozduljon el a képletben a hivatkozás, akkor a $ jelekkel meg kell ismerkedned.
F7 helyett $F7 legyen és akkor szúrhatsz be oszlopokat, az mindig F7 lesz. Ha sorokat is akarsz beszúrni, akkor $F$7 legyen
A másodikra céges gép miatt nem tudok válaszolni. De általában mindig biztosítják a lehetőséget a saját definíció megadására. Érdemes megnézni a lehetőségeket.
-
Louro
őstag
Feltételes formázásnál egy saját képletet adnék meg azon az oszlopon, ahová az adatokat fogják írni.
=HA(VAGY(A1="Bizonylatdátum";A1="Szállítási határidő");BAL(B1;4)&"."&KÖZÉP(B1;5;2)&"."&JOBB(B1;2);B1)
Kicsit csúnya, de valamiért a SZÖVEG függvénnyel nem sikerült a dátumot megformáznom.
Annyit csinál, hogy ha az A1-ben a két érték egyike van, akkor az odaírt számot szétkapja. Feltételezhetően 8 számjegy kerül olynakor oda.
-
Louro
őstag
válasz
norby91
#42484
üzenetére
*Szerk: Leesett. Google Táblázatban nem nagyon dolgoztam még. De leesett, hogy ott a pivot. Mondjuk azt nem lehetne, hogy egy alap pivot-ot összeraksz és a szűrőbe teszed be a feltételt, a 100-199 között?
Amúgy sikerült reprodukálnom a hibát. Csináltam három oszlopot. Egyikben nevek, másikban számok, harmadikban pedig =B2, azaz a B oszlop értékei behivatkozva. Ha csinálok erre egy pivotot és megnézem a 3. oszlopra az átlagot mondjuk. Addig jó. De amint törlöm a B oszlopot, a hivatkozás megszűnik és #REF lesz a helyén. A kimutatást frissítve is a hibaüzenetek lesznek ott.
Ennél a minitáblázatnál úgy lehetne lekezelni, hogy a C oszlopba nem =B2, hanem =IFERROR(B2;"") képletet írnám. Így, ha törlődik is a B oszlop, nem lesz baj.Remélem tudtam segíteni.
-
Louro
őstag
válasz
Fferi50
#42480
üzenetére
Ha magamnak csinálom a forrást, mindig lecserélem ezeket. De sajna adminisztratív hölgyek ülnek a felhasználói oldalon. Ők másolták be a levelezéseket egy cellába. Ha én most egy sorba teszem, akkor morogni fognak, hogy "de bénák vagytok".
De, ha duplaklikkel nyitom meg a CSV állományt, a (hülye) Excel felismeri a szövegjelölőt és egy cellába pakolja.
Példa a cella tartalmára:
"Ügyfél az alábbit írta 2020.01.01. 00:01:32Kedves Címzett!
Szeretném közölni Önökkel, hogy a fagyijuk nem hogy kellemes, de leforrázta a nyelvet és emiatt 8 napon túl gyógyuló sérülést szereztem.
Ezúton szeretnék kárpóltást kérni Önöktől, mert bízom a cég jó hírnevében.
Tisztelettel,
Kis Jancsika"Beimportálva, makróval a forrást megnyitva szétesik. Már arra is gondoltam, hogy egy oszlopba beolvastatom és ciklussal szedetem szét, de ez nagyon ciki. Ha duplaklikkel nyitom meg, akkor jó.
Itt egy mintaállomány: https://drive.google.com/open?id=1ETUmKncvdnGcz7bztbq8u4jlLNgWB5BG [link]
Megnyitva jó, de makróval:
Workbooks.Open(".....") -
-
Louro
őstag
Sziasztok!
Annyi sok dolgot tanultam innen és azóta kicsit önjáró módon képeztem is magam. De most....szétvet az ideg, mert....
A feladat: Adott egy SQL-ből kiexportált tábla. Van nem is egy mezője, ami egy cellán belül sortöréseket is tartalmazhat. (\r\n) Szeparátor tabulátor.
Bárhogy is próbálom beimportálni Excelbe, elvérzek. A \r-t, a \n-t próbáltam lecserélni. Sorvégjelölőt átállítani. Szövegjelölőt is használok ( " ). De semmi. Folyton a forrásban levő sortörés mentén akar tördelni.Persze a Stackoverflow egy akkora pofonba szaladtam, hogy most itt tartok. Ha duplaklikkel nyitom meg, akkor szépen megnyitja. Már az első verziót is. Mondom jó, feladom, makróval megnyitom a fájlt és úgy másolom át a tartalmat. Ciki, de, ha nincs más út. Futtatva hülyén tördelt. Na mondom itt mi az extra? Makrófelvevővel ugyanaz a kód.
Ha duplakattal nyitom meg a .csv állományt, jól nyitja meg. Ha makróval vagy text importer-rel, akkor szétesik
A felhasználókra nem bíznám a kimeneti állományt, mert tuti nem zárnák be a nap végén és másnap, amikor frissülne, hibára futna, mert valaki lockolja az állományt
Ötlet?
-
Louro
őstag
válasz
dm1970
#41543
üzenetére
Szia,
lehet tömbfüggvénnyel oldanám meg.
A képlet így nézne ki:
=MATCH(FALSE;ISBLANK(A1:H1);0)
Majd nem Enter, hanem CTRL+Shift+Enter. Ezt a képletet pedig lefelé tudod másolni
Ha magyarul kell, akkor
=HOL.VAN(HAMIS;ÜRES(A1:H1);0)Tök mindegy mivel van feltöltve, visszadja, hogy hol van az első feltöltött cella a sorban.
A VKERES-sel szerintem az volt a baj, hogy eleve megadtál neki egy segédoszlopot a 8. sorban. Na meg a H oszlopban nem tudom mi az a szám, de ahhoz közelítő értéket keres. Mivel nem adtad meg az utolsó paramétert, megközelítő számot keres. Mivel betű van ott, ezért kaptál hibát. A korábbi megoldás elég nyakatekert megoldás volt (számomra).
-
Louro
őstag
válasz
TheSaint
#41541
üzenetére
A vezérhangya nem hagyott békén, így lett egy kicsit igényesebbnek tűnő megoldás.
Jelöld ki azt a tartományt, amit színezni szeretnél az első sort kihagyva. Az marad fehér.
Feltételes formázás (conditional formatting), majd a legalsó és New Rule és legalsót válaszd.A képlet: =OR(AND($E1=$E2;CELL("color";$E1)=1);AND($E1<>$E2);CELL("color";$E1)=0))
Majd válasz egy színt a Format alatt lévő Fill fül alatt. Végén maradnak az Ok-Ok.
Mit is csinál a képlet:
Amennyiben megegyezik a két azonosító és az első formázott (színezett), akkor beszínezi. Ha nem egyezik meg az előtte lévővel és az előtte lévő nincs színezve, beszínezi.Így segédoszlop nélkül megúszható
Kipróbáltam is. 
-
Louro
őstag
válasz
TheSaint
#41535
üzenetére
Lehet gagyi lesz, de 10 másodperc alatt azt mondanám, hogy F oszlopba egy sorszám, ami így nézne ki:
F1: 1
F2 és alatta: =IF(E2=E1;F1;F1+1)Majd erre dobnék egy feltételes formázást úgy, hogy a sorokat színezze aszerint, hogy páros vagy páratlan szám van az F oszlopban.
A feltételes formázásnál saját képletet használnék: =MOD(F1;2)=0, a formátumnál meg a színt kiválasztanám.
-
Louro
őstag
válasz
Sutyi73
#41533
üzenetére
Nem teszteltem, de valahogy így

A célmunkalapra a fejlécet azért átmásolnám első körben és utána futtatnám.Sub GetInfo()
Dim wb As Workbook
Set wb = Activeworkbook
Path = "C:\Temp\"
Filename = Dir(Path & "*.xlsx")
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
Range("A2:G"&Activesheet.Usedrange.Rows.Count).Copy _
Destination:=wb.Worksheets("Célmunkalap").Range("A" & wb.Worksheets("Célmunkalap").Usedrange.Rows.Count + 1)
Workbooks(Filename).Close
Filename = Dir()
Loop
End Sub -
Louro
őstag
Szia,
ha jól értem itt annyiról lenne szó, hogy adott egy "fájlom.xlsx" állomány, aminek van egy "2019" nevű munkalapja és onnan az egyik - példa kedvéért A1 - cella tartalmát akarod behivatkozni.
Erre vagy azt szokták csinálni, hogy megnyitják a két állományt és a célfájlban kiválasztják a célcellát, majd = és utána átmennek a forrásállományba, ahol rákattintanak a forráscellára.
Ha pötyögős vagy, mint én, akkor =[fájlom.xlsx]2019!A1
Ha változóval akarod megoldani a hivatkozott munkalapot, akkor szerintem(!) a makró elkerülhetetlen.
-
Louro
őstag
válasz
FSR-27
#38624
üzenetére
Nekem lehet egy kicsit csúnyább megoldásom lesz, de lehet van szebb is. Az AC oszlopba kimásolnám a H oszlopot (=H5);AD-be az M-et és így tovább.
Majd ahol összeadnád a top3-at, oda =LARGE(AC:AG;1)+LARGE(AC:AG;2)+LARGE(AC:AG;3)
Lehet van szebb megoldás is, de nekem ez a leggyorsabb. Picit a táblázat ahhoz, hogy performanciát nézzek.
-
Louro
őstag
válasz
FSR-27
#38610
üzenetére
Tetszik a feladvány, de mi van, ha az alábbi lesz a lista?
54,54,65,10,54
Makróval gyerekjáték lenne, de függvénnyel esküszöm hirtelen megoldást nem tudok.
Amúgy meg is van.
=SUM(A1:A5)-SMALL(A1:A5;1)-SMALL(A1:A5;2)
De lehet fordítva is:
=LARGE(A:A;1)+LARGE(A:A;2)+LARGE(A:A;3)
Nem teszteltem, de több azonos esetén gondolom az elsőt venné alapul.
-
Louro
őstag
válasz
Fferi50
#37176
üzenetére
Erre én is gondoltam, de az kb. büntetés a felhasználóknak, hogy "körlevél-zárjátok be most-átállítja nem közös munkafüzetre-frissít-visszaállít közösre-munka folytat".
Ez (is) elég fura megoldása a M$-nak.
Akkor mai munkám kb. kuka is lesz. SP-t meg annyira nem ismerem, hogy rövid idő alatt kitanuljam, miként tudnék SP listát .csv-vel etetni. (Ez már csak siránkozás, bocsi.)
-
Louro
őstag
Annyi okosságot tanultam itt, de most újra hozzátok kell fordulnom, mert nagy fába vágtam a fejszém.
Adott egy megosztott (shared) Excel. Van benne egy külső fájlból hivatkozás. Azaz a fájl tartalma van kapcsolat révén bekötve. Azért, hogy amit adatbázisból kinyerek, azt ebbe az Excelbe be tudják folyamatosan frissíteni. És sajnos azért kell a megosztás, mert több felhasználó használná egyszerre.
A gondom, hogy ha megosztom az Excelt, nem lehet frissíteni a kapcsolatot. Gondoltam makróval kijátszom és kirakok egy gombot a célra. Gombra rányomva nem elérhető a refreshall objektum.

Hátha valaki belefutott már.
-
Louro
őstag
válasz
stigma
#35498
üzenetére
Első lépésben a vezérlőpultban megnézném a területi beállításokat, hogy ott hogyan szerepel a dátumbeállítás. Lehet elállítódott

Sajnos dolgoztam olyan helyen, ahol napi szinten állítgatták a külföldi vezető miatt, akinek csak az amerikai dátumformátum volt értelmes, míg minden más a éééé.hh.nn formátummal dolgozott.
-
Louro
őstag
válasz
benedekco
#33596
üzenetére
SZia,
én ezt úgy oldanám meg, hogy csinálnék egy segédoszlopot. Abban lennének a dinamikus, változó hivatkozásrészek.
Példa kedvéért legyen az A oszlopban van.B1-be meg beírnám, hogy ="https://prohardver.hu/tema/excel/"&A1
(Itt az A1 tartalma: 14-14.html )Ha csak a számot akarod megadni:="https://prohardver.hu/tema/excel/"&A1&"-"&A1&".html"
(Itt az A1 tartalma: 14 )Ha pedig tartományt szeretnél, pl. https://prohardver.hu/tema/excel/hsz_14-18.html , akkor két segédoszlop kell. Legyen a 2. segédoszlop a B.
A C1-be akkor a következő kellene: ="https://prohardver.hu/tema/excel/"&A1&"-"&B1&".html"
(Itt az A1 tartalma: 14, B1 tartalma 16 )Ha pedig hivatkozást szeretnél csinálni, hogy csak kattintsanak, akkor kell elé egy HIPERHIVATKOZAS nevű függvény.
Példa az első alapján: =HIPERHIVATKOZAS("https://prohardver.hu/tema/excel/"&A1)De sok igény

Ha a linket el akarod nevezni, akkor tegyük fel, hogy csak a sorszámot akarod a link nevének megadni. Amit mutasson a függvény.
=HIPERHIVATKOZAS("https://prohardver.hu/tema/excel/"&A1;A1)Vagy csinálsz egy segédoszlopot, amiben adsz egy szép nevet a linknek és azt hivatkozod be a függvénybe a pontosvessző után.
-
Louro
őstag
-
Louro
őstag
válasz
Mela Kehes
#33565
üzenetére
Ha D meghajtóra másolod, akkor lehet ugyanolyan könyvtárstruktúrát készíteni és akkor kompatibilis lesz

Az #ÉRTÉK hibaüzenetet azért adhatja, mert a hivatkozott cella tartalma is érték. Én általában lustaságból szoktam így hivatkozni más fájlokra. Egyszer megnyitom és egyenlőségjel után kattintok arra, amit szeretnék elhozni. Olyan, mintha copy->paste lenne.
@Imy: [link]
Videó. Itt fontos, hogy a legördülőben válaszd az Új szabályt. A legalsót válaszd ki. A formázandó cellák kijelölése képlettel. Majd írd be =ÜRES(A1) .... értelemszerűen azt a cellát írd be, amire a vizsgálatot szeretnéd. Ha másolni szeretnéd a formázást, akkor a Kezdőlap menüszalag Vágólap (első szekció) részén láthatsz egy Formátummásolót. Először állj a másolandó cellára. Majd katt a menüpontra és utána jelöld ki azt a területet, ahol alkalmazni szeretnéd ugyanazt.
-
Louro
őstag
válasz
Mela Kehes
#33556
üzenetére
Én úgy csalnék, hogy megnyitnám a másik fájlt. Ahová akarod hivatkozni, oda = jel után kattintanék a forrásra és kész. Így nem kell kézzel beírni a hivatkozást.
@Reinhardt: Az idővel úgy játszanék, hogy =HA(D2<C2;24-C2+D2;D2-C2)
Így megvan az éjszakai munkaóra
-
Louro
őstag
[megoldva]
-
Louro
őstag
válasz
zapikanka
#30099
üzenetére
Szia,
én is hasonló cipőben jártam. Először az volt, hogy rengeteg excel-t kellett feldolgoznom. Ugyanazzal a metódussal. Itt rákérdeztem és a makrót ajánlották. Rávezettek. Elsőként a makrórögzítőt használtam, majd értelmeztem a kódot. (Ez időt igényelt, de később megtérült, hogy értettem is a kódot.) Majd elkezdtem újabb célokat kitűzni. Ne kelljen betallózni a fájlokat, hanem egy mappa alatt levő excel fájlokat dolgozzon fel. Rágugliztam és a stackoverflow és e fórum segítségével meglett a megoldás.
Röviden: Első lépésként makrórögzítőt javasolnám - diagramok előállítását mai napig ezzel csinálom meg és a szükséges pontokat írom csak át. A kódot nézegetném és értelmezném. Ha van informatikai affinitás, akkor hamar ráérzel

Második lépésként kis lépésekben tűznék ki célokat, amikre rákeresek a neten. Ha nem találsz megoldást, akkor itt tenném fel a kérdést.A legfurcsább talán ez lesz: Nem a makrózás a legnehezebb szerintem, hanem annak kitalálása, hogy mit csináljon. Az egyik vezetőmnek pl. egy 2500 soros riportot kell havonta update-elnem. Tehetném azt, hogy soronként megírom a függvényeket, de mivel van, ami ismétlődik ott ciklust használok, változóban tárolok.
-
Louro
őstag
Ne nevessetek ki kérlek

Előttem már egy naptár is. Lehet többeket is érint.
Most néztem, hogy az előző hétre a HÉT.SZÁMA függvény 2015.12.31-ig jól adja, hogy 53. hét, de 2016 első 3 napjára már 1. hetet ír. Ez még korrigálható lenne egyszer, de megnéztem, hogy mára mit ír.Naptár szerint 1. hetet írunk, míg Excel szerint már 2. lesz.
Eszerint is 1. hetet írunk ma.A páciens: Microsoft Office 2010.
Hol lehetne átállítani? Vagy csak újévi másnaposság csak és elmúlik? (A =HÉT.SZÁMA(MA();21) megoldaná, de akkor rengeteg riportot kellene módosítani.
) -
Louro
őstag
válasz
Delila_1
#30000
üzenetére
Bocsi, az régi beidegződés, mert az elején még több cellába akartam a képletet beszúrni.
De megnézem Range-ek nélkül.
Azért akartam az Application.SumProduct-tal megoldani, mert a script-ben azt használok a többi helyen. Azért, hogy ne kelljen utána felülírnom önmaguk értékeivel a cellákat. (Ne képletek maradjanak a táblázatban.)
-
Louro
őstag
Nagyon tákolt, de működő megoldás:
Range(Cells(BASE_INFORMATION_IDX + 11, REPORT_MONTH_IDX), Cells(BASE_INFORMATION_IDX + 11, REPORT_MONTH_IDX)).Formula = _
"=SUMPRODUCT(" & Range(Cells(BASE_INFORMATION_IDX + 1, REPORT_YEAR_IDX + 5), Cells(BASE_INFORMATION_IDX + 1, REPORT_YEAR_IDX + 5)).Address(0, 0) & ":" & _
Range(Cells(BASE_INFORMATION_IDX + 1, REPORT_MONTH_IDX), Cells(BASE_INFORMATION_IDX + 1, REPORT_MONTH_IDX)).Address(0, 0) & "," & _
Range(Cells(BASE_INFORMATION_IDX + 10, REPORT_YEAR_IDX + 5), Cells(BASE_INFORMATION_IDX + 10, REPORT_YEAR_IDX + 5)).Address(0, 0) & ":" & _
Range(Cells(BASE_INFORMATION_IDX + 10, REPORT_MONTH_IDX), Cells(BASE_INFORMATION_IDX + 10, REPORT_MONTH_IDX)).Address(0, 0) & "/" & _
"SUM(" & Range(Cells(BASE_INFORMATION_IDX + 1, REPORT_YEAR_IDX + 5), Cells(BASE_INFORMATION_IDX + 1, REPORT_YEAR_IDX + 5)).Address(0, 0) & ":" & _
Range(Cells(BASE_INFORMATION_IDX + 1, REPORT_MONTH_IDX), Cells(BASE_INFORMATION_IDX + 1, REPORT_MONTH_IDX)).Address(0, 0) & "))"Csak gondoltam egyből lehetne Application.SumProduct-tal is megoldhatnám, hogy egységes, "szép" képet mutasson a script.
-
Louro
őstag
válasz
Delila_1
#29997
üzenetére
?activecell.formula
=SUMPRODUCT(Y5:AI5,Y14:AI14/SUM(Y5:AI5))A makrórögzítő azért nem jó, mert hivatkozásokat tesz be. Én meg olyanra akarom csinálni, azért a sok változó, hogy ha beszúrnak új sorokat, akkor még mindig a megfelelőekkel számoljon. Nem tudom azt mondani, hogy FormulaR1C1.

Rögzítővel:
ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT(R[-10]C[-10]:R[-10]C,R[-1]C[-10]:R[-1]C/SUM(R[-10]C[-10]:R[-10]C))" -
Louro
őstag
Sziasztok!
Egy script-et kurtítanék, de a sumproduct kifogott rajtam.
Szerintetek mi lehet a bibi? A hiba: Run-type error: 13. Type mismatch.Cells(BASE_INFORMATION_IDX + 11, REPORT_MONTH_IDX) = _
Application.SumProduct(Range(Cells(BASE_INFORMATION_IDX + 1, REPORT_YEAR_IDX + 5), Cells(BASE_INFORMATION_IDX + 1, REPORT_MONTH_IDX)), _
Range(Cells(BASE_INFORMATION_IDX + 10, REPORT_YEAR_IDX + 5), Cells(BASE_INFORMATION_IDX + 10, REPORT_MONTH_IDX)) / _
Application.Sum(Range(Cells(BASE_INFORMATION_IDX + 1, REPORT_YEAR_IDX + 5), Cells(BASE_INFORMATION_IDX + 1, REPORT_MONTH_IDX))))Ha kézzel írom meg a függvényt, semmi gond nincs, de úgy látszik a range-eket nem szereti a sumproduct. Ha Application.Worksheetfunction.SumProduct-ot írok, akkor is ugyanez a hiba.
-
Louro
őstag
válasz
sztanozs
#29800
üzenetére
A feltételes formázásnak van értelme, ha vagy van hozzá magyarázat vagy egyértelmű - piros:nem jó, sárga: elfogadható, zöld: jó - jelzést használnak.
Az Excelben táblázatot kevesen használnak. Pedig dinamikusan nő, csökken, ha kell és a függvényeket se kellene másolgatni, mert automatikusan behúzza alá az Excel.
Ahol eddig dolgoztam és dolgozok, kb. 50-ből 1, ha használ táblázatot. Színkavalkád alatt meg piros, kék, sárga, lila, szürke,....ritka ahol nincs legalább 10-15 szín. Mert többen használják és kinek melyik piros tetszik. Nem vicc, volt már belőle vitám.
-
Louro
őstag
válasz
sztanozs
#29798
üzenetére
Sokan sorokat és oszlopokat formáznak. Duuuurva.
Feltételes formázás esetén is általában sort vagy oszlopot jelölnek meg.Ezek olyan durván hazavágják, hogy rossz nézni. 20-30 megás fájlt megnyitva majd értékként átmásolva az adatokat és lementve sokszor nem felére, fél megákra le tudom csökkenteni a fájlméreteket. Színezésnek van előnye, de sajnos hátránya is és elég sokan úgy használnak Excel-t, hogy igazából szájhagyomány útján tanulták. Egy-egy gyorstalpalós tanfolyam sokat segítene az irodistákon. Néha hányni is tudnék a színkavalkádokon.
-
Louro
őstag
válasz
zulu_mester
#29796
üzenetére
Az igazat megvallva én nem értem. Ha az kell, hogy miképp lehet azt megmondani, hogy melyik szám mennyiszer került kihúzásra, akkor COUNTIF/DARABTELI függvénnyel könnyen előállítható.
Csinálsz egy 1-90-ig egy listát az M oszlopba. N oszlopba pedig, az 1-es mellé: =DARABTELI(itt jelöld ki az 5 oszlopot, amiben a húzott számok vannak;kattints az 1-es értéket tartalmazó cellára) Majd másold lefelé a függvényt és meglesz.
-
Louro
őstag
válasz
theo_76
#29669
üzenetére
Szia,
ha egy listában akarod megoldani, akkor egy munkalapon gyűjtsd össze az irányítószám-város listát, majd ahol a validáció van, ott csinálj listát.
Ha "egy adatos", elegánsabb listát szeretnél, akkor csinálnék egy városlistát, majd az előtte/utána levő cellába pedig egy VLOOKUP-pal hozzátenném az irányítószámot. ÍGy pivotolni szebb.
Legördülőre egy videó: [link]
Hosszú távon hasznos is lehet akár, hogy az excel képes kapcsolatot teremteni két legördülő között: [link]
Olyanról ÉN nem tudok, hogy lenne olyan funkciója, mint a weben az AJAX, hogy elkezded beírni és már ajánl.
-
-
Louro
őstag
válasz
mclaren777
#28585
üzenetére
Első beírás előtt az oszlop formátumát állítsd szövegre

VAgy, ha nem akarsz nagyon számolgatni, csak megjeleníteni, akkor írj a mezőbe egy aposztrófot (shift+1). Bár ezt nem javaslom, mert későbbi függvényezést megkavarja csúnyán. Inkább az első megoldást javaslom.
-
Louro
őstag
válasz
Sweetraver
#28068
üzenetére
-
Louro
őstag
Adott egy mappastruktúra, ami év/hónap/nap.xls (Pl.: 2015/08/01.xls , 02.xls, 03.xls , 04.xls .......)
Makróval fel tudnám dolgoztatni, na meg én egybe is gyúrnám az Exceleket meg nem nagy adattartalmúak.
De mivel nem szeretnének makrót, akiknek kellene és a napokból szeretnének FKERES-ezni. (Cikkszámra szűrve FKERES-t végezni.) Gondoltam volna, hogy egy új Excel A1-be beírnám, hogy Év, A2-be, hogy Hónap, majd az B1-be beírják, hogy '2015' (aposztróf nélkül
), majd B2-be, hogy '08' .A táblázat fejléce napok lennének 01-31-ig. (D1-től)
Függvényt másolva azt csinálnám D2-ben, hogy a fájl helyének hivatkozásába változót tennék. Ahogy lentebb is írtam. =FKERES("valami";'blablabla\" & $B$1 & "\" & $B$2 & "\[" & D$1 & ".xls]Munka1'!$B$1:$C$50000;2;0)
És ezt oldalra/le elhúzva az Excel másolná a függvényt úgy, hogy ne kelljen megnyitni, hogy elvégezze a keresést.
Lehet így zavaros. Többször mfutottam neki ennek a kérdéskörnek, de ha nem érthető, akkor ok. Maradok a fájlmegnyitogatós, makrós megoldásomnál. Aki meg segítséget kért, marad a manualitás. Bár lehet azóta meg is csinálták.
-
Louro
őstag
válasz
poffsoft
#28056
üzenetére
Az Indirekt függvénnyel az a baj, hogy csak egy cellát képes átemelni a másik dokumentumból.
Nekem az kellene, hogy van egy könyvtárstruktúra. Év/Hónap/Év_Hónap_Nap.xlsx
Azért, hogy rengeteg emberre ne cserélgessem le egyenként, ezért lenne jó úgy megírni egy DARABTELI-t vagy FKERES-t, hogy a fájl elérését dinamikusság tenném. Szívem szerint makróval csinálnám, de akik használni fogják, ők nem akarnak makrózni. (Aztán lehet erősebb leszek
)Bár nem az se ment, amit Fferi javasolt pár hónapja, hogy =[hivatkozottfájlnév]munkalap!cella. Nem húzta át a hivatkozott adatot.
Én az ilyeneket úgy oldom meg, hogy megnyitom a fájlt a makróval, átmásolom az eredményt és bezárom a forrást.
-
Louro
őstag
Arra van lehetőség, hogy makró nélkül, a hivatkozás változót tegyek?
Pl: A2: 2015, A3: 08, A4: 07.
=DARABTELI('blablabla\"&A2&"\"&A3&"["&A4&".xlsx]Munka1!$A$1;"Xyzs")
-
Louro
őstag
Szia,
egyszerűbb a megoldás, mint gondolnád

Én a javított nevek helyet kulcsszavakat használnék. (C oszlopba)
Pl.: Jonatán->Jonat*án (Így a Jonathán is jó lesz) vagy Vér narancs->Vér*narancsÁTLAGHA nevű függvény lesz a te embered. =ÁTLAGHA('Ide a tartományt a Kertészetek munkalap A oszlopa kell';'Ide a Típusok munkalap C oszlopából egy mező';'Ismét a Kertészetekről az átlagolandó értékeket tartalmazó oszlop')
Leírva: Típusok D2-be: =ÁTLAGHA(Kertészetek!$A:$A;$C2;Kertészetek!$B:$B)
Remélem használható, amit leírtam
(Na és azt is remélem, hogy működik. Bevallom, nem teszteltem.)Vaaaagy
Típusok A-hoz hozzákeresed FKERES-sel az összegeket mondjuk az F oszlopba (elrejtve akár). Így már mehet az ÁTLAGHA. D2-be: =ÁTLAGHA($B:$B;$C2;$F:$F)
De legfőbb javaslat: Tanuljanak meg helyesen írni
(Ezt legördülővel segítheted
) Ha új termék van, jelezzék neked, hogy beírják. Vagy csinálj egy listát, amit ha bővítenek, akkor az a legördülőben megjelenik. Így a Jonatán nem tud 4-5féleképpen megjelenni. -
Louro
őstag
válasz
Gravity1234
#27572
üzenetére
Megvan, még régen én is szenvedtem vele, makrós korszakom előtt: [link]
Megoldás lehet:
=TEXT(WEEKDAY(DATE(CalendarYear;7;1);1);"[$-409]aaa") -
Louro
őstag
válasz
Gravity1234
#27572
üzenetére
Esetleg csinálnék rá tömböt, hogy ha Sze, akkor Wed, ha Csü, akkor Thu és így tovább....Csak 7 esetet kell lekezelni, szóval nem vészes számítási igény.
-
Louro
őstag
válasz
Gravity1234
#27572
üzenetére
Szerintem ez lokális "probléma". Be lehet állítani a Fájl/Beállítások alatt, hogy milyen nyelven válaszoljon, értsen az Excel. De, ha makrózod, akkor az nem lehet gond. Ott úgy szoktam, hogy Range("A1").Formula = "Day(Today())" és akkor angolul ért csak. Ha Range("A1").FormulaLocal = "Nap(MA())", akkor pedig a gép beállításaitól függ.
-
Louro
őstag
válasz
menledge
#27416
üzenetére
(Szerintem) Így nem lehet megoldani a HA feltételt: 01000000>K6>2342343. Vagy szétbontod vagy ÉS közé teszed.
=HA(K6<=10000000;10;HA(20000000>K6>10000000;5;HA(K6>20000000;0; )))
Az első feltétel, hogy ha 1misinél kisebb vagy egyenlő. A második feltétel az lenne, hogy ha 1 misinél nagyobb, de 2-nél kisebb. Mivel ha az első nem teljesül, akkor az legalább 1misinél nagyobb. Szóval a K6>1misi feleslegesen van ott.
-
Louro
őstag
Szia,
ez megvan. Jelenleg is így működik. Csak a sok mögöttes Excelt külön-külön kell frissíteni. 4 diagramhoz 4 mögöttes Excel tartozik.
Azt szeretném, ha egy Excel lenne és a 4 diagram abból venné az adatokat. HA új sort szúrok be, akkor ne kelljen a 4 diagram tartományát bővíteni, hanem mint ahogy a videón is volt, automatikusan bővülne. Ha a tartományt állítani kell, akkor ugyanott vagyok.
Lehet erre nincs a Powerpoint felkészítve, bár szerintem gondolhatnak erre majd az Office 2018-ban

-
Louro
őstag
Sziasztok!
Bár nem 100%-os Excel, de van arra lehetőség, hogy adott egy Powerpoint fájl. Benne 4 diagram. Mögötte 4 Excel.
A kérdés: Van lehetőség egy Excel-t létrehozni. A .ppt-ben levő 4 diagram abból kapná az adatokat. Időközönként pedig a bekerülő adatokat hozzá húzná? Próbáltam, hogy a táblázatot "táblázattá" alakítom és új sor kapcsán automatikus igazodna a diagram, de nem sikerült.
Első diagram az első két oszlopból származna. Második az első oszlop és a harmadik, a harmadik, az első és a negyedik oszlopból....
-
Louro
őstag
válasz
kangool
#27152
üzenetére
HA jól értem a számokat akarod a megfelelő nevekre lecserélni.
Vagy a CTRL+H kombót használnám (csere) vagy az eredetit meghagyva a jövőre gondolvas vagy HELYETTE függvény segítségével egy új munkalapon.
=HELYETTE(Forrásszöveg;számjegy;számjegynek megfelelő szöveg)
A táblázat alapján automatizálható. Csak a "szótártáblát" szét kell szedni. (MElyik szám melyik alkatrésznek felel meg.)
Pl: F2-be =HELYETTE(HELYETTE(HELYETTE(HELYETTE(B2;"2";"k.csavar");"5";"k.csavar2");"7";"l.alátét");"10";"x.menet.")
Ez csak a 2. oszlopban levőket cserélni le. Lefelé és oldalirányba is másolható

-
Louro
őstag
Picit hanyagoltam a totyikot, de mentségemre legyen szólva, kutattam az makró <>ODBC közti lehetőségeket.
Már csak egy olyan kérdésem van, amire félek tudom a választ, hogy lehetséges -e az ODBC-től kapott választ visszakapni az Excel-be.
Arra kellene, hogy ha Insert-álok egy táblába és megkötések miatt nem megy be, akkor egy PL/SQL hibát dob. De a VB-t nem tudtam rábírni, hogy kapjon hibaüzenetet, hogy azt lekezeljem.
-
-
-
Louro
őstag
válasz
TheSaint
#27021
üzenetére
Megnyitásmentességhez: [link]
A változóhoz:
Dim pathname, filename as stringpathname = "C:\valami\mégvalamibb\ez nem semmi\"
filename = "ez a legjobb fájl a világon.xlsxxx"A fájlnevet ciklussal is generálhatod.
for i=10000 to 10500 step 5
filename = "királyságos_" & i & ".xlsxxx"
nextCsak akkor a fájlműveleteket is a ciklusba tedd
Különben csak a legutolsóval fog dolgozni.Remélem tudtam segíteni.
Új hozzászólás Aktív témák
- 10 Darab ÚJ PC Játékszoftver
- MS SQL Server 2016, 2017, 2019
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Azonnali készpénzes AMD Radeon RX 7000 sorozat videokártya felvásárlás személyesen/csomagküldéssel
- M5! KÉSZLETKISÖPRÉSI ULTRAAKCIÓ!!! TÜZES EZÜST MacBook Pro 14" M5!!! 10C/10G 16GB 512GB Gar!
- BESZÁMÍTÁS! MSI B450M R5 5600X 16GB DDR4 500GB SSD RTX 3060Ti 8GB SilentiumPC Signum SG1 TG FSP 700W
- iPhone 12 Pro 256GB Gold -1 ÉV GARANCIA - Kártyafüggetlen, MS3581
- BESZÁMÍTÁS! MSI B650 R7 7700 64GB DDR5 1TB SSD RX 7900 XTX 24GB Lian Li LANCOOL 216 ARGB 850W
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest


Még Guglizni sem tudom, hogyan lehetne.

Nem értem miért nem lehet megadni, hogy Greater than... .
Sok hasznos dolog van ott.



