-
IT café
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
-
Sasos
senior tag
válasz KaliJoe #24681 üzenetére
Ha a dátum formátumát cella formátummal adtad meg, de nem abban a formátumban írtad be (beírva 2014.12.01 átállítva cella formátum-->dátum-->xxxx-xx-xx), akkor a cella valódi tartalma a beírás szerinti formátumban lesz, így keresni is arra kell. Valószínűleg ezért nem talál semmit az FKERES, vagy a HOLVAN. Kattints bele az egyik cellába, amiben dátum van, és nézd meg a szerkesztőlécen milyen tartalmat jelenít meg hozzá:
-
slashing
senior tag
válasz KaliJoe #24684 üzenetére
nem látok semmit de itt egy példa:
=SZUMHATÖBB(B:B;A:A;">"&DÁTUM(2014;2;1);A:A;"<"&DÁTUM(2014;3;1))
A oszlopban a dátumok B-ben sima értékek: a dátum függvényen bellül lehet cellahivatkozást is használni és akkor nem kell kézzel írogatni semmit viszont akkor úgy kell megadni hogy Dátum(év();hónap();nap())
-
KaliJoe
csendes tag
válasz KaliJoe #24687 üzenetére
Kipróbáltam... Jónak tűnik..., de... még mindig nem tudom, hogyan adjam meg a DÁTUM függvényben, h tetszőleges év, tetszőleges hónap, elseje legyen.
Erre van ötlet?
Frazeológiám: Az ember nem kávéra, nem is kávéházra vágyik, az ember lelke barátra vágyik, a kávé csupán ürügy... :-) ;)
-
slashing
senior tag
válasz KaliJoe #24691 üzenetére
Hát elméletben van egy jó megoldásom csak tudja a fene miért nem számol jól februártól, pedig képletkiértékelő szerint működnie kéne:
bedobom a közösbe hátha megtalálja valaki a hibát benne
letöltésAz elmélet a működésről:
B oszlop aktuális sor dátuma alapján megkeresem hol.van függvénnyel az első és utolsó dátumot ami ahhoz a hónaphoz tartozik amelyik sorban éppen vagyunk cím függvénnyel kapunk egy szöveges cellahivatkozást(hónap kezdés és hónap vége) amit indirekttel építunk be a szumha függvénybe hogy értelmezni tudja a szöveges cellatartományt. aztán szerintem itt jön a bibi a kritérium jobb híján azt adatam meg nekki hogy az aktuális sor dátumának első napjánál legyen nagyobb vagy egyenlő....
[ Szerkesztve ]
-
slashing
senior tag
-
KaliJoe
csendes tag
válasz KaliJoe #24706 üzenetére
A kész és teljes megoldás, amely bármelyik sorban, bármennyi adatsor esetén alkalmazható:
=HA(VAGY(ÜRES(A5);B4=HÓNAP.UTOLSÓ.NAP(B4;0));SZUMHATÖBB(INDIREKT(CÍM(4;8;4;1);IGAZ):INDIREKT(CÍM(SOR(B4);8;4;1);IGAZ);INDIREKT(CÍM(4;2;4;1);IGAZ):INDIREKT(CÍM(SOR(B4);2;4;1);IGAZ);">=" & DÁTUM(ÉV(B4);HÓNAP(B4);1);INDIREKT(CÍM(4;2;4;1);IGAZ):INDIREKT(CÍM(SOR(B4);2;4;1);IGAZ);"<=" & DÁTUM(ÉV(B4);HÓNAP(B4);NAP(B4)));"")
Köszönöm a segítségeteket... Nélkületek nem ment volna!
Kellemes Karácsonyi Ünnepeket kívánok!
Frazeológiám: Az ember nem kávéra, nem is kávéházra vágyik, az ember lelke barátra vágyik, a kávé csupán ürügy... :-) ;)
-
slashing
senior tag
válasz KaliJoe #24710 üzenetére
sajnos nem tudom kipróbálni mert nekem csak két oszlopból áll az egész táblám és nem is tudom hogy neked ez a képlet melyik oszlopba kerül. De így ránézésre elképzelhetőnek tartom hogy lehetne ezt egyszerűsíteni azzal hogy kiveszed a sor függvényt amivel ha jól gondolom egy eltolást csinálsz... mert szerintem a szumhatöbb függvénynél nem áll fenn az a hiba amibe én beleestem a sima szumha függvénynél hogy nem ott indult az összegtartományom mint a kritériumtartományom....
üdv.
-
Delila_1
Topikgazda
válasz KaliJoe #24710 üzenetére
Egyszerűbben is kiszámolhatod a havi összes órát.
=HA(B4=HÓNAP.UTOLSÓ.NAP(B4;0);SZUM(INDIREKT("H" & HOL.VAN(DÁTUM(ÉV(B4);HÓNAP(B4);1);B:B;0) & ":H" & HOL.VAN(HÓNAP.UTOLSÓ.NAP(B4;0);B:B;0)));"")
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
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 ]
-
slashing
senior tag
válasz KaliJoe #24739 üzenetére
Fferi50 megelőzőtt , de azért nm törlöm a hsz.-t.
Ha pontos egyezést keresünk akkor mindegy milyen sorrendben van mert csak azt az egyet találhatja meg amire kíváncsiak vagyunk ha ugyan az a képlet egynél több pontos egyezésre is igaz akkor meg már nem is érdemes azt a kereső függvényt használni...
szerintem téged megzavart az hogy az fkeresnél a pontos egyezést nem az IGAZ logika adja hanem a HAMIS. Tehet ha igaz a keresési tartomány tehát közelítő keresést végzünk akkor sorban kell lennie.
[ Szerkesztve ]
-
slashing
senior tag
válasz KaliJoe #24757 üzenetére
Most nem a kukacoskodás miatt de mi a különbség ha egy ablakon bellül kettéosztod és a jobb oldala mindig ugyan azt mutatja és aközött hogy két külön ablakban nézed ugyanazt és a jobb oldala mindig ugyan az? Illetve ha egy ablakban valahogy mégis kettéosztod és fix a jobb oldala de már nincs szükséged rá akkor ugyan úgy kattingatnod(és amúgy is kattingatnod kell) kell szóval szerintem simán jó megoldás a két ablak.
Én elég sokszor alkalmazom sőt néha 3 ablakot nézek, jobb oldalon kettőt meg bal oldalon egyet. Igaz 1920x1200-as felbontásban és 24-es monitoron nézem ami megkönnyíti azért a munkát és a +120pixel plusz az baromi sokat tud számítani, igaz filmnézésnél meg hátrány mert a 16:9-nél is van fekete sáv nem csak a 2.39:1-nél
Nem tartom kizártnak hogy van valamilyen elvetemült megoldás rá de, hogy őszinte legyek még ötlet szintjén sem merült fel bennem, sosem. Kézenfekvő volt hogy két ablakot használok. Az mondjuk már nekem is eszembe jutott hogy milyen jó lenne egy Tab-os megoldás az excel-ben kvázi úgy mint a böngészőkben...
[ Szerkesztve ]
-
felora:)
tag
válasz KaliJoe #24767 üzenetére
Szia!
Eddig fasza, nagyon jóóó, eljutottam addig, hogy meg van a legördülő menüm, az + pont, hogy címet is adhattam neki, de még annyi kéne, hogy pl. ha kiválasztom a legördülő listából, hogy "IGEN" akkor generálja be, az "A16"-os cellába, hogy pl. "OKÉ", ha a "NEM"-et választom ki, akkor azt generálja be, hogy: "NEM OKÉ". azt hogyan?
Ja! még annyit, hogy minden cellának majd a szöveget az "A16"-osba kell begenerálnia, szépen egymás után.
[ Szerkesztve ]
-
-
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
válasz KaliJoe #24978 üzenetére
Szia!
A userformon nem hatásos az application.enableevent=false.
Ott csak trükkösen lehet megkerülni az eseménylefutást. Egy form szintű változót kinevezel eseményvezérlőnek, ha ez true, akkor fusson le az esemény, ha false akkor ne fusson le. Minde eseménykezelésnél ennek a változónak a vizsgálatával kezded a projektet.DE: Javaslom még mindig, hogy Textbox_KeyDown eseményt nézd meg, itt a keycode megmondja, hogy melyik billentyűt nyomták le.
A backspace keycodja a vbKeyBack vba konstans,ami numerikusan 8.A billentyűk Keycode megfeleltetését a help Keycode Constants cimszava alatt találod.
Private Sub object_KeyDown( ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As fmShiftState)
if KeyCode=vbKeyBack then
ide írod amit szeretnél csinálni ha BackSpace-t nyomtak.
endif
KeyCode=0
end subAz utolsó sor, a KeyCode=0 a lényeg, ezzel eliminálod a billentyű leütést! Minden olyan esetben kell, ha nem akarod, hogy a leütött billentyű hatása érvényesüljön!
(Pl. te beírod a textboxba a leütött betűt, vagy lecsökkented a hosszát, akkor már nem szabad, hogy a rendszer is megcsinálja ugyanazt!)
Ha meg kell, hogy csinálja a rendszer, akkor ezt a sort elhagyod.Hidd el, ez a legegyszerűbb megoldás a billentyűzet figyelésre. A change az macerás. Rengeteg hasznos info van a Help-ben. (A szokásostól eltérően.)
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz KaliJoe #24980 üzenetére
Szia!
Milyen excel verziód van?
Igen, sajnos a KeyAscii nem azonos a KeyCode - értékével - ezt valahol írtam is az előbb.Ez alapján viszont:
"
KeyPress EventOccurs when the user presses an ANSI key.
Syntax
Private Sub object_KeyPress( ByVal KeyANSI As MSForms.ReturnInteger)
The KeyPress event syntax has these parts:
Part Description
object Required. A valid object.
KeyANSI Required. An integer value that represents a standard numeric ANSI key code.Remarks
The KeyPress event occurs when the user presses a key that produces a typeable character (an ANSI key) on a running form while the form or a control on it has the focus. The event can occur either before or after the key is released. This event also occurs if you send an ANSI keystroke to a form or control using either the SendKeys action in a macro or the SendKeys Statement in Visual Basic.
A KeyPress event can occur when any of the following keys are pressed:
Any printable keyboard character.
CTRL combined with a character from the standard alphabet.
CTRL combined with any special character.
BACKSPACE.
ESC.A KeyPress event does not occur under the following conditions:
Pressing TAB.
Pressing ENTER.
Pressing an arrow key.
When a keystroke causes the focus to move from one control to another.Note
BACKSPACE is part of the ANSI character set, but DELETE is not. Deleting a character in a control using BACKSPACE causes a KeyPress event; deleting a character using DELETE doesn't.When a user holds down a key that produces an ANSI keycode, the KeyDown and KeyPress events alternate repeatedly. When the user releases the key, the KeyUp event occurs. The form or control with the focus receives all keystrokes. A form can have the focus only if it has no controls, or if all its visible controls are disabled.
The default action for the KeyPress event is to process the event code that corresponds to the key that was pressed. KeyANSI indicates the ANSI character that corresponds to the pressed key or key combination. The KeyPress event interprets the uppercase and lowercase of each character as separate key codes and, therefore, as two separate characters.
To respond to the physical state of the keyboard, or to handle keystrokes not recognized by the KeyPress event, such as function keys, navigation keys, and any combinations of these with keyboard modifiers (ALT, SHIFT, or CTRL), use the KeyDown and KeyUp event procedures.
"
Lehetséges, hogy mégis a KeyPress eseményhez kell menekülnöd, ezt tudja a backspace-t érzékelni.
A Backspace ansi kódja is 8.Próbáld ezt az eseményt úgy, ahogyan az előbb a másikra írtam.
Üdv.
Ps:A change esemény kezelésbe most nem mennék bele, mert nincs annyi időm jelenleg. De ígérem, ha egy kicsit szabadulok - visszatérek még rá.
-
Fferi50
őstag
válasz KaliJoe #24982 üzenetére
Szia!
Nagyjából úgy kell kezelned, mint az application.enableevents kapcsolót. Hiszen azt is ki-be kapcsolgatod.
A userformban definiálsz az első sorok előtt pl. egy changetextbox_name boolean változót.
A textbox_name_change eseményben pedig először azt nézed meg, hogy ez true. Ha igen, mehet tovább, ha nem, akkor kilép.
Amikor olyan utasítást adsz ki, amelyik megváltoztatja a textbox értékét, akkor eldöntöd, hogy fusson-e le a chage esemény és az utasítás előtt megváltoztatod a changetextbox_name értékét ennek megfelelően.
De ugyanez igaz akkor is, ha magában az eseménykezelésben változtatod a textbox értékét, mert az képes rekurzívan meghívni magát... Tehát a változtatás előtt change... false. Ezáltal nem fog tovább menni.
Az eljárás végén pedig chage...true és akkor a következő változtatásnál belemegy az eljárásba.Remélem érthető.
Üdv.
-
-
Delila_1
Topikgazda
válasz KaliJoe #25120 üzenetére
Rögzíts egy makrót, ami csak annyit tartalmazzon, hogy behívod a nyomtatási képet. Onnan vedd a sort.
Dim wsh_Űrlap As Worksheet
Set wsh_Űrlap = Worksheets("Űrlap Nyomtatáshoz")
[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
Új hozzászólás Aktív témák
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Adobe Creative Cloud - 2024. 04. 05 - 2025. 04. 05-ig
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! LEGOLCSÓBB! Automatikus 0-24
- PC JÁTÉKOK (OLCSÓ STEAM, EA , UPLAY KULCSOK ÉS SOKMINDEN MÁS IS 100% GARANCIA )
- Új, bontatlan World of Warcraft gyűjtői kiadások
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs