-
Fototrend
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Fferi50
Topikgazda
válasz
tgumis
#49065
üzenetére
Szia!
Gyakorlatilag a dátum is számként van tárolva az Excelben. A "hibásan" betöltött értékeket megformázhatod dátumként, helyes értékeket fogsz kapni.
Valószínű, hogy azon a munkalapon - (vagy a txt-ben?) - van egy "kapcsoló", ami nem engedi tovább a dátum formátumot, hiszen új munkalapon "hibátlan" a betöltés.
Üdv. -
Fferi50
Topikgazda
válasz
Fire/SOUL/CD
#49055
üzenetére
Szia!
Igazán nincs mit. Mivel a többi megyénél ragaszkodott a hivatalos megnevezéshez, gondolom az volt a baj, hogy Budapest tartalmazza a pest szót, ezért kellett hozzá a megye.
Persze nem előszörre sikerült eltalálnom a baját.
Üdv. -
Fferi50
Topikgazda
válasz
Fire/SOUL/CD
#49053
üzenetére
-
Fferi50
Topikgazda
válasz
Lasersailing
#49051
üzenetére
Szia!
Próbáld meg a következőt:
Mielőtt elmented az adatokat, jegyezd meg, melyik az aktív control a userformon. A fájl bezárását végző makróben a bezárás után tedd a fókuszt erre a controlra:
Pl.Userform1.Textbox1.Setfocus
Ha máshol szeretnéd folytatni, akkor arra a controlra kell tenni a fókuszt, ahol a folytatás következne.
Üdv. -
Fferi50
Topikgazda
válasz
Lasersailing
#49043
üzenetére
Szia!
Hol található a kiíró-mentő programrész? A Userform kódlapján vagy általános modulban?
A fájlt muszáj mindig megnyitni és bezárni a kiírás miatt?
Nagyon nem szép módon a kiírás előtt Userform.Visible= False, utána Userform.Visible=True esetleg segít?
Üdv. -
Fferi50
Topikgazda
Szia!
A rendezésnél opcióként megjelölheted, hogy fejlécet tartalmaz-e. Ha ezt bejelölöd, akkor a tartomány első sorát fejlécnek tekinti és nem része a rendezésnek.
Ha üresen hagyod, akkor nincs fejléc és része a rendezésnek.
Táblázat rendezése csak fejléccel együtt megy.
Továbbá az A-Z Z-A ikonra kattintva megpróbálja kitalálni, hogy van-e fejléc, illetve a korábbi hasonló rendezés paramétereit veszi.
Üdv. -
Fferi50
Topikgazda
válasz
lenkei83
#49002
üzenetére
Szia!
Az első paraméter kötelező, egy userform combo vagy listbox objektum a kód alapján. A második paraméter opcionális logikai.
Az első paraméternél meg kell adnod az objektum teljes nevét, pl. Userform1.Combobox1 (a nálad érvényes nevekkel).
A második paraméter elhagyható, illetve False esetén nem méretezi át az objektumot, True esetén átméretezi. False és True helyett természetesen bármely általad bevezetett logikai változót alkalmazhatsz amelyiknek megfelelő az értéke számodra.
Mivel nincs visszatérési értéke, így szerintem egyszerűen meghívható zárójelek nélkül, mint egy paraméterezett eljárás:ControlsResizeColumns Userform1.Combobox1,True
Üdv. -
Fferi50
Topikgazda
válasz
pentium4
#48978
üzenetére
Szia!
Egy segédoszlopban (nálam kell fejléccel) megjeleníted, hogy mely számok vannak benne az ÁCS munkalapon és kiszűröd azokat:
Egy másolaton csináltam meg, ezért Adat (2) a hivatkozás a G oszlopbeli képletben:
=HAHIBA(FKERES('adat (2)'!D2;ACS!$A$1:$A$9;1;0);0)
Ezután a 0 "kell" értékű tételek egyszerűen kiszűrhetőek.
Üdv. -
Fferi50
Topikgazda
válasz
KaiotEch
#48966
üzenetére
Szia!
Vannak esetleg egész oszlopos/soros képletek (amik egész sorra, oszlopra hivatkoznak. Pl.Fkeres(akármi;A : F;...)) ?
Lehetnek olyan területek, amelyek nem tartalmaznak értékes információkat.
Keresd meg az utolsó cellát a munkalapon: F5 - irányított - utolsó cella. Ha ez az értékes adatokon kívül van, akkor az adatok vége és az utolsó cella közötti teljes sorokat ill. oszlopokat töröld.
Feltételes formázás egész soros/oszlopos képlete is okozhat gondot.
Próbáld ki, hogy a számításokat átállítod automatikusról manuálisra.
Hálózati kapcsolat mindig rendben van? Szinkronizálás mikor történik?
Üdv. -
Fferi50
Topikgazda
válasz
tonermagus
#48943
üzenetére
-
Fferi50
Topikgazda
válasz
tonermagus
#48925
üzenetére
Szia!
Új munkalapra túlnyomórészt képlettel át lehet fordítani, mutatom a képet:
Megjegyzések:
Az első sort (fejlécek) és a B2-B3 cellát kézzel kell beírni.
A B4 cella képlete: =B2: Ez a képlet húzható lefelé.
A többi második sori képletet látod a képen.
Ezek is húzhatók lefelé.
A képletek a korábbi munkalap elrendezésnek megfelelően hivatkoznak.
Remélem, sikerül megoldanod.
Üdv. -
Fferi50
Topikgazda
válasz
Lasersailing
#48918
üzenetére
Szia!
Nem kell a nyomtatni szándékozott munkalapot aktívvá tenni, direktben lehet rá hivatkozni.Sheets("print").Select
ActiveSheet.PrintOut copies:=1, collate:=True, ignoreprintareas:=False
helyettSheets("print").PrintOut copies:=1, collate:=True, ignoreprintareas:=False
Üdv. -
Fferi50
Topikgazda
-
Fferi50
Topikgazda
-
Fferi50
Topikgazda
válasz
Lajos.P
#48908
üzenetére
Szia!
Ez már volt az előző hozzászólásodban. Csak épp azt nem mondtad meg, hogy az micsoda és mi célt szolgál?
Hiszen a B oszlop tele van betűkkel. Oda milyen képletet írjunk? Hol van az az oszlop, ahová az A oszlop alapján a betűket be kell írni?
Ha ez a kódtáblád, akkor az FKERES függvényt tanulmányozd légy szíves. Bár nem értem, miért vannak benne az ismétlődések.
Üdv. -
Fferi50
Topikgazda
válasz
Lajos.P
#48906
üzenetére
Szia!
Már megbocsáss, de honnan tudhatjuk meg, hogy melyik kódhoz milyen betű tartozik???
Gondolom van egy kódtáblád. Azt be kell vinni egy segédterületre -- 1. oszlop kód, 2. oszlop a hozzátartozó betű - , ezután a táblában FKERES függvénnyel megtalálhatod a megfelelő betűt.
Pl.=FKERES(A2;Segédtábla;2;0)
Egy kis kötözködés még: Az Excelben nincs olyan, hogy A1 vagy B2 oszlop!!! csak A ill. B oszlop. A1 és B2 egy-egy cella, amelyet a sor és az oszlop határoz meg.
Üdv. -
Fferi50
Topikgazda
válasz
tonermagus
#48899
üzenetére
Szia!
Használd egészséggel!
Üdv. -
Fferi50
Topikgazda
válasz
tonermagus
#48896
üzenetére
Szia!
Némi ügyeskedéssel megoldható, íme a kép:
A hozzá vezető lépések:
1. Kiszámoljuk a benntartózkodás időtartamát (G-H oszlop)
2. Az egészet átfordítjuk úgy, hogy a 2 cég belépési és benntartózkodási ideje külön-külön sorba kerüljön a dátumok mellett. (A10-D21)
3. A diagram beszúrásánál a halmozott sávdiagramot választjuk.
4. Az első sorozat ( belépés időpontja) formázása: nincs kitöltés, nincs vonal - így kvázi láthatatlanná tesszük, csak a benntartózkodási időtartam sorozat marad látható.
5. A legnehezebb: mivel a benntartózkodási időtartam egy sorozat, minden második adatbpontot át kell színeznünk. Így lesz 2 eltérő színű "sorozatunk".
6. A jobb láthatóság kedvéért a vízszintes tengely kezdőértékét 0,25 -re és a fő léptéket is 0,25 -re változtattam - mivel egy nap számít 1 egésznek, minden óra 1/24 érték az Excelben.
A diagram bővíthető, azonban a bővítés után az adatpontok átszínezése nem automatikus, hanem - sajnos - kézzel szükséges.
Természetesen a diagram kialakítása és frissítése makróval is megoldható, ha szeretnéd, azt is elkészítem, de ahhoz kell egy kis idő.
Remélem tetszik a megoldás.
Üdv. -
Fferi50
Topikgazda
válasz
Melorin
#48882
üzenetére
Szia!
Szerintem nem feltétlenül kell erre makró.
Az FKERES (vagy INDEX - HOL.VAN ) képlettel az árak frissítése és a dátumok frissítése is megoldható.
Az adatbázisból lekérdezett táblában az ajánlat érvényessége oszlopot ketté lehet bontani, gondolom, neked a vége a fontos, tehát azt vissza lehet tenni az adott oszlopba az Adatok - szövegből oszlopok menüponttal.
A lekérdezés szükségessége (F) oszlop pedig HA függvényes képlettel megoldható.
A képletezést csak egyszer kell megcsinálni. A "központi" táblát pedig minden lekérdezéskor ugyanazon névvel kell ellátni, hogy a képletek működjenek.
Üdv. -
Fferi50
Topikgazda
válasz
Lasersailing
#48878
üzenetére
Szia!
Való igaz, hogy egyszerre nem lehet modális és nem modális form megjelenítése. A főmodul alatt egy userform kódlapját érted? Ha igen, akkor miért oda kell tenni?
Mielőtt a non-modal formot mutatod, a másikat el kell rejteni, majd utána ismét megmutatni. Hiszen közben csak azt szeretnéd, ha látnák, hogy a program dolgozik.
Egyébként ebből a szempontból érdekes lehet az állapotsor is (Application.Statusbar), ahova beírhatsz saját szövegeket:Application.Statusbar = "Mentés van folyamatban"
Majd a mentés befejezése után:Application.Statusbar = False
visszaadja az állapotsort a VBA-nak.
Üdv. -
Fferi50
Topikgazda
válasz
Lasersailing
#48871
üzenetére
Szia!
A Userform.Show -nak van egy Modal nevű paramétere, amely alapértelmezésben True, vagyis a form megállítja a programok futását.
Ha Userform.Show False módon hívod meg, akkor a programok futnak tovább, viszont neked kell gondoskodni a Form "eltüntetéséről" később a futás folyamán.
[Help]
Üdv. -
Fferi50
Topikgazda
Szia!
Pl.Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Intersect(Target, Range("A1:B8")) Is Nothing ThenTarget.Value = "akarmi"End IfEnd Sub
Ha a kiválasztott cella nem esik az A1 : B8 tartományba, beleírja a cellába a szöveget.
[Itt a helpje]
A target paraméter az a tartomány (egy vagy több cella), amely újonnan lett kiválasztva. A tartomány minden paraméterét vizsgálhatod az eseménykezelő makróban, sőt más cellák, tartományok, paraméterek függvényében alakíthatod a makró futását.
FONTOS: Ha cellák értékét változtatod vagy másik tartományt szeretnél Select v. Activate paranccsal elérni a makró közben, akkor az elején ki kell kapcsolnod az eseménykezelést az Application.EnableEvents=False sorral - a kilépés előtt pedig visszakapcsolni True paraméterrel.
Üdv. -
-
Fferi50
Topikgazda
válasz
sztanozs
#48774
üzenetére
Szia!
Nem egészen értem, hogy a fa_darabszámot miért 4-el kell osztani, hiszen negyedóra alatt 3 fára való lyukat tud kifúrni (5 percenként 1 lyuk).
Szerintem a helyes képlet 1 óra díja + KEREK.FEL(fa_darabszám/3,0)*negyedóra díja
Az én képletemből lemaradt a plusz 1 óra díja, azt hozzá kell még tenni.
Üdv. -
Fferi50
Topikgazda
válasz
tomi5244
#48769
üzenetére
Szia!
Egy kis megjegyzés előljáróban:
Ha egy fa fúrása 5 perc, akkor 1 órában 12 fát lehet számolni. Ezek szerint negyedóránként 3 fa fúrását lehet felszámolni.
Így szerintem elég azt megnézni, hogy a fa darabszám/12 maradéka mennyi, ehhez lehet rendelni a tört időre jutó árat.
Ehhez érdemes csinálni egy kis táblázatot, amiben majd FKERES függvénnyel lehet keresni.
Az óradíj az E1 cellában van, a táblázatot a H1:I5 tartományban találod.
A B oszlopban van a fa darabszám.
C1 cella képlete:=INT($B1/12)*$E$1+FKERES(MARADÉK($B1;12);$H$1:$I$5;2)
A képlet alapján minden megkezdett negyedórára számít díjat - tehát pl. 10 fára már egész óra díja kerül, mert több mint háromnegyed óra a fúrás ideje.
Remélem, valami ilyesmire gondoltál.
Üdv. -
Fferi50
Topikgazda
válasz
jerry311
#48722
üzenetére
Szia!
"VLOOKUP szívesen behúzza, de ahhoz nyitva kellene lennie mind a 30 fájlnak."
Szerintem nem kell nyitva lenniük, anélkül is lehet frissíteni - ebben az esetben minden hivatkozásban az elérési utat is tartalmazó teljes fájlnevet kell használni.
Próbáld ki a következőt: Egy nyitott fájl mellett megcsinálod a képleteket. Ezután bezárod a forrás fájlt. Ekkor a képletekben megjelenik a teljes fájlnév.
Ennek alapján állítod össze a további képleteket - általában elég az első sort és utána lehúzható.
Üdv. -
Fferi50
Topikgazda
válasz
underdark
#48689
üzenetére
Szia!
C2 képlete lehetne pl.=HA(ELTOLÁS(B1;DARAB2(A:A);0;1;1)=1;1;"X")
Ezzel mindig a B oszlop utolsó cellájának értékét nézi meg. Akkor 1 az eredmény, ha abban a cellában 1 az érték, egyébként X.
Ehhez persze soronként kell azA : Boszlopot lefelé húzni, figyelve az eredményt.
Ez a képlet megmutatja, a B oszlop hanyadik cellájában van az első 1 érték a 2.sor után:=HOL.VAN(1;ELTOLÁS(B2;1;0;DARAB2(A:A);1);0)+2
Üdv. -
Fferi50
Topikgazda
válasz
Csabex
#48678
üzenetére
Szia!
Ha szövegformátumú a cella, akkor a keresés 5, csere 7, -re.
Ha szám formátum, akkor másként lehet:
Ha pl. 7-re szeretnéd cserélni, akkor egy segédcellába beírod 2, majd ezen a cellán Ctrl+C (azaz másolás), utána a kijelölt tartományon irányított beillesztés - művelet: összeadás. Ezután a segédcellát törölheted.
Üdv. -
Fferi50
Topikgazda
válasz
betyarr
#48662
üzenetére
Szia!
Az ismétlődések eltávolítása annyi oszlopot kezel, amennyit kijelölsz: az eltávolításhoz minden oszlopban azonos adatnak kell lennie.
Egy segédoszlopba átírod a szűrni kívánt értékeket. Ezután ismétlődések eltávolítása, majd a Darabteli függvénnyel megnézed, melyikből hány van az eredeti tartományban.
Üdv. -
Fferi50
Topikgazda
válasz
Dilikutya
#48630
üzenetére
Szia!
Még mindig, szeretném legalább képben látni, hogy mit szeretnél. Milyen a forrás és mi a cél?
Egyébként szerintem is valamilyen kereső függvénnyel megoldható egy jelölés, hogy kell-e a másik munkalapra vagy nem és utána másolás szűrővel.
Üdv.
Ps. Egyenlőre nem tudom elképzelni munkalapon sajnos, amit leírtál. -
Fferi50
Topikgazda
-
Fferi50
Topikgazda
válasz
zeeland66
#48599
üzenetére
Szia!
A másik munkalapon is annyival kell lejjebb menni a másolással, amennyivel az elsőn tetted.
Ha Munka1!A1:X15 területet másoltad Munka1!A30 cellához, akkor a Munka2 munkalapon is 29 cellával lentebbre másold az adatokat. Így maradnak megfelelőek a hivatkozások.
Üdv. -
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. -
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 SubIf Target.Value = "" Then Cancel = True: Exit SubApplication.EnableEvents = Falsereszletezo Target.RowApplication.EnableEvents = TrueCancel = TrueEnd 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 soraEnd 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. -
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. -
Fferi50
Topikgazda
-
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 ThenIf 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. -
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 tenniDim cl As Range,szemely As Stringszemely = Application.UserNameSelect Case szemelyCase "Név1" 'a belépő windows neveszemely = "jóska" ' a belépő táblázat beli neveCase "Név2"szemely = "pista"'...felsorolod a további név lehetőségeketEnd 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ásaSet cl = Sheets("Munka1").Rows(6).Find(what:=szemely, LookIn:=xlValues, lookat:=xlWhole)If cl Is Nothing ThenMsgBox szemely & " nem szerepel a felhasználók között!", vbCriticalExit SubElseIf cl.Offset(-4, 0).Value < 0.7 ThenMsgBox szemely & " még csak " & cl.Offset(-4, 0).Text & " szabadságot használtál fel!"End IfEnd IfEnd 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.
-
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. -
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. -
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 SubApplication.EnableEvents = FalseIf Range("A1").Value < Range("B1").Value + Range("C1").Value ThenMsgBox "Hibás érték"End IfApplication.EnableEvents = TrueEnd SubÜdv.
-
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. -
Fferi50
Topikgazda
válasz
aviator
#48458
üzenetére
Szia!
A Pivot tábla és a belőle készült chart együtt mozog. Ha az egyiket változtatod, változik a másik is.
1. A kimutatásban a mezőlistát megnyitod. Ott látod, hogy az oszlopokban melyik mező szerepel. Azt kiveszed és így csak a Végösszeg marad.
2. A diagramon látszik az oszlop mező. Jobb egérgomb - mező eltávolítása.
Előtte:
Utána:
Üdv. -
Fferi50
Topikgazda
válasz
csferke
#48439
üzenetére
Szia!
Az If után használd az Application.InputBox metódust, ami ellenőrzi is, hogy szám van-e beírva.
[Itt találsz helpet a használatához.]
Üdv. -
Fferi50
Topikgazda
válasz
morgusz
#48436
üzenetére
Szia!
Íme:Dim ws As WorksheetFor Each ws In ActiveWorkbook.WorksheetsIf Left(ws.Name, 4) = "alap" ThenWith ws.Sort.SortFields.Clear.SortFields.Add2 Key:=Range("A1:AP1") _, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal.SetRange Range("A1:AP150").Header = xlYes.MatchCase = False.Orientation = xlLeftToRight.SortMethod = xlPinYin.ApplyEnd WithEnd IfNext
Az alap - pal kezdődő nevű munkalapokon végrehajtja műveleteket. Nem szükséges minden munkalapot Select-tel kiválasztani - (azt csak a makrórögzítő csinálja).
Üdv. -
Fferi50
Topikgazda
válasz
Lasersailing
#48430
üzenetére
Szia!
Ugyanabban a munkafüzetben egy menetben is lehet törölni a munkalapokat pl.:Sheets(Array("Munka2", "Munka3", "Munka5")).Delete
Nálam makróból nem kérdezgette, hogy törölhető-e.
Milyen Excel verziót használsz?
Üdv. -
Fferi50
Topikgazda
válasz
Lasersailing
#48428
üzenetére
Szia!
Szerintem ha azonnal a törlés után visszaállítod a figyelmeztetést, akkor a mentésnél fog várni egy user "akciót".
Próbáld ki, hogy csak a mentés után állítod vissza True - ra az értéket.
Üdv. -
-
Fferi50
Topikgazda
Szia!
Elvileg az Excel automatikus mentése ha be van kapcsolva, akkor az automatikus helyreállítási mappában érdemes keresgélni. (Megtalálod a beállítások - mentés fülön.)
Tanulság: megosztás előtt csinálni kell egy mentést elszeparálva a közös fájltól - másik néven, másik helyen. A megosztás megszüntetése előtt ugyanígy a közös fájllal.
Ha újra kellene játszani a történetet.Üdv.
-
Fferi50
Topikgazda
-
Fferi50
Topikgazda
válasz
Hege1234
#48368
üzenetére
Szia!
Egy kicsit bonyolultabb képlettel megoldható "csalás" nélkül.
A J és K oszlopokba beírtam a képleteket - azokat kell az I oszlop cellájában levő képletbe helyettesíteni. Azért értem külön, hogy lásd az eredményt. Ha behelyettesíted, akkor nem kell trükközni. Az I14 cellába beírtam a behelyettesített képletet.
Üdv. -
Fferi50
Topikgazda
-
Fferi50
Topikgazda
válasz
KaliJoe
#48340
üzenetére
Szia!
Valószínűleg nem azonos a keresett érték és a keresési táblázatban szereplő elemek típusa. Számot csak számban, szöveget csak szövegben tudnak a kereső függvények megtalálni.
A HAHIBA függvény pedig elnyomja a hibát.
Esetleg mutatnál rá konkrét példát, mert ehhez most nem elég jó a képzelőerőm.... (7vége közeleg
).
Üdv. -
Fferi50
Topikgazda
válasz
KaliJoe
#48335
üzenetére
Szia!
Lehet wildcard karaktereket használni, de alapvetően csak a kereső függvényekben.
Az ilyen típusú "osztályozást" az Fkeres függvénnyel egyszerű megcsinálni. Táblázatban felsorolod az életkor határokat és a hozzájuk tartozó kategóriákat.
Az FKERES függvény negyedik paramétere ilyenkor 1 vagy nem írod be. A táblázatban pedig emelkedő sorrendben sorolod fel a kategóriákat.
A példa HA függvényedben pedig a SZÖVEG.KERES függvényt használhatod:=HA(HIBÁS(SZÖVEG.KERES("F";"Férfi"));HAMIS;IGAZ)
Üdv. -
Fferi50
Topikgazda
válasz
Lasersailing
#48330
üzenetére
Szia!
Örülök, hogy tudtam segíteni.
Üdv. -
Fferi50
Topikgazda
válasz
Lasersailing
#48327
üzenetére
-
Fferi50
Topikgazda
válasz
Lasersailing
#48324
üzenetére
Szia!
Az a kérdés, a keresés milyen adatokból történik? Megpróbáltad az Excel Find funkcióját használni?
Másrészt a munkalap adatai behúzhatók memóriába (tömbbe) is, ahol minden művelet nagyságrendekkel gyorsabb, mint a munkalapról.
Tippeket igazán csak a konkrét feladat ismeretében lehet adni szerintem.
Ha gondolod, privátban írd meg egy mintával egyetemben.
Üdv.
Ps. Nem feltétlenül öröm a 100 % közeli proci használat. Excel számítások közben láthatod az állapotsoron a használatot. -
Fferi50
Topikgazda
válasz
Antonio
#48257
üzenetére
Szia!
Lehetséges, hogy a keresési értéked és a tartomány amiben keresel nem azonos formátumú!
Szöveg formátumú számot nem talál meg a kereső függvény számokat tartalmazó tartományban és fordítva. Tehát vagy mindkét helyen szöveg formátum legyen vagy mindkét helyen szám.
Ha nem lehet módosítani a formátumot, akkor a keresési értéket kell a kereséshez átalakítani a megfelelő függvénnyel számmá vagy szöveggé.
Üdv -
Fferi50
Topikgazda
válasz
sztanozs
#48250
üzenetére
Szia!
Mivel a Word Object Library referenciája nincs benne az Excel fájlban, ezért a Word dokumentum létrehozása után az abban a könyvtárban definiált Word specifikus objektumokat nem tudod elérni. Azokat neked kellene egyenként definiálni a dokumentum létrehozása után.
Feltételezhető azonban, hogy maga a könyvtár ott van a gépen, ebben az esetben makróból hozzá lehet adni a referenciákhoz.
A Word könyvtár általában ott van, ahol az Excel könyvtár is van. Az Excel könyvtár helyét megkapod a következőképpen:ActiveWorkbook.VBProject.References("Excel").FullPath
A Word Object Library fájl neve pedig: MSWORD.OLB
Ezt behelyettesítve az Excel fájl neve helyére, a referencia hozzáadása:ActiveWorkbook.VBProject.References.AddFromFile "Word teljes neve"
Ezután már használhatóak a Word objektumok.
Üdv. -
-
Új hozzászólás Aktív témák
- Samsung kuponkunyeráló
- Garmin topik
- Nintendo Switch 2
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- OnePlus 15 - van plusz energia
- Debrecen és környéke adok-veszek-beszélgetek
- Világ Ninjái és Kódfejtői, egyesüljetek!
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- Google Pixel topik
- Szerkesztett és makrofotók mobillal
- További aktív témák...
- Vírusirtó, Antivirus, VPN kulcsok GARANCIÁVAL!
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- PC Game Pass előfizetés
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- DDR5 8/ 16/ 32GB 4800-5600MHz UDIMM PC RAM, több db- számla, garancia
- Ultimate előfizetés akár 4714 Ft/hó áron! Azonnali, automatizált aktiválással, csak Nálam!
- HIBÁTLAN iPhone 15 Pro 128GB Blue Titanium-1 ÉV GARANCIA - Kártyafüggetlen, MS4692, 92% AKKSI
- MEGA Akció! Számla + garancia! Apple Macbook Pro 14 - Apple M3 Pro Chip!
- Honor Magic6 Pro 512GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

).
