- Android szakmai topik
- Samsung Galaxy A55 - új év, régi stratégia
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Azonnali mobilos kérdések órája
- Nem lesz idén Nothing Phone (3)
- Huawei P30 Pro - teletalálat
- VoLTE/VoWiFi
- Hivatalos képen a Samsung hajlíthatók
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Samsung Galaxy S10e - esszenciális
Hirdetés
-
Computex 2024: a jövőt vázolta fel az NVIDIA
ph A korábban bemutatott fejlesztések mellett a 2025-ös és 2026-os tervek kerültek elő.
-
Spyra: nagynyomású, akkus, automata vízipuska
lo Type-C port, egy töltéssel 2200 lövés, több, mint 2 kg-os súly, automata víz felszívás... Start the epic! :)
-
Közeledik az X Fold3 Pro
ma A kínai bemutató után megtartotta a Vivo a nemzetközit, de még nem Európában.
-
Mobilarena
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
őstag
válasz DrojDtroll #24588 üzenetére
Szia!
munkalap2 A1 cella Feltételes formázás, a cellák kijelölése képlettel, a képlet legyen ez:
=munkalap1!$A$1=1
a kitöltésnél jelöld be a piros szint.
A másik színnél ugyanígy.Üdv.
-
Fferi50
őstag
válasz Delila_1 #24590 üzenetére
Szia!
Áthidalható a probléma úgy is, ha azt a cellát, amelyikre hivatkozni akarsz, ellátod névvel.
Így már lehet használni a feltételes formázásban is:Munka1 munkalap A1 celláját elnevezed pl. elso -nek.
Munka2 munkalap A1 cellájának feltételes formázása: a képlet =elso=akarmiTermészetesen az akármi helyére a feltétel helyettesítendő be.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz slashing #24593 üzenetére
Szia!
Ugyan nem egészen látom a logikáját annak, hogy miért formátumhoz kötöd a validálást, de az ellenőrzéshez az alábbiakat ajánlom:
If Target.Column = 15 And IsNumeric(Target) Then
Target.NumberFormat = "h:mm;@"
Else
application.undo
msgbox "Helytelen adat"
'Target.NumberFormat = "General"
End IfLehet, hogy a kikommentelt sor is kell, nézd meg lsz.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz slashing #24593 üzenetére
Szia!
Még valami: Ha már egyszer úgyis meg kell nézni, hogy jót írt-e be, azt be lehetne építeni a fenti makróba és akkor az egész validálást ki lehet iktatni:
Én beszúrnám még ezt a sort az else után az előző makrómban:
if target.value<>"N/A" then
utána jön az Undo, az üzenet és ne felejtsd el az ezt záró end if -et.Üdv.
-
Fferi50
őstag
válasz slashing #24596 üzenetére
Szia!
Akkor leírom egyben:
Application.Enableevents=false
If Target.Column = 15 And IsNumeric(Target) Then
Target.NumberFormat = "h:mm;@"
Else
if target.value<>"N/A" then
application.undo
msgbox "Helytelen adat"
'Target.NumberFormat = "General"
endif
End If
Application.Enableevents=TrueArra figyelj, hogy az "N/A" szöveg nem azonos az N/A hibával! Ide most szöveget kell írni. Ha a hibát szeretnéd, akkor azt másképpen kell.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz DrojDtroll #24604 üzenetére
Szia!
Próbáld meg a névadással (24592 sz. hozzászólás). Bár elvileg abban a verzióban már kellene mennie (hacsak vissza nem fejlesztették a 2010-es eszközöket).
Üdv.
-
Fferi50
őstag
válasz DrojDtroll #24606 üzenetére
Szia!
Elvileg igen, működnie kellene szerintem - persze elég macerás sok cellának külön nevet adni.
Nézd meg légy szíves ezt a fájlt:Példa
Itt a Munka1 A oszlop első pár cellája a Munka2 A oszlop azonos cellájának értékétől függően színeződik. A feltétel az, hogy 10 -nek kell lenni a Munka2 - ben az adott cellában (természetesen ez tetszőlegesen változtatható).
Remélem nálad is működik.
Üdv.
-
Fferi50
őstag
válasz slashing #24619 üzenetére
Szia!
Ez a Microsoft legutóbbi (dec. 9) Office biztonsági frissítésének "eredménye". Meg kell keresned a TEMP könyvtárak alatt az MSforms.exd állományokat és ki kell törölni onnan.
Ezután már menni fog.
itt a leírásaÜdv.
-
Fferi50
őstag
válasz #75376384 #24631 üzenetére
Szia!
Tegyél fel egy 40-50 soros mintát valahova és megnézzük, mit lehet tenni.
A sorbarendezésnél nem kell 4000 sort "átnyálazni", az oszlopokon kell végigmenni és eldönteni, milyen legyen a szintek sorrendje.
A kimutatás szerintem teljesen korrekt módon megoldja a problémádat, csak megfelelően kell összeválogatni a sorokat és az oszlopokat.
A névsor szerint nekem egyértelműen a ABC sorrendet jelenti (iskolában a napló is névsorban volt írva, kik voltak elől és kik a végén?). Amit Te forszírozol, az az időrend szerinti sor - azaz ki vette ki legkorábban.
Nem egyértelmű így, hogy mit szeretnél látni.
Üdv.
-
Fferi50
őstag
válasz #75376384 #24633 üzenetére
Szia!
Én a következőt tettem:
A J1 cellába beírtam a Kivételek száma cimkét
A J2 cellába beírtam a következő képletet:
=DARABHATÖBB($C$2:$C$4000;C2;$A$2:$A$4000;A2)
Majd ezt végighúztam az egész J oszlopon.
A kapott eredmény alapján csináltam egy sorbarendezést, ahol az első szint a Kivételek száma és a nagyobbtól a kisebbik felé rendez, a második szint a név, ahol A-Z a sorrend.Ezután kedved szerint kiválaszthatod, ha akarod, hogy ki vette ki a legrégebben valamelyik filmet.
Üdv.
-
Fferi50
őstag
válasz attilaandor #24665 üzenetére
Szia!
Először is csinálnék egy oszlopot, amiben kiszámolnám az áfa értéket (e oszlop x f oszlop).
Ezután egy szumha függvénnyel összeadnám a kiszámolt oszlop azon celláinak értékét, ahol az f oszlopban 27 % van.Üdv.
-
Fferi50
őstag
válasz tgumis #24735 üzenetére
Szia!
Nézd meg légy szíves a csatolt fájlt, abban ismétlődő adatok általad kiválasztott értékét lehet visszakapni a képlettel.
ismétlődő adatok kereséseNyilván nem lehet egy az egyben alkalmazni nálad, de az elveit ha megérted, tovább tudsz lépni.
Még valami, ha PONTOS egyezést keresel, akkor NEM KELL SORBARENDEZETT adat sem az FKERES sem a HOL.VAN függvénnyhez
Üdv.
-
Fferi50
őstag
válasz KaliJoe #24739 üzenetére
Szia!
Természetesen az excel súgónak tökéletesen igaza van és ugyanaz van benne amit én is írtam. Ha megnézed a range_lookup paraméterhez tartozó leírást, annak háromféle értéke lehet: Igaz, Hamis, vagy nem adod meg. A paraméter alapértelmezett értéke az Igaz (vagyis tartományban keres közelítő értéket), ami egyezik azzal, hogy nem adtál meg értéket.
Ha viszont Hamis értéket adsz neki - azaz pontos értéket keresel - akkor nem kell sorbarendezni az adatokat! Ez következik a megfogalmazásból:
"Fontos: Ha a tartományban_keres értékeIGAZ vagy hiányzik, a tábla első oszlopában lévő értékeknek növekvő sorrendben kell elhelyezkedniük, különben az FKERES hibás eredményt adhat."
Vagyis, ha az értéke HAMIS, akkor nem kell sorbarendezni.Üdv.
Bocs a megszólítás miatt, de itt általában ez a "barátságos tegeződés" járja.
[ Szerkesztve ]
-
Fferi50
őstag
Szia!
Használd a HA függvényt, pl. a C21 cellába írhatod a következő képletet
=ha(fkeres(E3;B9:D13;3;hamis)=5;kerek.le(E5/fkeres(E3 ; B9 : D13 ; 3;hamis);0);"-")A többinél is értelemszerűen így, csak az egyenlőségjel helyett a >= jelet kell használnod és folyamatosan növelni kell a határt.
A C18 cellában >=2 a határ, C19-ben >=3, C20-ban >=4Üdv.
-
Fferi50
őstag
válasz Thrawnad #24769 üzenetére
Szia!
Workbooks(1).FullName megadja a teljes nevét, elérési utvonallal együtt.
Workbooks(1).Name megadja a rövid nevet.
Ha csak az elérési útvonalra vagy kíváncsi akkor:utvonal=replace(workbooks(1).fullname,workbooks(1).name,"")
Természetesen a workbooks(1) helyére kerülhet akár activeworkbook, vagy névvel megadott munkafüzet a szám helyett.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz Thrawnad #24778 üzenetére
Szia!
Ennél azért szerintem egyszerűbb a left és az instr függvény használata:
File_Ki=left(workbooks(file_ez).fullname,instr(workbooks(file_ez).fullname,".")) & "TXT"
(Persze csak akkor, ha nincs a nevében több pont...)
Esetleg így:
File_Ki=workbooks(file_ez).fullname
File_Ki=left(File_Ki,instr(File_Ki,".")) & "TXT"Üdv.
[ Szerkesztve ]
-
-
Fferi50
őstag
válasz tgumis #24824 üzenetére
Szia!
Én a munkalap Selection_Change eseménykezelőjébe tenném be a következőket:
Megnézném, hogy a kérdéses terület van-e kiválasztva (ezt az intersect függvénnyel tudod megtenni)
Ha igen, rákérdeznék, hogy másoljam-e át (msgbox eredménye yes vagy no).
Ha másolni kell, akkor megkeresem a második munkalapon az utolsó sort és a cellák értékét egyesével átadom első cella az első oszlopba, második cella a második oszlopba . és így tovább.Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz tgumis #24827 üzenetére
Szia!
Az utolsó üres sort megkapod a következőképpen:
az A oszlopban
usor=cells(rows.count,1).end(xlup).row+1ha más oszlopban szeretnéd, akkor az oszlopszámot átírod.
Transzponálni nem kell erőlködnöd. Simán átveszed az értékeket:
pl.
Munka2.cells(usor,1).value=Munka1.cells(1,4).value
Munka2.cells(usor,2).value=Munka1.cells(2,4).value
Munka2.cells(usor,3).value=Munka1.cells(3,4).value
Sőt:
For xx= 1 to 3
Munka2.Cells(usor,xx).value=Munka2.cells(xx,4).value
NextEz a kód a Munka1. D1:D3 cellájának értékét átteszi a Munka2 utolsó sorának első -második és harmadik cellájába. Az oszlopszámokat szükség szerint állítsd át.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz gaborlajos #24846 üzenetére
Szia!
Ha 2010-es (esetleg 2007?) vagy annál újabb exceled van, akkor adatok -> ismétlődések eltávolítása.
Ha korábbi, akkor adatok -> irányított/speciális szűrő. Másolás más helyre, csak az egyedi adatok. Ekkor viszont az adatok első cellája fejléc kell legyen.Üdv.
-
Fferi50
őstag
válasz gaborlajos #24853 üzenetére
Szia!
Két dolog:
1. Az automatizmus magától nem megy, meg kell neki mondani, hogy mit csináljon - pl. eseményvezérelten, vagy gombnyomással vagy stb.
2. Amit írtam, azt nem csak egy oszlopra lehet alkalmazni, hanem tartományokra is - és makróból meg lehet hívni lásd első pont.Tehát, ha felteszel egy mintát és leírod, hogy mikor mit csináljon, akkor könnyebben tudunk segíteni.
Üdv.
-
Fferi50
őstag
válasz gaborlajos #24856 üzenetére
Szia!
Te egészen biztosan tudod, hogy mit szeretnél. Amit leírtál, abból viszont nem derül ki - legalábbis számomra:
Az ide másolja át részen látom a dolgozók neveit kigyűjtve. Ezen kívül mit kellene még mellé gyűjteni? Gondolom a teljesített órák számát, amit talán a mind összesen óra oszlop tartalmaz?
Miért van két név oszlop?Gondolat: A dolgozó neve oszlopra csinálsz egy irányított szűrést, egyedi értékekre, az ide másolja át oszlopba.
Ezután a dolgozók melletti cellákban egy szumha függvénnyel összegzed a hozzá tartozó órák számát.Legalábbis, ha ezt szeretnéd.
Légy szíves igazold vissza, jól gondolom-e a "feladatot".
Még valami: Excel verziód száma és nyelve?
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz gaborlajos #24858 üzenetére
Szia!
Eddig teljesen világos és egy makróval meg is oldható, hogy ha valaki uj nevet ír be, az átkerüljön a nevek oszlopába.
De! Mi garantálja, hogy mindig ugyanazt a nevet írja be és nem "bénázik"?
Én inkább csinálnék egy érvényesítő listát a nevek oszlopába és onnan választatnám ki a nevet. Így biztosan nem lenne félreütés. Persze ehhez tudnod kellene a dolgozók nevét előre. Mi a véleményed?Üdv.
-
Fferi50
őstag
válasz gaborlajos #24868 üzenetére
Szia!
A munkalapod kódlapjára a következőt írd be légy szíves:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("$D$1:$E$50")) Is Nothing Then Exit Sub
Application.EnableEvents = False
vanmar = Application.Match(Target.Value, Range("$H$1:$H$" & Range("H4000").End(xlUp).Row), 0)
If IsError(vanmar) Then
If IsEmpty(Range("H1")) Then
Range("H1").Value = Target.Value
Else
Range("H4000").End(xlUp).Offset(1, 0).Value = Target.Value
End If
End If
Application.EnableEvents = True
End SubA kódlaphoz úgy jutsz, hogy a munkalap fülön jobb egérgombbal kattintasz. Ott kiválasztod a kód megjelenítését. Ezután a lap második felében megjelenik egy lenyiló, general felirattal. Azt átváltod worksheet feliratra. Megjelenik egy Worksheet_SelectionChange sub. Ezzel ne törődj, alá másold be a fentieket.
Amikor a D1:E50 cellák valamelyikébe beírsz egy nevet vagy bármit, a cella elhagyásakor a H oszlopban megvizsgálja, hogy van-e már olyan beírás. Ha nincs, akkor utolsónak beírja. De betű szerint egyeznie kell a beírásnak!
Természetesen a tartományokat a magad képére formálhatod (ha 4000-nél több dolgozó lehet, akkor a 4000-es számot vedd nagyobbra).Remélem valami ilyesmire gondoltál.
Üdv.
-
Fferi50
őstag
válasz KaliJoe #24872 üzenetére
Szia!
Néhány megjegyzés:
Az idézőjeleket kétféleképpen viheted be a szövegbe:
1. Megduplázod az idézőjelet - ahogyan Te is tetted, ez teljesen szabályos forma
2. A CHR függvénnyel CHR(34) hozzáfűzésével - ezt nem kell duplázni!A számváltozókat nem kell átalakítani a kifejezésekben:
&Trim(str(lng_AktuálisSor))
teljesen felesleges, egyszerűen beírhatod, hogy & lng_AktuálisSorTovábbá: VBA-ban a cella formula tulajdonság képlettel való megadásakor kizárólag angolfüggvénynevek használhatók. Tehát nem HA, hanem IF, nem VAGY hanem OR és így tovább.
Ha magyar függvényneveket szeretnél használni akkor a cella formulalocal tulajdonságát kell beállítanod.
A második példád egészen biztosan ezért ad hibát.
Viszont, ha magyar nyelvű képlettel írod be VBA-ból a kifejezéseket, akkor nem lesz hordozható az excel táblád, mert nem magyar környezetben, vagy a tiedtől eltérő beállításoknál nem tudja értelmezni majd a képletet.Ha lenne még kérdésed, írj bátran.
Üdv.
-
Fferi50
őstag
Szia!
Ebben az esetben próbáld az adott cella formula tulajdonságát beállítani, azaz a képletet beírni a cellába, valahogy így:
srcbook.kitoltendo.formula="=" & dstbook.Worksheets(1).Range("KELL").Address(external:=true)
Az address tulajdonság external kapcsolója arra utasítja az excelt, hogy az adott cella teljes elérési útvonalát is tartalmazó címét adja meg - a hivatkozáshoz neked pont erre van szükséged.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
Szia!
Azért mégis próbáld meg a beillesztéses verziót a következőképpen:
kitoltendo.Select
ActiveSheet.Paste link:=True
Ennek így működnie kell.Az én verzióm ilyen esetekre akkor működik, ha a forrás cellák és a cél cellák címei megegyeznek a két munkalapon (azaz pl A1:H1 mindkét lapon).
Ha ez nem így van, akkor a következőt javaslom:kitoltendo.cells(1,1).formula="=" & dstbook.WorkSheets(1).range("KELL").cells(1,1)address(external:=true,rowabsolute:=false,columnabsolute:=false)
kitoltendo.formula=kitoltendo.cells(1,1).formulaEz azért jobb szerintem, mint a copy mert nem használja a vágólapot.
Üdv.
-
Fferi50
őstag
válasz hengelhof #24879 üzenetére
Szia!
A Microsoftnak volt egy dec. 9-i office frissítése az ActiveX sebezhetőség megjavítása érdekében. Az "vágta haza" az aktivex használó programokat. De nagyon gyorsan feltették a megoldást.
Viszont amikor erről beszélgettünk a fórumon, akkor ez még nem volt nyilvánvaló.Üdv.
-
Fferi50
őstag
válasz gaborlajos #24886 üzenetére
Szívesen!
-
Fferi50
őstag
válasz pirit28 #24888 üzenetére
Szia!
Úgy gondolom, az elakadás amiatt van, mert direktben xls kiterjesztésre van kondicionálva:
myfile = Dir(folderName & "\*.xls")
Ha más kiterjesztés is van, akkor így kellene:
myfile = Dir(folderName & "\*.xls*")A mentésnél pedig ezt a sort kellene kiváltanod:
ActiveWorkbook.SaveAs Filename:=folderName & "\" & Replace(myfile, ".xls", "ok.xls")
úgy gondolom erre:
ActiveWorkbook.SaveAs Filename:= Replace(ActiveWorkbook.FullName, ".xls", "ok.xls")
Itt már nem probléma, ha a kiterjesztés pl. xlsx, mert csak az xls cserélődik ki.
A FullName már tartalmazza a teljes elérési utat is, ezért nem kell a folderName hozzá.Üdv.
-
Fferi50
őstag
Szia!
Egyrészt, nem tudom, hogy a Munkafüzetek összehasonlítása és egyesítése menüpont azt csinálja-e amit szeretnél. Másrészt ki lehet tenni ezt is a menüszalagra, a testreszabásnál ki kell választanod, hogy minden parancsot szeretnél látni és akkor egyéni csoportba "át tudod tolni" a menüszalagra is.
Továbbá, mit értesz azon, hogy egyesíteni kellene egyetlen darab fájlba?
Azt, hogy az összes munkafüzetben levő összes munkalapot bele kellene másolni egy db munkafüzetbe,
vagy azt, hogy a munkalapokon levő adatokat valamilyen algoritmus szerint egy db munkafüzetbe össze kellene fésülni (pl. a Munka1 munkalapon levő cellák értéke a legutolsó előfordulás szerint legyen)?Azért nem gondolod Te sem komolyan, hogy különböző verziókban leledző többszáz munkafüzet majd csettintésre átalakul egy munkafüzetté? Meg kell azért bizony dolgozni. Szépen sorban meg kell nyitogatni őket, majd elvégezni rajtuk/velük a szükséges műveletet (átrakni az "örökös" munkafüzetbe) és utána visszazárni.
Ezt egy nem túl nagy makró megcsinálja, ha tudod, hogy mit szeretnél.Üdv.
-
Fferi50
őstag
Szia!
Ez a gomb szerintem csak közös használatú munkafüzeteknél aktív.
Nem egészen világos még mindig: Adott 300+ fájl egy-egy munkalappal különböző számú sorokkal.
Az adott fájlból a munkalapon levő sorokat a "Főfájl" egyetlen munkalapjának az utolsó sorai után kell bemásolni?Mindenesetre jó lenne, ha az összes fájl egy könyvtárban lenne. Akkor lehet egy viszonylag egyszerű makrót írni az összemásolásukra.
Most más dolgom van, de ha visszajövök, segítek, de írd meg lsz. jól értettem-e a feladatot.
Üdv.
-
Fferi50
őstag
Szia!
Próbáld ki a következőt:
Sub osszerako()
Dim hova As Worksheet, fajlneve As String, usor As Long, xx As Integer
Set hova = ActiveSheet
fajlneve = Dir("*.xls*")
Application.EnableEvents = False
Do While fajlneve <> ""
xx = xx + 1
usor = hova.UsedRange.Rows.Count + 1: If usor = 2 Then usor = 1
Workbooks.Open Filename:=fajlneve, ReadOnly:=True
ActiveSheet.UsedRange.Copy Destination:=hova.Cells(usor, 1)
ActiveWorkbook.Close False
fajlneve = Dir()
If xx Mod 10 = 0 Then Application.StatusBar = "Másolva: " & xx & "db fájl!"
Loop
Application.EnableEvents = True
Application.StatusBar = False
MsgBox "A másolásnak vége, kérem, mentse el a fájlt!", vbInformation, "Fájlok összemásolása"
End SubRemélem segít.
Üdv.
Új hozzászólás Aktív témák
- PC JÁTÉKOK (OLCSÓ STEAM, EA , UPLAY KULCSOK ÉS SOKMINDEN MÁS IS 100% GARANCIA )
- Steam kulcsok - UTALÁS/REVOLUT
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
- Adobe Creative Cloud - 2024. 04. 05 - 2025. 04. 05-ig
- Vírusirtó, Antivirus, VPN licenckulcsok - kedvezményes ajánlatok (frissítve: 2024. 05. 01.)
- Office Professional Plus 2013, 2016, 2019, 2021 RETAIL licenckulcsok - MEGA Akció!
- GameStar / PC Guru játékmellékletek tokkal és borítóval 500Ft/db
- 8 db Eredeti RETRO Pc játék egyben!
- STEEL BOX! - EEP Eisenbahn.exe 3 & 4 Steel BOX
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen