-
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
-
Caipi
tag
Köszönöm a tippeket,
Az a gondom, hogy ha hibafigyelés nélkül rakom be a képletet, üres cellák esetén #HIV! hibát ad, úgyhogy legalább egy HAHIBA()-ba beleteszem az egészet.
A 0 eltüntetését köszönöm, ott az első javaslatot használom, mivel elkészített táblázatban más-más színűek a sorok. -
m.zmrzlina
senior tag
Köszönöm ezt a valóban kimerítő parádés választ.
Igaz a végleges megoldásba a makrós megoldás jobban illeszkedett mivel az egész megoldás makróra épült. Egy szedett-vedett munkafüzetből kellett kimazsolázni a fontos adatokat és (nyilván a nem kellő átgondoltság miatt) az adatok ide-oda rakosgatásával menet közben elfelejtett a dátum dátumként viselkedni.
Ráadásul ez a hiányzó dátum ellenőrzés már csak bónusz volt a feladatban de Delila konvertálós megoldása egyetlen makrósorban megoldotta a problémát.
Köszi még egyszer!
-
Melorin
addikt
Köszönöm, kipróbálom.
Még egy kérdés: Szeretném feljegyezni egy bizonyos tevékenységben eltöltött napi időmennyiséget és havi összesítőt csinálni, de akadályba botlok, amikor nem osztható fél órával az érték. Tehát 2 1,5 3 ezek mennek, lehet SZUM-ot használni rájuk, de ha 1óra10perc lenne az érték, megbolondul az egész.
Ezt hogyan lehet megvalósítani? -
Kobe
veterán
köszi, megnézem ezt is
közben felvetnék még egy kis makró tervezést, amolyan elméleti síkon ki hogy csinálná. Tehát az alapszitu:
Adott 2 excel tábla, ami nagyon hasonló adatokat tartalmaz, az oszlopok olyan 60%-ban megegyeznek. Mind a két fileban a tételeket kommentálni kell, az egyikben már alapból benne vannak ezek. Az egyik tételhez tartozó kommenteket szeretném átmásolni a másik fileba, hogy ne manuálisan kelljen, időt spórolva. Ezt a következő lépésekben gondoltam megvalósítani a makróval, csak érdekelne szerintetek mennyire életképes:
1. adatbázisból kiexportálni a tételeket - gyak létrehozni a Workbook1-et, egy megadott hálózati mappában, adott néven - ez csak egy ideiglenes file lenne, amit a folyamat végén jó lenne törölni.
2. Workbook1-ben létrehozni egy egyedi azonosítót, amire VLOOKUP-pal lehet majd hivatkozni a másik fileból.
3. Megnyitni Workbook2-t valamely hálózati mappából
4. létrehozni Workbook2-ben benne ugyanazt az azonosítót
5. A megadott cellákba VLOOKUP-pal Workbook1-ből Workbook2-be másolni az adatokat
6. Mivel az ideiglenes filet törölni kellene, ezért a vlookup által adott adatokat értékként beilleszteni ugyanazokba a cellákba (mivel ha törlődik workbook1, megszakadna a link a fileok között, és csak #N/A maradna a cellákban
7. Workbook2 mentése, Workbook1 törléseSzerintetek ez összesűríthető 1 makróba ? a legpöpecebb lenne ha az egy access-es gombnyomásra lefutna Szerintem megvalósítható, az egyetlen probléma az, hogy Workbook2-ben nem minden tételre kellene bemásolni az adatokat. Workbook2 ben van egy oszlop, amiben van egy azonosító - "Hazai" vagy "külföldi", ez a két féle érték van a cellában. A makrónak ebben az esetben csak a "hazai" tételekre kellene kitölteni a dolgokat (a "külföldi" tételekre futna egy ugyanilyen makró egy másik adatbázisból és azt az töltené ki), gondolom ez egy sima If-fel menne, pl.
IF A1="hazai" then
makró szövege
Else
Exit sub -
wolfman
veterán
Csak b.szott az ideg, hogy egy ennyire egyszerű dolgot nem lehet megcsinálni egy hülye táblázatkezelőben, mert ez aztán végképp nem lenne nehéz feladat, aztán egy óra ügyködés után találtam egy legördülő választéklista nevű cuccot, azzal sikerült. Kijelöltem a tartományt (beleértve a megnevezéseket (munkakör, beosztás, lakhely stb.) majd lista létrehozása, (lista rovatfejekkel kipipálva), ok, majd minden más tartományt is és így megy.
Igaz most eltűnik a nyilacska ami jelzi, hogy azt ott szűrhető oszlop, de a mezőn belül kattintva előtűnik/tűnnek! Nem értem, miért nem lehet ezt alapból megcsinálni, miért kell ez egy másik helyen előhívni!?
„Ami mérhető, mérd meg! Ami nem mérhető, tedd mérhetővé!” – Galileo Galilei
-
kordasb
tag
azert irok erre valaszt mert taltan ez all legközelebb a kerdesemhez
Sales jutalekot szeretnek szamolni:If a Salesperson sells $0-$10,000 they are paid 20% commission on that
Between $10,001 - $20,000 they are paid 22.5% (just on everything over $10,000)
Between $20,001 - $42,000 they are paid 25% (just on everything over $20,000)
Anything over $42,000 they are paid 27.5%talaltam is megoldast 2 függvennyel de nem tudom müködesre birni
mar szetszedtük összeraktuk de csak nem akar jo lenni logiaki hiba miatt.=SUMPRODUCT((A1>{0,10000,20000,42000})+0,A1-{0,10000,20000,42000},{20,2.5,2.5,2.5}%)
=SUM(MAX(MIN(A1,10000),0)*20%,MAX(MIN(A1-10000,10000),0)*22.5%,
MAX(MIN(A1-20000,22000),0)*25%,MAX(A1-42000,0)*27.5%)Esetleg ha letezik eleganssabb megoldas szivesem fogadom nekem sajnos meghaladja a tudasomat.
Elöre is köszönöm.
(a kapcsoszarojelt nem tudom ertelmezni nem ertem miert van ott ahol van es mire szolgal.)[ Szerkesztve ]
-
Kobe
veterán
helló
köszi a tippet, így működik
Viszont az egyik makróm továbbra sem akar tökéletesen funkcionálni:
Function OpenformatSWP()
Dim objexcel As Object
Dim objworkbook As Object
Dim CodeMod As Object
Dim LineNum2 As Long
Dim Code3 As String
Const DQUOTE = """" ' one " character
Dim destination2 As String
destination2 = "C:\Users\test\swp\test.xls"
Set objexcel = CreateObject("Excel.Application")
objexcel.Visible = True
objexcel.DisplayAlerts = False
Set objworkbook = objexcel.Workbooks.Open(destination2)
Set CodeMod = objworkbook.VBProject.VBComponents("Sheet1").CodeModule
Code3 = ""
Code3 = Code3 & " Dim lngLastRow" & vbNewLine
Code3 = Code3 & " lngLastRow = Cells(Rows.Count, ""A"").End(xlUp).Row" & vbNewLine
Code3 = Code3 & " Columns(""X:X"").Select" & vbNewLine
Code3 = Code3 & " Selection.Insert Shift:=xlToRight" & vbNewLine & vbNewLine
Code3 = Code3 & " Range(""X1"").Select" & vbNewLine
Code3 = Code3 & " ActiveCell.FormulaR1C1 = ""common_id""" & vbNewLine & vbNewLine
Code3 = Code3 & " Range(""X2"").Select" & vbNewLine
With CodeMod
LineNum2 = .CreateEventProc("Change", "Worksheet")
LineNum2 = .VBE.MainWindow.Visible = False
LineNum2 = LineNum2 + 1
.InsertLines LineNum2, Code3
End With
objworkbook.Save
objworkbook.close
'reopen Excel to run autostart
objexcel.Workbooks.Open (destination2)
End Functionezt a functiont futtatom accessből, és az volna a cél, hogy a test.xls file első munkalapjára beszúrjon és futtasson egy kódot.
Perpillanat accessben Runtime error 40063 as hibával leáll a makró ennél a sornál:
LineNum2 = .CreateEventProc("Change", "Worksheet")
Az excel fileban is elég érdekes az eredmény, a Code3 ként definiált kódot egyszerűen nem a Sub / End Sub közé szúrja be, hanem elé. Sorról sorra így néz ki az Excelben megjelenő kód:
Dim lngLastRow
lngLastRow = Cells(Rows.Count, "A").End(xlUp).Row
Columns("X:X").Select
Selection.Insert Shift:=xlToRight
Range("X1").Select
ActiveCell.FormulaR1C1 = "common_id"
Range("X2").Select
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub[ Szerkesztve ]
-
Kobe
veterán
hello mester köszi a tippeket mint mindig
igen, próbálkoztam azzal, hogy átírom így, ahogy te is javasoltad:
LineNum = .CreateEventProc("Open", "Workbook")
de ilyenkor valamiért összeakadt a kód többi sorával - általában elakadt ennél a sornál, és accessben egy "Event handler is invalid" hibaüzenetet kaptam.
Igazából az lenne a cél, hogy az adott makró csak 1 fusson le, és többször ne, gondolom akkor ez az If amit írtál, azt csinálja hogy csak akkor futtatja, ha A1 üres, ha bármilyen érték van benne, akkor már nem fut le. Ez tök jó lenne, mert A1 általában mindig ki van töltve, csak amint átakarnám írni Open eventprocedurre a dolgot, onnantól kezdve borul a bili
pedig van egy hasonló makró ami létrehoz és emgformáz egy táblázatot excelben, az ugyanezzel a kóddal perfektül működik. Nem tudom, hogy az xls tartalmának lehet e közze hozzá, ez a file amit használni akarok annyiban komplikáltabb hogy általában 3 munkalap van rajta:
Sheet1 (INT)
Sheet2 (excl INT)
Sheet3 (All)én igazából ezt a makrót mindig csak az INT nevű munkalapon szeretném futtatni, gondolom akkor ezt valahogy a Code = Code & .... részben definiálni kellene
[ Szerkesztve ]
-
-
Kobe
veterán
hat ez valami kibaxott nagy access issue lesz, vagy nem tudom Kiprobaltam mindent amit leirtal, vegigbogarasztam a teljes CPearson fele VBA programming szekciot, gyakorlatilag mindenhol ugyanezt a emgoldast hasznaljak, amit te is mutattal, nalam ez is errorra fut. Minden valtozo definialva van rendesen, ennel a linenal viszont errorra fut :
Set VBComp = VBProj.VBComponents.Add(vbext_ct_StdModule)
mondvan a vbext_ct_StdModule nincs definialva mint valtozo, ami tok erdekes mivel ugye ez standard VBA komponens es kulon definialas nelkul is mennie kene...
-
Caipi
tag
Szia,
Köszönöm szépen, a függvényre volt szükségem :-)
Megint nem láttam a fától az erdőt, nem jutott eszembe ez az egyszerű megoldás.A bal oldali táblázatba kézzel bevitt összegek kerülnek. A feladvány az, hogy a kézi beírás ugyanabba az oszlopba/oszlopokba kell történnie, mint a függvénnyel átemelt értékeket tartalmazó jobb oldali táblázatban.
Ezen felül még a táblázat sorainak végösszegei meg kell egyezzenek egy harmadik helyen bevitt adatokkal.
De ennek segítségével már megy is az egész :-)
Még1x köszönöm :-) -
motinka
tag
hello,
http://www.hunsurf.hu/teszt_20130524.xlsx
ide felraktam a táblázat egy részét, természetesen sokkal több sorbó és több oszlopból áll.
A lényeg az lenne hogy az adat fül érkezik minden nap és az adat2 fül első sora szerinti oszlopokra lenne szükségem, ami az eredeti adat fülön lévő megnevezése az második sorban látható.
És miután átrakta a kívánt oszlopokat, rendezze be dátum szerint.
Ezzel nem is lenne gondom, csak az lenne a kívánalom, hogy másnap jön egy újabb fájl aminek az adat fülében benne vannak az aznapi adatok, és akkor is kellene egy adat2 fül belőle, és így tovább minden nap.MoTiNka
-
ElemiKoczka
csendes tag
Szia!
Köszönöm a tanácsot.
Milyen formátumban vannak az egyes oszlopok?
Az én táblázatomban minden oszlop [ó]:pp;@ formátumban van, mert további számolások, összesítések is vannak még. Pl. a D, E és a D+E oszlopok időinek összege, valamint normatívákhoz is kapcsolódnak ezek az idők. -
ElemiKoczka
csendes tag
Így már nálam is jobban működik
A második sorban lévő időnél azonban nem számol megfelelően, mivel meg kellene jelenni a délelőttös műszaknál is 2 órának az éjszakásnál pedig 7 órának. Ezt lehet még valamivel módosítani, hogy jó legyen?
Idekapcsolódó kérdésem továbbá, hogy munkalap nevét lehet cellából megadni? Ha változik a cella neve akkor változik a munkalap neve? -
Caipi
tag
Szia,
Én pont fordítva szeretném, tehát a napokat kiválasztva mondja meg, hogy az milyen dátum.
A "Dátum" oszlop első dátumát beírom kézzel ( D 4 ), mellé ( E 4 ) kiszedem a nap nevét függvénnyel.
De ezek után már csak a napot választom ki (E oszlop) a 7 soros blokkokban ( 4-10 sor, 11-17 sor, 18-24 sor, stb) és a kiválasztott nap neve alapján szeretném mellé tenni függvénnyel, hogy az milyen dátumra esik. (Arra gondoltam, hogy a napok közti különbség összegével növelem a dátumot)
Annyi csavar van benne, hogy a kiválasztott napok ( E oszop) nem biztos, hogy egymás után sorba jönnek, mint látszik lesznek üres sorok, esetleg akár egy hét is kimaradhat.Próbáltam ezt modellezni a csatolt képpel
-
swoody
senior tag
Szia,
Már megoldottam, a keres és csere funkicóval, de attól függetlenül köszönöm szépen. Ha hamarabb frissítem böngészőt lehet látom amit írsz mert kb. fél órája jött az ötlet a keres és csere funkció.
De lehet, hogy kell majd függvény is mert ez az egész dokumentumra végzi el és gondolom a függvénybe pedig meglehet adni a pontos helyeket.
[ Szerkesztve ]
-
Mutt
aktív tag
-
macilaci78
nagyúr
Ez nem az, amit keresek.
Transzponáljon, de ne egybe az egész táblát.
Az kell, hogy egy sor mondjuk 20 celláját transzponáljon, majd alá a következő sor 20 celláját.Tehát
Sheet1'A1->Sheet2'A1
...
Sheet1'T1->Sheet2'A20
Sheet1'A2->Sheet2'A21
...
Sheet1'T2->Sheet2'A40Tehát a Sheet1 oszlopainak számától függetlenül a Sheet2 egyetlen oszlopól álljon. Pontosabban inkább 4-ből.
Sheet1'A1->Sheet2'A1
...
Sheet1'T1->Sheet2'A20
Sheet1'A2->Sheet2'B1
...
Sheet1'T2->Sheet2'B20
Sheet1'A3->Sheet2'C1
...
Sheet1'T3->Sheet2'C20
Sheet1'A4->Sheet2'D1
...
Sheet1'T4->Sheet2'D20Sheet1'A5->Sheet2'A21
...
Sheet1'T5->Sheet2'A40
Sheet1'A6->Sheet2'B21
...
Sheet1'T6->Sheet2'B40
Sheet1'A7->Sheet2'C21
...
Sheet1'T7->Sheet2'C40
Sheet1'A8->Sheet2'D21
...
Sheet1'T8->Sheet2'D40Tudom, hogy megérteni sem könnyű így, viszont nagyon örülnék, ha ezt meg lehetne oldani.
Ha minden kötél szakad, nem kell félni az akasztástól! Eladó garzonlakás! Budapest III. ker. Tímár utca, 29 m2, galériás. https://ingatlan.com/34130552
Új hozzászólás Aktív témák
- Facebook és Messenger
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Politika
- Lakáshitel, lakásvásárlás
- Spanyolországban kezd a Vivo V40 5G és V40 Lite 5G
- Android játékok topikja
- Napelem
- Kertészet, mezőgazdaság topik
- EA Sports WRC '23
- A fociról könnyedén, egy baráti társaságban
- További aktív témák...
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
- PC JÁTÉKOK (OLCSÓ STEAM, EA , UPLAY KULCSOK ÉS SOKMINDEN MÁS IS 100% GARANCIA )
- Adobe Creative Cloud - 2024. 04. 05 - 2025. 04. 05-ig
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.