- sziku69: Fűzzük össze a szavakat :)
- sh4d0w: Netflix? Ugyan, VW előfizetés!
- sziku69: Szólánc.
- Geri Bátyó: Megint tahó voltam – SZEMÉLYISÉGFEJLŐDÉS
- Luck Dragon: Asszociációs játék. :)
- Mr Dini: Mindent a StreamSharkról!
- Meggyi001: Nyilvános wc-k.....még mindig hiánypótló...
- GoodSpeed: AMD Ryzen 7 7700X vs AMD Ryzen 9 9900X Cinebench R23 & R24 Benchmarkokban mérve
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Meggyi001: RTX 5060 - Az új népkártya?
-
LOGOUT
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
-
-
zeeland66
tag
Sziasztok, a következő probléma megoldásában kérnék segítséget. (Excel 2007 Hu.)
Több füles Excel táblákban dolgoznék, a példa kedvéért legyen két aktív fül. Mindkét fülön számításokat végeznék. Pl. munka1 B35 adattal számolna a munka2 A12 cella: ezt a következő képlettel oldottam meg eddig: munka1 A12=Munka1!B35.
A munka1 és a munka2 táblázat nem egyforma méretű. Na, most ez mind addig szépen működik, ameddig nem akarom ismételni ma táblázatokat. Vagyis heti vagy havi szinten másolatokat készítek egy más alá mindkét fülön, de a másolatoknál az egymásra való hivatkozások nem stimmelnek. A munka1-hez képest a munka2 hivatkozásai elcsúsznak.
Előre is köszönöm. -
Dilikutya
félisten
Ha ELTOLÁS függvényt használok, és benne a cellahivatkozás másik fájlra mutat, akkor az csak akkor működik, ha a másik fájl meg van nyitva?
-
aviator
tag
Sziasztok,
Soros vonalon érkező adatot szeretnék excel táblázatban felhasználni ebben kérnék segítséget.
Mivel még sosem dolgoztam ilyennel, nem akartam feltalálni a spanyol viaszt, ide vezetett a google: http://www.thescarms.com/vbasic/commio.aspx
Ez egy elég jól használható modul, jönnek is szépen az adatok. Egy 10 karakteres stringet kell beolvasnom, a problémám az, hogy nem mindig van meg a 10 karakter, illetve néha több van, tehát bizonytalan az olvasás. A csatolt kódban a Do Loop-ban történik meg a string kivétele a soros bufferből, csak ezek szerint nem mindig a jó pillanatban. Próbáltam rákényszeríteni, hogy csak a 10 karakter hosszú olvasás esetén menjen tovább az első if-nél, megcsinálja, de néha sokáig tart, meg hát nem érzem túl elegánsnak.
Kellene ide egy olyan megoldás, ami kiküszöböli ezt a problémát, de ha valakinek van működő kódja teljesen más alapokon az is tökéletes lenne.
Továbbá, ha valaki tudja esetleg hogy kell olyat csinálni, hogy a soros vonalon megjelenő adat mindenféle kód és makró nélkül (gondolom valamilyen külső program használatával) megjelenjen egy excel munkafüzet aktív cellájában az lenne a legjobb. Azért kérdezem, mert ilyet már használtam, csak akkor még nem tudtam, hogy ez nem alapfunkció.
Köszönöm előre is a segítséget.
Private Sub CommandButton1_Click()
Dim intPortID As Integer ' Ex. 1, 2, 3, 4 for COM1 - COM4
Dim lngStatus As Long
Dim strError As String
Dim strData As String
intPortID = 3 'Using COM3
' Initialize Communications
lngStatus = CommOpen(intPortID, "COM" & CStr(intPortID), _
"baud=9600 parity=N data=8 stop=1")
If lngStatus <> 0 Then
' Handle error.
lngStatus = CommGetError(strError)
MsgBox "COM Error: " & strError
End If
lngStatus = CommSetLine(intPortID, LINE_RTS, True)
lngStatus = CommSetLine(intPortID, LINE_DTR, True)
' Read maximum of 64 bytes from serial port.
Do
lngStatus = CommRead(intPortID, strData, 64)
If lngStatus > 0 And (Len(strData) = 10) Then
TextBox1.Text = strData
TextBox2.Text = Len(strData)
Exit Do
End If
If lngStatus < 0 Then
lngStatus = CommGetError(strError)
MsgBox "COM Error: " & strError
Exit Do
End If
Loop
lngStatus = CommSetLine(intPortID, LINE_RTS, False)
lngStatus = CommSetLine(intPortID, LINE_DTR, False)
' Close communications.
Call CommClose(intPortID)
End Sub
-
sokaran
friss újonc
Ehez a témához kapcsolódóan!
Meg tudja nekem mondani valaki, hogy hová lett "Hasonlók csatlakoztatása opcióm?" -
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.
-
Fferi50
Topikgazda
Szia!
A táblázatban feltétlenül az A oszlop adatait kell az értékmezőbe tenni?
Ha a B oszlop adatait teszem oda, továbbá be van jelölve a többszörös kijelölés, akkor a B oszlopba írt változtatások frissítés után megjelennek a slicerben és így a pivotban is.
Előtte:
Utána:
Változtatás:
Még egy változtatás:
Frissítés után nem kellett semmit tenni ahhoz, hogy kijelöltként megjelenjen az új érték.
Üdv. -
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ó?
-
Fferi50
Topikgazda
válasz
Colin111 #48583 üzenetére
Szia!
Pl. a munkalap eseménykezelését felhasználhatod erre:
A cellára duplakatt esetén hajtja végre az alábbi eseménykezelést:Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column > 5 Or Target.Row = 1 Then Cancel = True: Exit Sub
If Target.Value = "" Then Cancel = True: Exit Sub
Application.EnableEvents = False
reszletezo Target.Row
Application.EnableEvents = True
Cancel = True
End Sub
Az elején megvizsgálja, hogy az első 5 oszlopban van-e a kattintás és nem a fejlécen, illetve nem üres-e a cella.
Ezután kikapcsolja az eseménykezelőt és a meghívott makrónak átadja a kattintott cella sorát. Ha más módon lehet azonosítani a rekordot, akkor azt kell átadnia - kibogoznia valahonnan.
Miután végrehajtotta a meghívott makrót, visszakapcsolja az eseménykezelőt és letiltja a kattintás rendszer szerinti végrehajtását.
A meghívandó makró így nézzen ki:Sub reszletezo(ByVal sor As Integer)
'....ide jönnek az utasítások - a sor nevű változóban lesz a kattintott cella sora
End Sub
Ennek annyi a hátránya, hogy az adott területen nem tudod a duplakattintásokhoz kapcsolódó rendszerműveleteket végrehajtani.
Viszont cserébe az adott "rekord" bármelyik celláján duplán kattintva elindul a részletező makró és nem kell külön parancsgomb és "száz" makró.
Remélem sikerülni fog.
Üdv. -
Colin111
csendes tag
válasz
Fferi50 #48579 üzenetére
Kedves Fferi50!
Makrót már összedobtam, ami a mellékelt megjelenítést megvalósítja
- a bal táblázatban vannak a rekordok főbb adatai - az input táblából
- a jobb táblázat részben pedig egy adott rekordhoz tartozó többi adat függvényekkel összeszedve az input táblából szintén
Amire még nem találtam megoldás, az az hogy a rekord utolsó cellájába kattintva mindig az adott sorhoz tartozó további értékek jelenjenek meg, azaz átadja kattintáskor a macro a rekord sorszámát egy másik oldalnak relatív hivatkozással.
Illetve lehet-e olyan linket csinálni ami meghívja a macro-t vagy csak vezérlőelemet lehet erre használni (ami nem tudom hogy köthető cellához)
(ja és nem szeretnék több száz macro-t csinálni minden rekordhoz egyet....)
Köszi előre is!
Üdv, -
Fferi50
Topikgazda
válasz
the radish #48580 üzenetére
Szia!
Ha a nyitókészlet is minden nap rögzítésre kerül az előző napi zárónak megfelelően - a mintából legalábbis így látszik - , feltételezve, hogy a forrás sorba van rendezve, akkor INDEX - HOL.VAN függvénnyel meg lehet oldani. Kell egy segédoszlop, amibe összefűzzük a termék - dátum oszlopot.
A keresésnél erre az összefűzött értékre keresünk rá, a következő napi dátum értékből kivonjuk a tárgynapi értéket.
Változás C2 cella képlete, ami lefelé húzható:=INDEX(Forrás!D1 : Dx;HOL.VAN(A2&B3;Összefűzött oszlop;0))-INDEX(Forrás!D1 : Dx;HOL.VAN(A2&B2;Összefűzött oszlop;0))
Arra figyelni kell, hogy az összefűzés után a keresendő érték és az összefűzött oszlop is szöveg legyen.
Remélem, valami hasonlóra gondoltál.
Üdv. -
the radish
senior tag
Sziasztok!
Adott egy készletnyilvántartás, melyben a termékek tömege kerül rögzítésre, naponta akár többször(!) is:
(Adott termék napi zárótömege minden esetben egyenlő a következő napi nyitójával.)
Ebből kéne egy alábbihoz hasonló "kumulált" kimutatás, hogy a termékeknek naponta hogy változik a tömege:
Segítségeteket előre is köszönöm. -
Colin111
csendes tag
Sziasztok,
Abban kérnék segítséget, hogy hogyan lehetne megoldani egy táblázat utolsó oszlopában elhelyezett link-re kattintva a tőle jobbra lévő területre bedobjon egy 2 oszlopból és 12 sorból álló "ablakot" úgy hogy egy linkhez tartozó értéket átadna annak az oldalnak ahonnan a 2*12 adat érkezik - így mindig az adott sorhoz tartozó további adatok jelennének meg.
macro-n is gondolkoztam, csak ott akadtam el hogyan lehetne átadni az említett értéket adott sor szerint változó cellából...
Előre is köszi az ötleteket! -
Fferi50
Topikgazda
-
Reinhardt
őstag
Hali,
Van egy listam:
606 szobaval. Szeretnem megosztani a lakokkal, hogy irjak be milyen mikrojuk van.
Silver, White vagy Other.
Az osszes lakonk retardalt, ha leirom nekik, hogy ezek kozul lehet valasztani akkor is beirnak minden hulyeseget.
Hogy tudom beallitani, hogy csak ez a 3 opcio legyen egy leugro menuben ha rakattintanak a cellara?
Angol Excel.
Ha atmasolom Google docs-ba akkor is mukodik?Elore is koszi.
-
Fferi50
Topikgazda
válasz
bteebi #48570 üzenetére
Szia!
"A lényeg az lett volna, hogyha a Target cella tartalmának az eleje egy adott sztring, akkor abból a cellából szedje ki az eredményt és másolja be egy másikba."
Akkor miért nem a Target cellát vizsgálod?
1. Először is kapcsold ki az eseménykezelést: Application.EnableEvents=False
Majd a makró végén kapcsold vissza: Application.EnableEvents=True
Ennek elmaradása esetén valahányszor a makró beír egy adatot valamely cellába, ismét lefut az eseménykezelő makró.
2. Mivel a Set Target=Columns("A") utasítással az egész oszlopot kijelölöd, annak első cellája az első sorban van. A következő utasítás ezért veszi az első sort.
Nem tudom miért kell neked a Target -et megváltoztatni?
Szerintem elég lenne megnézni, hogy az A oszlopban van-e? De mivel elmondásod szerint az A oszlopba olvasol be, ezért ez nagyon nagy eséllyel igaz.
Maga a Target objektum, amit az eseménykezelő megkap, az a cella, amelyben megváltozott az érték. Ezért azt a cellát kellene megnézned szerintem.
3. Hogyan is léptetné a sort, ha nincs benne ciklus. (De szerintem nem is kell léptetni.)
A folyamatot az zavarhatja, ha az új mérési eredmények hamarabb megjönnek, mint ahogyan az eseménykezelés lefut. Ezt ki kell próbálni.
Szerintem elég ezt megnézni:If Target.Column=1 Then
If Left(Target.Value,4)="Data" Then
Természetesen eseménykezelés ki és bekapcsolásával.
Illetve, ha mindig a 10. sorban van, akkor még azt a feltételt is beteheted:If Target.Row Mod 10 =0 Then '(azaz, ha a sor száma osztható tizzel akkor megyünk tovább.
Üdv. -
bteebi
veterán
Sziasztok!
Egy program segítségével USB kábellel ASCII adatokat olvasok be egy mérőeszközből, egy körben 11 sort, az A oszlopba. Minden újabb beolvasáskor az eredmények az előző után íródnak. (Vagyis mivel hülye a program, ezért valójában a kijelölt cellába, majd onnan lefelé kezd el írni. De ha nem nyúl az ember semmihez, akkor az utolsó mérés után.)
A sorok egyesével, fentről lefelé íródnak. Nekem a 10. sorban lévő cella egy része kellene, ezt már megoldottam.
Egy event makróval próbáltam volna megoldani az automata eredménykiolvasást, de sajnos nem sikerült. A lényeg az lett volna, hogyha a Target cella tartalmának az eleje egy adott sztring, akkor abból a cellából szedje ki az eredményt és másolja be egy másikba.
És itt talán, vagy többek között a soronkénti léptetéssel van baj, egyszerűen nem működik az event makróval. A kód nagy része viszont jó, mert egy sima Sub-ban lefuttatva tulajdonképp működik. A kulcs valószínűleg a 2 alsó sor nem működésében van:
Private Sub Worksheet_Change(ByVal Target As Range)
...
Set Target = Columns("A")
If Left(Range("A" & Target.Row), 4) = "Data" Then
A Target.Row-t valamiért fixen 1-nek veszi, nem "lépteti". Azt hogy lehetne megoldani? (A sorok egyesével íródnak.)
Előre is köszi a javaslatokat!
-
Magnat
veterán
válasz
Magnat #48568 üzenetére
Meg is van: legyen az eredeti tábla neve "Sorrend", a munkalapja amiről másolunk meg "Munka1", illetve egy másik tábla (neve lényegtelen, mert nem hivatkozzuk meg) eredeti munkalapja pedig "Ori" (ebben vannak a rendezendő adatok), mint original. Az első sorban vannak a mezőnevek, én most 4 mezőt hoztam létre vízszintesen és mindegyik alá 2 sornyi adatot. Nyitsz egy új munkalapot az Ori mellé, A1-be beírod:
=VKERES([sorrend.xlsx]Munka1!A$1;Ori!$A$1:$D$3;SOR(A1))
Aztán ezt jobbra elhúzod addig amennyi oszlopod van (4), lefelé pedig addig amennyi a maximális sorszám (3 -> fejléc + 2 adatsor), és kész is. Értelemszerűen a képletben szereplő "$A$1:$D$3" tartományt mindig akkorára kell venni, amekkora az eredeti tábla.
Szerk.: Ha az eredeti sorrendű táblára nincs szükséged, akkor kijelölöd az egész táblát és érték másolással felülcsapod az Ori fület, ezt meg törlöd.
-
moma
őstag
válasz
Delila_1 #48566 üzenetére
Szia. Köszi. Csak nem voltam egészen pontos
. Több száz oszlopról van szó és összevissza sorrendben vannak. És többször is meg kéne csinálni, szóval valami automatább megoldás lenne az igazi. Szóval olyasmi ami nem ABC be rakja őket, hanem veszi a másik fül azt a sorát és abba a sorrendbe teszi ezt a táblát is minden adattal együtt. Jó kicsit érzem, hogy nem hiszem, hogy van ilyen, de hátha
-
moma
őstag
Sziasztok.
Ha van két excel táblám és ugyanazok az oszlop nevek, de más sorrendben, megtudom azt valahogy csinálni, hogy az egyik oszlopai olyan sorrendbe kerüljenek ahogy a másik oszlopai is vannak? sajna a jó sem abc sorrendben van és azt a sorrendet kellene megtartani a másiknál is. -
Colin111
csendes tag
válasz
Fire/SOUL/CD #48509 üzenetére
Köszi a fáradozást, de ezeket már végigpróbáltam.
A probléma, hogy nekem egy többszintű json file-om van, de ebből csak a két első fejléc mezőt ismeri fel beolvasáskor az excel, a többi mezőt észre sem veszi.
Az "account" és a "transactions" csak egyszer szerepel a json elején, aztán soha többet, és csak ebből a kettőből csinál oszlopot az Excel Adat feldolgozás...
A kérdésem az lenne, hogy mit kell tenni ahhoz hogy a többi mezőt is észrevegye? -
Delila_1
veterán
válasz
andreas49 #48559 üzenetére
Másold be a makrót egy modulba az Összefoglaló szerint.
Sub Sorbeszuras()
Dim sor As Long, usor As Long, lepeskoz As Integer
lepeskoz = Application.InputBox("Hány üres sor legyen az adatok között?", "Üres sorok száma", , , , , , 1)
usor = Range("A" & Rows.Count).End(xlUp).Row
For sor = usor To 3 Step -1
Rows(sor & ":" & sor + lepeskoz - 1).Insert Shift:=xlDown
Next
End Sub
-
andreas49
senior tag
Sziasztok,
Meg lehet-e függvénnyel oldani (esetleg macro):
Oszlopban lévő adatmezők közé beilleszteni megadott számú üres mezőt, egészen addig, amíg van adat a mezőkben.
Segítséget köszi előre is -
alcsa
senior tag
válasz
Lasersailing #48554 üzenetére
Koszonom neked is, most van honnan valogassam
.
-
Lasersailing
senior tag
Én eddig kétféleképp csináltam:
1) Másolandó cella legyen aktív. jobb alsó sarokra állsz, amikor kis plusz jelenik meg és duplakatt
2) csak billentyűhasználatnál:
másolandó cella kiválaszt: CTRL + c,
balra,
CTRL + le
jobbra
CTRL + SHIFT + fel
CTRL + VMindkettő addig másol, amíg a balra található cellák ki vannak töltve (akár üres eredményt adó függvénnyel).
Első előnye hogy gyors, "cserébe" nem veszed észre ha a táblázat "hiányos" és nem másol végig...második előnye, hogy könyebben észre veszed ha hiányos a tábla és nem kell megkeresni az egeret
Ill. van egy 3. módszer:
másolandó cella kiválaszt: CTRL + c,
CTRL + le
balra
CTRL + fel
jobbra
CTRL + SHIFT + fel
CTRL + VEz utóbbi a hiányos táblákhoz is végig másolja a képletet, mert gyakorlatilag megkeresed a legutolsó sort.
Leírva lehet bonyolultnak hangzik a 2-es és 3-as módszer, de ha rááll az ujjad, akkor örökké ezt fogod használni...
-
-
alcsa
senior tag
Sziasztok!
Hogyan lehet egy fuggvenyt alkalmazni egy oszlopban, anelkul, hogy le kelljen huznom.
Pl osszeakarom adni az A es a B oszlop elemeit es beirom a C1-be hogy =sum(A11), es ezt akarnam lehuzni mondjuk C100-ig.
Csak az a baj, hogy kell amikor huznom tobb ezer sorig, ezt akarnam elkerulni.Koszi
.
-
-
Fferi50
Topikgazda
Szia!
Gondolom, hogy akivel nincs baj, annak nem szeretnél üzenetet adni. Ezért érdekes a belépés módja.
Az Application.UserName visszaadja, hogy éppen ki az aktuális felhasználó. Miután ez egy megosztott fájl, ezért ez a felhasználó név a Windows név lesz. Ezeket a neveket kellene párosítani a felhasználók munkalapon használt neveihez. Így már lehet keresni a hozzá tartozó információkat.
A minta makró, amit a Thisworkbook kódlapjára kell bemásolni:Private Sub Workbook_Open()
If Date < DateSerial(Year(Date), 8, 1) Then Exit Sub ' ha aug. 1 előtt vagyunk nem kell semmit tenni
Dim cl As Range,szemely As String
szemely = Application.UserName
Select Case szemely
Case "Név1" 'a belépő windows neve
szemely = "jóska" ' a belépő táblázat beli neve
Case "Név2"
szemely = "pista"
'...felsorolod a további név lehetőségeket
End Select
'vagy
' a belépők windows és táblázatbeli neve a hivatkozott tartományban van, elől a windows név
' pontos legyen mindkét név beírása a tartományba'
szemely = Application.VLookup(szemely, Sheets("Munka1").Range("A2:B20"), 2, 0)
'eddig tart a belépő azonosítása
Set cl = Sheets("Munka1").Rows(6).Find(what:=szemely, LookIn:=xlValues, lookat:=xlWhole)
If cl Is Nothing Then
MsgBox szemely & " nem szerepel a felhasználók között!", vbCritical
Exit Sub
Else
If cl.Offset(-4, 0).Value < 0.7 Then
MsgBox szemely & " még csak " & cl.Offset(-4, 0).Text & " szabadságot használtál fel!"
End If
End If
End Sub
A próbához az első sort (If Date) kommenteld ki, így látni fogod hogyan működik. A dátumot átírhatod tetszésed szerint.
Én jobbnak látom a második megoldást, amikor a felhasználó nevek párosítása táblázatban van és Vlookup-pal keressük meg. Így a felhasználók változását csak a munkalapon kell átírni.
Remélem erre gondoltál.
Üdv.
-
lappy
őstag
válasz
Dark Archon #48544 üzenetére
-
lappy
őstag
válasz
Fferi50 #48545 üzenetére
nincs bejelentkezés - belső hálózaton használt, megosztott fájl
igen tettem fel egy minta képet és a 2. sorban látható hogy mennyi szabadságot vett ki az adott személyek %-n ebből ki kellene gyűjteni akik nem érik el a 70% szeptember 01-ig akkor jönne a figyelmeztetés (de valójában korábban kellene erre felhívni a figyelmet) -
-
lappy
őstag
válasz
Dark Archon #48542 üzenetére
lemásolod majd ismétlések eltávolítása
és egy darabteli függvény -
Üdv!
Az alábbi táblázatban szeretnék segítséget:
Szeretném, ha a program megkeresné az ismétlődő rendelési számokat és törölné egy kivételével, de a megmaradó egyetlen tételben összesítené a darabszámot. Pl. az A9A26927 esetében az elsőn kívül törölje a többit, de a darabszámot összesítse, ebben az esetben 6db-ra.
Ez lehetséges VBA nélkül? Bár annak sem vagyok ellene, ha nem túl bonyolult.
Köszi előre is!
-
lappy
őstag
válasz
Fferi50 #48538 üzenetére
a személyek szabadság felhasználása egy sorban a személyek alatt lenne figyelve egyszerű matematikai művelettel (ez megoldott)
a feltételes formázásra gondoltam, de nem tudom mennyire veszi észre a figyelmeztetés - ha a makró nem megy akkor marad ez
viszont a makrós megoldást azt nem tudom, ebben tudnál segíteni -
Fferi50
Topikgazda
Szia!
Ha makró lehet benne, akkor a Thisworkbook modul Workbook_Open eseményébe beteheted, hogy az aktuális dátum függvényében figyelmeztessen.
Ha nem lehet makró, akkor egy cellába írnám a figyelmeztetést és feltételes formázással tenném láthatóvá/láthatatlanná.
Persze figyelni kellene az aktuális felhasználó szabadság felhasználását is. A konkrét megoldás függ a személyek és szabadságok kezelésétől.
Üdv. -
lappy
őstag
Van egy megosztott excel file, amiben szabadságok vannak vezetve
Azt szeretném megcsinálni, hogy ha szeptember 01-ig nem veszi ki a szabadság 70% -át akkor, ha vki megnyitja a fájl-t akkor legyen egy lista amiben azokkal a személyekkel akik még nem vették ki. De lehet előtte egy hónappal is kellene egy figyelmeztetés hogy hamarosan szeptember 01.
Köszönöm -
-
zseko
veterán
Sziasztok,
lenne egy excel táblázatom, 34 munkalappal, mérési eredményekkel.
A benne lévő értékeket szeretném függőlegesről vízszintesre átrakni, minden munkalapon. Azaz az A8 a B2-be kerülne, a B8 a B3-ba, C8 a B4-be, stb, majd az A-F9 értékei a C2-7 cellákba, stb.Azt hittem ha felveszem makróval az egészet ahogy rendezem, majd a másik munkalapon elindítom, akkor ott is megcsinálja, de nem így működik... Hogyan lehetne megadni, hogy munkalap névtől függetlenül lefuttassa az épp aktuális munkalapon a makrót? (semmire nincs átnevezve, az alap Munka1 - Munka34 név van)
A legvégén az összes érték a legelső munkalapra kerül egymás alá (34 termék, 34 mérés eredményei, de ez a legkevesebb, legfeljebb ctrl+c - ctrl+v lesz, viszont a rendezést jó lenne nem minden lapon külön egyesével megcsinálni.
(Itthon 2007-es office van, munkahelyen viszont xp.)
-
wolfman
veterán
-
Fferi50
Topikgazda
válasz
wolfman #48531 üzenetére
Szia!
Akkor
1.a hivatkozásokat meg kell szüntetni az Adatok - kapcsolatok vagy hivatkozások - megszüntetés menüponttal az átmásolt munkalapon. Ebben az esetben az éppen akkor levő értékek maradnak meg.
2. A munkalap teljes területét kijelölöd - másolás - irányított beillesztés értéket.
Ebben az esetben is az értékek maradnak és a képletek megszünnek.
Üdv. -
wolfman
veterán
válasz
Fferi50 #48527 üzenetére
1.: Köszönöm, ez tuti!
2.: Nem nem, így nem lesz jó. Ami lapfület kimásolok külön dokumentumba, azt tovább lenne küldve az eredeti sokfüles táblázatunkból.
Azért kell, mert most kolléga (én meg a helyettese vagyok
) 5-6 különböző táblázatot (külön lapfüleken) tölt ki egymás után mert mindegyikre máshogyan kellenek számítások az általunk bevitt adatokból. Na most az első táblázatot mi töltjük, a többire meg számolná a program ezekből ami kell. Csakhogy a külön füleken szereplő táblázatokat külön osztályokra kell szétküldjünk, de nem akarjuk az egészet egyben. Hogy kimásoltam tuti, de az eredeti munkafüzet nem lesz mellette.
-
Fferi50
Topikgazda
válasz
csiben1 #48528 üzenetére
Szia!
Makró nélkül pl.
1. D1 cella képlete=HA(A1-B1-C1>=0;"";"HIBA")
2. Feltételes formázás az A1 : C1 tartományra - képlettel , a képlet=$A$1-$B$1-$C$1<0
kitöltés vagy szegély.
3. Adatok - érvényesítés - egyéni - képlet:$a$1-$b$1-$c$1<0
4. Makró:
A munkalap kódlapjára beírva:Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Range("A1:C1"), Target) Is Nothing Then Exit Sub
Application.EnableEvents = False
If Range("A1").Value < Range("B1").Value + Range("C1").Value Then
MsgBox "Hibás érték"
End If
Application.EnableEvents = True
End Sub
Üdv.
-
csiben1
tag
Sziasztok,
Ti hogy oldanátok meg a következő korlátozást:
A1 cella értékénél nem lehet nagyobb a B1 és C1 cella értékeinek összege. Tehát ha A1=100, akkor maximum akkora számot írhatok a B1 és C1 cellába, hogy azok összege nem lehet nagyobb 100nál. Ellenkező esetben egy csúnya hibaüzenetet kapok.Ha valaki tud erre valami megoldást azt megköszönném!
-
Fferi50
Topikgazda
válasz
wolfman #48526 üzenetére
Szia!
1. Igen! Lapfülön jobb egérgomb - áthelyezés vagy másolás - új munkafüzetbe - legyen másolat kocka bepipálva.
2. A hivatkozások megmaradnak, az eredeti munkafüzetben levő munkalapokra fognak hivatkozni. Ha az eredeti munkafüzetet nem helyezed át máshova, akkor a hivatkozások alapján az értékek frissíthetők (még az eredeti munkafüzet bezárása után is!).
Üdv. -
wolfman
veterán
Sziasztok!
Lenne kettő igen égetően fontos kérdésem!
1.: Ki lehet-e menteni egy több füles táblázatból füle(ke)t külön táblázatba?2.: Ha igen: Ezen fülekben lévő táblázatokban megjelenő értékek változók és képletek alapján kerülnének be másik fülekről. Ha ezeket kimentem külön táblázatba, akkor ezek az értékek megmaradnak vagy mivel nincs mire mutassanak, lenullázódnak vagy értéküket vesztik? Ha igen, azért lehet rá megoldás? Ha nem teljesen érthető, leírom részletesebben is. Ha ezek kivitelezhetők lennének, rettentő sokat segítene a munkámban!
-
Mr. Y
őstag
Sziasztok!
SOS segítséget szerenték kérni! Ugyan nem MS Excel, hanem Libreoffice, de mikor átviszem a fájlt MS-be, ugyan az a helyzet.
Van egy táblázat, méretezve, képekkel, stb. Kereken A4-re. A nyomtatási és PDF exportálási kép azonban kisebb és alul megjelenik az oldalszám, felül pedig a munkalap neve. Ezt kellene eltüntetni, hogy a 0px margós A4-es nyomat tényleg az legyen, vagyis ténylegesen csak a cellákat nyomtassa ki.
Előre is köszönöm!
-
Mr.Mercury
aktív tag
válasz
temporello #48521 üzenetére
Megnézem, köszi!
-
temporello
tag
válasz
Mr.Mercury #48520 üzenetére
Például egy ilyen képlettel:
=COUNTIFS(B:B;B1)>2 -
Mr.Mercury
aktív tag
Sziasztok!
Segítséget szeretnék kérni: meg lehet azt oldani, hogy a feltételes formázásnál az ismétlődő értékeknél az Excel csak azokat a cellákat jelölje meg ahol az ismétlődések száma min. 3-szor vagy többször fordul elő, tehát a duplikációkat hagyja figyelmen kívül és ne jelölje meg?
-
Nixon18
senior tag
válasz
Fire/SOUL/CD #48501 üzenetére
Eszméletlen!
Delila_1 neked is köszönöm!
-
Anulu79
addikt
Igen erre gondoltam. Viszont a formáummásolás nem akar működni mert mert minden cella ugyanarról az egy celláról veszi a formátumot. Aztán ha később módosítok az A és a C cellán akkor már nem jó mert az elején lévő adatoknak meg kell maradniuk.
Kicsit nehéz elmagyaráznom. -
Alcsi69
senior tag
Sziasztok!
Gyakornoki munkam soran (ami valoszinuleg nem lesz tul hosszu eletu amugy) belebotlottam nehany szamomra nehezebbnek tuno feladatba, es mivel nem vagyok annyira gyakorlott excelben, gondoltam megkerdezem hogy ez mennyire lehetseges.
A legegyszerubb feladat elso resze valahogy igy nezne ki:
Van 12db .xlsx-em melyekben kulonbozo gepek havi fogyasztasai vannak (12db xlsx->mindegyik 1-1 honapra vonatkozoan). Ezen gepeket 2021 valamelyik honapjaban fejlesztettek, es 30%-os fogyasztascsokkenest igeretek.Van egy 13. darab xlsx, melyben a vizsgalni kivant gepek vannak, illetve a fejlesztes datuma van megadva.
Eloszor is tudnia kellene a programnak, hogyha az adott gepen pl. a 10. honapban tortent a fejlesztes, akkor a 9. es 11. honap fogyasztasi adataibol kellene a szazalekos csokkenest (jobb esetben) logolnia. Tehat tudnia kell hogy melyik fajlban kell keresnie adott ID alapjan a havi fogyasztast tartalmazo xlsxekben a megfelelo ID-hoz tartozo fogyasztasi adatokat.
Szerintetek ez vba-ben megvalosithato ha jol utananezek a dolognak?
-
Anulu79
addikt
Sziasztok!
A következő lenne a kérdésem:
A oszlop: érték, mondjuk 10
B oszlop: érték, mondjuk 100
C oszlop: érték, 1 - 1000-igKövetelmény:
Ha a C oszlop értéke az A és B oszlopban írtak közé esik akkor zöld dzínű legyen az érték máskülönben piros színű.Megoldható úgy a C oszlop feltételes formázása (zöld, piros) úgy, hogy minden egyes cella külön legyen formázva? Ugyanis ha egyben formázom és mondjuk a B és C oszlopban lejjebb modosítom az értékeket akkor a formázást az egész oszlopra veszi.
Remélem, hogy nem voltam túl kusza.
Köszönöm!
-
Delila_1
veterán
válasz
Fire/SOUL/CD #48501 üzenetére
Hihetetlen, mire nem vetemedsz!
-
Colin111
csendes tag
Üdv újra!
A jó hír, hogy egy másik gépen rendben van a power modul és az adatkezelésnél megjelenik a json file beolvasás, de nem igazán sikerült megértenem a működését...
Nekem egy többszintű json file-om van (lesz több is) de ebből csak a két első fejléc mezőt ismeri fel beolvasáskor az excel, a többi kb. 15 mezőt észre sem veszi.
Próbáltam manuálisan felvenni további oszlopokat, de hiába, az értékeket nem hajlandó beolvasni táblázatos formába (kb. 500 azonos szerkezetű bejegyzés van json-ben)
Egy online konverter simán felismerte és szuper táblázattá alakította ezt a json file-t, de nem szeretnék majd éles adatokat online feldolgozni, ezért keresek valami jobb megoldást.
Ha bárkinek van ötlete, javaslata, kérem írja meg.
Az első rekord a fejléccel így néz ki:
{
"account": {
"iban": "HU07XXXXX001000000XXXXXX0000"
},
"transactions": {
"booked": [
{
"additionalInformation": "+XXX 00365401940",
"bookingDate": "2022-02-07",
"creditorAccount": {
"iban": "HU07XXXXX001000000XXXXXX0000"
},
"creditorName": "KISS JÁNOS",
"debtorAccount": {
"iban": "HU74SSSSS0010000000SSSSS0025"
},
"debtorName": "HERMIONE GRANGER",
"endToEndId": "NOTPROVIDED",
"proprietaryBankTransactionCode": "HCT001",
"remittanceInformationUnstructured": "Payment order 1",
"transactionAmount": {
"amount": "1.00",
"currency": "HUF"
},
"transactionId": "",
"valueDate": "2022-02-07"
},
Előre is köszönök minden segítséget! -
-
Magnat
veterán
válasz
Fire/SOUL/CD #48501 üzenetére
Poén volt, de úgyis tudod
-
Delila_1
veterán
válasz
Nixon18 #48495 üzenetére
Valamikor régen már feltettem a makrót – talán többször is – de most nem találom. Újra felteszem.
Function Szam_kiiras(szam As Long) As String
Dim j1, j10, j10a, j100
j1 = Array("", "egy", "kettő", "három", "négy", "öt", "hat", "hét", "nyolc", "kilenc")
j10 = Array("", "tíz", "húsz", "harminc", "negyven", "ötven", "hatvan", "hetven", "nyolcvan", "kilencven")
j10a = Array("", "tizen", "huszon", "harminc", "negyven", "ötven", "hatvan", "hetven", "nyolcvan", "kilencven")
j100 = Array("száz", "", "ezer", "millió", "milliárd")
betu = ""
If szam = 0 Then
Szam_kiiras = "Nulla"
Exit Function
End If
s = Format(szam, "0")
j = 1
While s <> ""
i = Len(s) - 2
If i < 1 Then i = 1
s2 = Mid(s, i, 3)
s = Left(s, i - 1)
s3 = ""
If Len(s2) = 3 Then
s3 = s3 + j1(Asc(Mid(s2, 1, 1)) - 48)
If Mid(s2, 1, 1) <> "0" Then s3 = s3 + j100(0)
s2 = Right(s2, Len(s2) - 1)
End If
If Len(s2) = 2 Then
If Mid(s2, 2, 1) = "0" Then
s3 = s3 + j10(Asc(Mid(s2, 1, 1)) - 48)
Else
s3 = s3 + j10a(Asc(Mid(s2, 1, 1)) - 48)
End If
s2 = Right(s2, Len(s2) - 1)
End If
s3 = s3 + j1(Asc(Mid(s2, 1, 1)) - 48)
If s3 <> "" Then s3 = s3 + j100(j)
If (betu <> "") And (szam > 2000) And (s3 <> "") Then kot = "-" Else kot = ""
betu = s3 + kot + betu
j = j + 1
Wend
betu = UCase(Left(betu, 1)) & Right(betu, Len(betu) - 1)
Szam_kiiras = betu
End Function
-
lappy és Magnat
Egyelőre ennyit tudtam tenni az ügy érdekében (vezetek)
Tudom, még lehetne optimalizálni, de MA biztosan nem teszem.B2 képlete
=ÖSSZEFŰZ(VÁLASZT(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));1;1)+1;"";"egyszáz ";"kétszáz ";"háromszáz ";"négyszáz ";"ötszáz ";"hatszáz ";"hétszáz ";"nyolcszáz ";"kilencszáz ");HA(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));3;1)<>"0";VÁLASZT(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));2;1)+1;"";"tizen";"huszon";"harminc";"negyven";"ötven";"hatvan";"hetven";"nyolcvan";"kilencven");VÁLASZT(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));2;1)+1;"";"tíz ";"húsz ";"harminc ";"negyven ";"ötven ";"hatvan ";"hetven ";"nyolcvan ";"kilencven "));VÁLASZT(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));3;1)+1;"";"egy ";"kettő ";"három ";"négy ";"öt ";"hat ";"hét ";"nyolc ";"kilenc ");HA(ÉS(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));1;1)="0";KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));2;1)="0";KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));3;1)="0");"";"milliárd ");VÁLASZT(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));4;1)+1;"";"egyszáz ";"kétszáz ";"háromszáz ";"négyszáz ";"ötszáz ";"hatszáz ";"hétszáz ";"nyolcszáz ";"kilencszáz ");HA(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));6;1)<>"0";VÁLASZT(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));5;1)+1;"";"tizen";"huszon";"harminc";"negyven";"ötven";"hatvan";"hetven";"nyolcvan";"kilencven");VÁLASZT(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));5;1)+1;"";"tíz ";"húsz ";"harminc ";"negyven ";"ötven ";"hatvan ";"hetven ";"nyolcvan ";"kilencven "));VÁLASZT(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));6;1)+1;"";"egy ";"kettő ";"három ";"négy ";"öt ";"hat ";"hét ";"nyolc ";"kilenc ");HA(ÉS(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));4;1)="0";KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));5;1)="0";KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));6;1)="0");"";"millió ");VÁLASZT(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));7;1)+1;"";"egyszáz ";"kétszáz ";"háromszáz ";"négyszáz ";"ötszáz ";"hatszáz ";"hétszáz ";"nyolcszáz ";"kilencszáz ");HA(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));9;1)<>"0";VÁLASZT(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));8;1)+1;"";"tizen";"huszon";"harminc";"negyven";"ötven";"hatvan";"hetven";"nyolcvan";"kilencven");VÁLASZT(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));8;1)+1;"";"tíz ";"húsz ";"harminc ";"negyven ";"ötven ";"hatvan ";"hetven ";"nyolcvan ";"kilencven "));VÁLASZT(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));9;1)+1;"";"egy ";"kettő ";"három ";"négy ";"öt ";"hat ";"hét ";"nyolc ";"kilenc ");HA(ÉS(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));7;1)="0";KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));8;1)="0";KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));9;1)="0");"";"ezer ");VÁLASZT(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));10;1)+1;"";"egyszáz ";"kétszáz ";"háromszáz ";"négyszáz ";"ötszáz ";"hatszáz ";"hétszáz ";"nyolcszáz ";"kilencszáz ");HA(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));12;1)<>"0";VÁLASZT(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));11;1)+1;"";"tizen";"huszon";"harminc";"negyven";"ötven";"hatvan";"hetven";"nyolcvan";"kilencven");VÁLASZT(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));11;1)+1;"";"tíz ";"húsz ";"harminc ";"negyven ";"ötven ";"hatvan ";"hetven ";"nyolcvan ";"kilencven "));VÁLASZT(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));12;1)+1;"";"egy";"kettő";"három";"négy";"öt";"hat";"hét";"nyolc";"kilenc");HA(ÉS(KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));10;1)="0";KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));11;1)="0";KÖZÉP(SZÖVEG(A2;SOKSZOR(0;12));12;1)="0");"";""))
Természetesen módosítsátok tetszésetek szerint a képletet, legyen pöpec...
UI: Makróban sokkal egyszerűbb megírni, ezt csak az érdekesség kedvéért csináltam...
Új hozzászólás Aktív témák
Hirdetés
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- HIBÁTLAN iPhone SE 2020 128GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS2192, 100% Akkumulátor
- Vadiúj videókártyák! Kamatmentes rèszletre is! Èrdeklődj!
- BESZÁMÍTÁS! Asus ROG STRIX Z490-G Gaming alaplap garanciával hibátlan működéssel
- Bomba Ár! Fujitsu LifeBook E780 - i5 I 4GB I 250GB I DVDRW I 15,6" HD I Cam I W10 I Garancia!
Állásajánlatok
Cég: FOTC
Város: Budapest