-
PROHARDVER!
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
-
the radish
senior tag
Sziasztok!
O1 cella képlete:
=HAHIBA(INDEX(C$1:C$20000;$N1);"")
Szeretném makróval helyettesíteni az "O" oszlop meghatározott, pl. a már bevált "usor" elnevezésű tartományára, hogy hogy ne kelljen "végigszórni" képlettel.
Célszerű így, vagy csináljak egy érték másolás önmagára rutint? -
Lasersailing
senior tag
Sziasztok,
office 365 VBA-hoz kapcsolódó kérdésem lenne:
probléma 1:
Van egy userform-om, amin található egy textbox típusú mező, ahova szeretnék adatokat beszkennelni. Odáig eljutottam, hogy beszkennelem az adatot.
(A szkennelés egy notepadban ellenőrizve tartalmazza az <enter> karaktert is (vagy legalábbis a soremelést biztos)). VBA userformon elvileg el kellene ugrania egy következő mezőre, amin a tabstop engedélyezve van. Ezt követően elvileg el kellene kezdje az alábbi programrészletet:Private Sub szken_AfterUpdate()
De nem kezdi el, csak ha rákattintok egy másik mezőre a szkennelés után.Ami az igazán furcsa, hogy egy másik programrészletnél meg működik ez gond nélkül, de nem látok semmilyen különbséget ami okozhatná ezt.
probléma 2:
Próbáltam megkerüléssel kezelni a problémát:
Csináltam egy üres textbox-ot, csak azért, hogy ott átállítsam a "focus"-t a megfelelő cellára, de erre az alábbi hibát dobja:Valamelyikben tudtok segíteni, hogy mi lehet a gond?
Köszönöm előre is!
-
Fferi50
Topikgazda
válasz
the radish #49995 üzenetére
Szia!
A létrehozás dátumát a rendszer hozza létre, ahhoz nem lehet "normálisan" hozzányúlni szerintem.
Üdv. -
the radish
senior tag
válasz
the radish #49994 üzenetére
Az megint kimaradt az infóból, hogy az excel hozza létre a txt fájlt. (Hátha lényeges)
-
Delila_1
veterán
válasz
the radish #49992 üzenetére
Set adatfile = FSO.GetFile("útvonal\fájlnév kiterjesztéssel")
A létrehozás dátumát az adatfile.DateCreated adja meg. -
Fferi50
Topikgazda
válasz
the radish #49990 üzenetére
Szia!
Mire gondolsz?
A fájl nevébe beleteheted szöveges formában a létrehozás dátumát és időpontját is.
Üdv. -
the radish
senior tag
Sziasztok!
Szöveges dokumentum mentése:
ActiveWorkbook.SaveAs Filename:=utvonal$ & nev$ & ".txt", FileFormat:=xlTextMSDOS, _
Van rá mód, hogy az új fájlnak egyedi dátumot (létrehozás) adjunk?
Előre is köszönöm!
-
Delila_1
veterán
válasz
the radish #49988 üzenetére
Szívesen.
-
Delila_1
veterán
válasz
the radish #49986 üzenetére
Valamit elronthattál, nálam terv szerint működik.
Nem hívja meg esetleg a Makro1 a Makro2-t? -
Delila_1
veterán
válasz
the radish #49984 üzenetére
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$A$1" Then Call Makro1
If Target.Address = "$A$2" Then Call Makro2
Application.EnableEvents = True
End Sub -
the radish
senior tag
Sziasztok!
Egy kissé belekeveredtem az alábbi folyamat kivitelezésébe:
Makró1: "A1" cella módosítása esetén fut le, többek között törli az A2 cella értékét is.
Makró2: "A2" cella módosítása esetén fut le
Hogy tudom azt kivitelezni, hogy az A1 cella módosítása esetén (és így az A2 cella törlése esetén) ne fusson le a Makró2, csak ha az A2 cellát a Makró1 futását követően módosítom??Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Call Makró1
End If
If Target.Address = "$A$2" Then
Call Makró2
End If
End Sub
Előre is köszönöm! -
Fferi50
Topikgazda
válasz
#86883328 #49982 üzenetére
Szia!
Szerintem épp fordítva van!
Egyébként a képleted sem megfelelő. A helyes képlet:
(A1/B1-1)*100, mivel a százalékos változást szeretnéd megtudni.
(110/100-1)*100=10%
(100/110-1)*100=9,09%
Magyarázat: Nagyobb alapnak nagyobb az 1 %-a is! 100 1%-a 1 míg 110 1%-a 1,1
Ezért kevesebb ugyanaz a 10 egység %-ban ha 110-hez viszonyítod, mintha 100-hoz viszonyítanád.
(Gondolj az ÁFA % -ra: a nettó értékre számolva 27 %, de a bruttóból csak 21,26 %!, mivel 127 21,26% -a lesz 27, így 127-27=100)
Üdv. -
#86883328
törölt tag
Sziasztok!
Energiafogyasztás csökkenést szeretnék kiszámolni. A múlt évi adatok és az ezévi adatok alapján havi lebontásban.
A két képletem a következő attól függ, hogy a cellaformázás szám vagy százalék:
=1-(A1/B1) ha százalékos a cella és A1 az idei fogyasztás B1 a tavalyi
=100-(100*A1/B1) ahol A1 a tavalyi B1 az idei.
Ezt két hete készítettem de már nem értem, hogy ha tavaly 110 egység volt a fogyasztás idén 100 akkor kijön, hogy mínusz 10 százalékos volt a csökkenés, DE ha fordított a helyzet tehát tavaly volt 100 és idén 110 vagyis nem sikerült csökkenteni a fogyasztást hanem növelni akkor miért plusz 9 százalékos növekedést ír 10 százalék helyett? -
Magnat
veterán
válasz
Fferi50 #49978 üzenetére
Igen, mondjuk a Text amiatt is necces, h ott mindig azt kapod ami éppen ki van írva, szóval ha össze van nyomva a cella és nem fér ki a valós tartalom, akkor a textben sem lesz benne (meg elég lassú is)... a Value2 annyiban is jobb mint a Value (ez annak a folyománya amit írtál), h az általad is említett currency és date típusoknál adatvesztést is okozhat tizedesek tekintetében, illetve kicsit lassabb is a Value2-nél: [link]
-
Fferi50
Topikgazda
válasz
Magnat #49977 üzenetére
Szia!
A Value2 - höz fűzött magyarázat:
"The only difference between this property and the Value property is that the Value2 property doesn't use the Currency and Date data types. You can return values formatted with these data types as floating-point numbers by using the Double data type."
A Value mindig a cellában levő adattípusnak felel meg a Value2 pedig Variant típusú.
Ha viszont a Cellában látható formában szeretnénk adatot kapni, akkor a Text tulajdonságot kell használni - persze ilyenkor String lesz a megkapott érték.
A Value az alapértelmezett tulajdonsága a Range-nek, így elvileg nem kell kiírni, más kérdés, hogy előfordulhat emiatt hibás értékadás, én nem sajnálom azt a pár betűt.
Üdv. -
Fferi50
Topikgazda
válasz
istvankeresz #49974 üzenetére
Szia!
"az első igaz feltételhez kapcsolódó értéket másolja át és nem a második körben igaz feltételhez kapcsolódóét."
Természetesen, hiszen fixen megadtad, hogy mely cellákból másolja át az értékeket:"ThisWorkbook.Sheets(ws.Name).Range("A2") stb"
Helyesen szerintem:ThisWorkbook.Sheets(ws.Name).Range("A" & cell.Row").Value
Megjegyzés: én kiírnám a Value-t mindenhova, mert bár alapértelmezett, adódhat olyan eset, amikor nem egyértelmű, hogy cella értékére van szükség vagy magára a cellára.
Üdv. -
istvankeresz
aktív tag
Üdv!
Tesztelem az alábbi kódrészletet, de ha a feltétel a ciklusban másodszor is igaz, akkor az első igaz feltételhez kapcsolódó értéket másolja át és nem a második körben igaz feltételhez kapcsolódóét. Variálgattam, de nem jutottam előre, így a "rosszul" működőt másolom be ide. Esetleg ötlet valakinek?
lr = Sheets(ComboBox5.Value).Range("E" & Rows.Count).End(xlUp).Row + 1
For Each ws In ThisWorkbook.Worksheets
For Each cell In ThisWorkbook.Sheets(ws.Name).Range("K2:K200")
If cell.Value Like "2023.01*" Then
ActiveWorkbook.Sheets(ComboBox5.Value).Range("B" & lr) = ThisWorkbook.Sheets(ws.Name).Range("A2")
ActiveWorkbook.Sheets(ComboBox5.Value).Range("C" & lr) = ThisWorkbook.Sheets(ws.Name).Range("B2")
ActiveWorkbook.Sheets(ComboBox5.Value).Range("D" & lr) = ThisWorkbook.Sheets(ws.Name).Range("M2")
ActiveWorkbook.Sheets(ComboBox5.Value).Range("F" & lr) = ThisWorkbook.Sheets(ws.Name).Range("L2")
ActiveWorkbook.Sheets(ComboBox5.Value).Range("G" & lr) = ThisWorkbook.Sheets(ws.Name).Range("N2")
ActiveWorkbook.Sheets(ComboBox5.Value).Range("H" & lr) = ThisWorkbook.Sheets(ws.Name).Range("O2")
ActiveWorkbook.Sheets(ComboBox5.Value).Range("I" & lr) = ThisWorkbook.Sheets(ws.Name).Range("P2")
ActiveWorkbook.Sheets(ComboBox5.Value).Range("E" & lr) = cell.Value: lr = lr + 1
End If
Next cell
Next ws
-
Delila_1
veterán
válasz
youngboy #49970 üzenetére
Túl nagy a tartomány, amiben keresel. A 2007-es verziótól kezdve bő 1 millió sorról van szó.
A helyedben átalakítanám a fájl1-ben a tartományt táblázattá, és ezen belül adnék nevet a kérdéses oszlopnak, a fejléc kivételével. Ha például a táblázat az
A1:G1235
tartományt fedi le, és az A oszlopban keresel, azA2:A1235
-nek adnám a nevet.
A táblázat növekedése vagy csökkenése automatikusan módosítja az elnevezett tartomány méretét. -
youngboy
senior tag
Sziasztok!
Van egy nagyon érdekes problémám, amit megpróbálok leírni. Remélem sikerül
Van egy fájl. Nevezzük fájl1-nek. Ebben oszlop (tartomány) elnevezve. Legyen Oszlop1.
Másik fájlba szeretnék (Fájl2) bekeresni értéket a Fájl1-ből. Több függnynél is teljesen összeomlik az excel és bezárul, ha a Fájl1 - Oszlop1 nevő tartományára hivatkozom a Fájl2-ben az excel függvény beszúró ablakában.
függvények, amikre ez igaz: FVERES, XKERES, HOL.VAN, XHOL.VANEsetek, amikor ez a probléma nem jön elő:
- ha ugyanezt csinálom, csak Fájl1-n belül. Nem egy másik fájlból
- ha kézzel írom be a függvényt és nem az excel függvény beszúra alkalmazásában
- ha az oszlopnak nem adok nevet
- ha egy másik fájlban próbálok hasonló körülményt előálltani, mint Fájl1. (Kevesebb adat.)
- ha elkezdem a lapokat, formázásokat törölni. (Ezt szakaszosan megtéve és újra és újra próbálkozva eltérő eredményket kapok). Nem határozható meg egyértelműen.Találkozozz már valaki ilyennel?
Van bárkinek ötlete, hogy mi lehet ez? -
Monalina
friss újonc
Sziasztok! Nem tudom, hogy tudnátok-e segíteni. Egyik napról a másikra nem tudom görgetni az egyik excel munkafüzetet. Több kolléganővel használjuk közösen, és ma reggel bekapcsolt szűrővel találtam a munkafüzetet. Kivettem, de felugrik az egyes sorra, és csak annyit látok az excel táblából, amennyi a képernyő aljáig ér. A másik munkafüzetben tudok dolgozni. Aki nagyon otthon van az excelben tudna nekem segíteni? Megkértem az egyik kolléganőt, hogy nyissa meg, és amíg belépett állapotban van, én is megnyitottam és nem küld üzenetet olvasásról stb, pedig eddig így volt. Illetve ő kivette a szűrőt, de nálam továbbra is látszik. Teljesen olyan, mintha valaki elállított volna valamit, vagy bekapcsolt volna valami zárolást, nem tudom. Home officeban vagyok, elég nehézkes a kommunikáció, de addig is amíg válaszolnak megesz az ideg... legyetek szívesek valaki mondjon valamit... Köszi szépen!
-
Fferi50
Topikgazda
Szia!
Egy megoldási lehetőség:
A B2 cella képlete:=HA(DARABHATÖBB($A$2:A2;INDEX($E$1:$F$4;HOL.VAN($A2;$E$1:$E$4;0);1);$B$1:B1;"X")<INDEX($E$1:$F$4;HOL.VAN($A2;$E$1:$E$4;0);2);"X";"")
Ezt igazítsd az adataidnak megfelelően. Kérlek figyelj a $-okra a címzésben.
A képlet megvizsgálja, hogy az adott településen az addigi X-ek száma elérte-e a kívánt értéket, ha igen, akkor nem tesz tovább X-et. -
oke
senior tag
Abban kérném a segítségetek, hogy van-e arra egyszerű megoldás, hogy egy kimutatás alapján egy-egy tételhez tartozó darabszámból egy mellette megadott darabszámú (cella értéke alapján) sor kijelölésre kerüljön az analitikus listából, mindegy hogy milyen módon, csak utána szűrhető legyen.
Példa, de a valós táblában kb 40 tétel van. Az ADATOK1 lenne a mennyiség, amiből ki kellene jelölni a C oszlopban megadott számú sorokat az analitikát tartalmazó fülön.
Kimutatás:
Ez lenne a szükséges eredmény az analitikus fülön (Munka1), itt most sárgával jelöltem ki az adott számú sorokat, de lehet az utolsó akár a d oszlopba egy X jelölés is:
Köszönöm!
-
Fferi50
Topikgazda
Szia!
Próbáld meg ezt a képletet:=HA(BAL(A2;2)="06";"+36"&KÖZÉP(A2;3;120);HA(BAL(A2;2)="36";"+"&A2;"+36"&A2))
Ha 06, akkor +36-ra változtatja, ha 36 az eleje akkor csak hozzáteszi a + jelet, ha egyik sem, akkor +36-ot tesz a szám elé.
Természetesen másik oszlopban kell a képletet használni.
Üdv. -
mckay
aktív tag
-
mckay
aktív tag
Sziasztok!
Van valami trükkje annak, hogy a 'keresés és csere' paranccsal (tehát nem képlet írásával) be lehessen szúrni + jelet?
Nekem valahogy nem jön össze, és feltételezem, hogy a + jelet nem komálja alapból ez a beépített parancs.Arról van szó, hogy telefonszámokat kéne javítanom.
Ilyenek vannak a kapott táblában:
06301234567
36201234567
stb.
És ilyent kellene előállítanom:
+36301234567
+36201234567Mit gondoltok, hogyan kellene nekilátnom?
Mégiscsak képletet kéne írnom?Nagyon köszönöm a segítséget, előre is!!!
-
Fferi50
Topikgazda
válasz
istvankeresz #49957 üzenetére
Szia!
Vannak nem látható karakterek az adott oszlop egy cellájában. Megnézheted hol található, ha a munkalapon állva F5 majd irányított - utolsó cella.
A tényleges adattartalomtól lefelé ki kell törölni az összes sort/oszlopot, akkor áll helyre.
Ha folyamatos az adatok beírása az oszlopban - vagyis nincs üres cella az adatok között, akkor használható a Range("E1").End(xlDown).Row +1 is az első üres cella meghatározására. Figyelj arra, csak akkor használható a fenti forma ha az oszlop első 2 cellájában van érték, különben hibát fog jelezni, mert a munkalap utolsó során túl akar lépni.
Amíg nincs adat az első két cellában, akkor direktben meg kell adni az 1. ill. 2. sort.
Üdv. -
istvankeresz
aktív tag
válasz
istvankeresz #49956 üzenetére
Bocs a sok hozzászólásért. Egy restart megoldotta.
Szerk.:
Azaz mégsem. Második futtatásra az lr már 109-es sorral kezdte. Pedig a 4-es sorral kellett volna folytatnia az E oszlopban, mivel a Az E1-től E3-ig másolt be értéket. -
istvankeresz
aktív tag
válasz
istvankeresz #49955 üzenetére
Müködik, viszont az lr egy nagyon nagy értéket kap, így a 1010185 sornál kezdi a beírást. Ez mért lehet? Honnan vesz egy ekkora értéket?
Így néz ki most:
Dim cell As Range
Dim ws As Worksheet
Dim lr As Long
lr = Sheets(6).Range("E" & Rows.Count).End(xlUp).Row + 1
For Each ws In ThisWorkbook.Worksheets
For Each cell In Sheets(ws.Name).Range("K2:K6")
If cell.Value Like "2022.01*" Then
Sheets(6).Range("E" & lr) = cell.Value: lr = lr + 1
MsgBox (ws.Name & " " & cell.Value & " " & lr)
End If
' MsgBox (ws.Name & " " & cell.Value)
Next cell
Next ws
-
fjns
lelkes újonc
válasz
Onderon #49950 üzenetére
Szia, az biztos, értelmezés kérdése, hogy megszületik-e számodra a megfelelő képlet.
Az eddig leírtak jelentése számomra: a túlóra első órájára a napibér 15%-a jár, a második órára szintén, a harmadik és negyedik órára 17,5%-17,5%, végül az ötödik és hatodik órára a napidíj 20-20 százaléka a túlóra összege. Minden órának a díját 4 részletben adják a teljes és a megkezdett 15 percekért. Ebben kivételes az első óra, ahol az első 15 percben semmi nem jár, csak a második 15 percben adják az első 15 percre járó összeget is.
Ehhez az értelmezéshez tartozik a következő képlet:
=HA(A1/IDŐ(0;15;0)<=1;0;MIN(8;KEREK.FEL(A1/IDŐ(0;15;0);0))*B1*0,0375+MIN(8;MAX(0;KEREK.FEL(A1/IDŐ(0;15;0);0)-8))*B1*0,04375+MIN(8;MAX(0;KEREK.FEL(A1/IDŐ(0;15;0);0)-16))*B1*0,05)
Kérdés még, hogy mi történik a hetedik órától kezdve. Az előző képlet nem számol rá semmit, csak 6 órát vesz figyelembe a túlórából. Ha ugyanúgy számolódik a 6 óra után az esetleges többi idő, mint az ötödik és a hatodik óra, akkor így módosul a képlet:
=HA(A1/IDŐ(0;15;0)<=1;0;MIN(8;KEREK.FEL(A1/IDŐ(0;15;0);0))*B1*0,0375+MIN(8;MAX(0;KEREK.FEL(A1/IDŐ(0;15;0);0)-8))*B1*0,04375+MAX(0;KEREK.FEL(A1/IDŐ(0;15;0);0)-16)*B1*0,05) -
lappy
őstag
válasz
Onderon #49950 üzenetére
=HA(KEREK.LE(A1/IDŐ(0;15;0);0)<1;" ";HA(KEREK.LE(A1/IDŐ(0;15;0);0)<8;B1*0,01875*KEREK.LE(A1/IDŐ(0;15;0);0);HA(KEREK.LE(A1/IDŐ(0;15;0);0)<16;B1*0,175;HA(KEREK.LE(A1/IDŐ(0;15;0);0)<24;B1*0,2))))
Na az első részben megcsináltam az általam jónak gondolt elv alapján a számítást
A kodban a B1*0,01875 .. részt másolni es azt kell átalakítani -
lappy
őstag
válasz
Onderon #49950 üzenetére
A képletből kiveszed az = jelet és minden feltétel eggyel csökkenteni kell pl ahol 9 van oda 8 megy
De gondoltam hogy egy kicsit átalakítod es kipróbálod mi történik ha nem egyenlő nagyobb stb.
Amúgy a megfogalmazás is érdekes akkor hiszen 1-2 ora után jár 15% akkor eleg 1 órát dolgozni es kapom a zs-t
De most látom hogy teljesen más kell neked mint amit csináltam
Majd holnap vagy addigra vki megírja -
Onderon
senior tag
De, viszont 0:16-ra már járna túlóra, mert csak az első 15 perc "van ingyen", a te függvényeddel azonban 0:29-ig jár nulla, 0:30-ra pedig már a teljes túlóra jár, pedig a lépték 15 perces kellene legyen arányosan. Elnézést, azt hiszem nem fogalmaztam meg érthetően.
Szóval a túlóra emelkedik, de arányosan kapjuk, minden megkezdett 15 perc után, ahol a legelső 15 percért nem jár semmi, viszont a második 15 percért (15-30) már jár a túlóra 2/4-e, a harmadikért (30-45) jár a 3/4-e, majd 45-60-ig a 4/4-e és stb.
-
sonkuci
tag
sziasztok.
excel 2016ban van egy kimutatásom, hozzátartozó kördiagram és egy szeletelő.
miután beszúrtam a diagramot, megformáztam (semmi extra, adatfeliratok hol legyenek, félkövér, stb) viszont amikor használom a szeletelőt akkor elfelejt mindent.
így ha valamit kiválasztok a szeletelővel újra be kell állítanom hozzá újra a formázást.
ha stílusból választom ki valamelyik stílust, úgy mindig érvényes bármit választok a szeletelővel.
ha elmentem sablonként se jegyzi meg a formázást.
én vagyok a béna és van erre valami egyszerű megoldás, vagy minden alkalommal be kell ezt állítanom?köszi
-
Fferi50
Topikgazda
válasz
istvankeresz #49946 üzenetére
Szia!
Ezt a sort a for ciklus elé érdemes betenni a kezdő sor számának meghatározására. A másolás viszont akkor így néz ki:Sheets(6).Range("E" & lr) = cell.Value :lr=lr+1 ' másol majd növeli a sor számát.
Üdv. -
Fferi50
Topikgazda
Szia!
Próbáld meg a következőt:
Kijelölöd a beolvasandó adatokat az egyik munkalapon, majd Az Adatok - Adatok beolvasása és átalakítása csoportból a Táblázatból vagy tartományból menüpontot választva Power Query szerkesztővel létrehozod a kívánt lekérdezést.
Ugyanezt megcsinálod a másik 2 munkalapra is.
Ezután a 3 lekérdezést egyesítheted.
Üdv. -
istvankeresz
aktív tag
válasz
Fferi50 #49944 üzenetére
Szia!
Ez tökéletes. Viszont a kiolvasott cellákat szeretném másolni egymás alá egy másik munkalapra.
Ezt hova kell berakni, hogy jó legyen? Ha egyáltalán helyes.
lr = Sheets(6).Range("E" & Rows.Count).End(xlUp).Row + 1
Ebbe szeretném beletenni, úgy, hogy minden ciklus után ugorjon egy sort.
Dim cell As Range
Dim ws As Worksheet
Dim lr As Long
For Each ws In ThisWorkbook.Worksheets
For Each cell In Sheets(ws.Name).Range("K2:K6")
If cell.Value Like "1234.56*" Then
Sheets(6).Range("E10") = cell.Value
' MsgBox (ws.Name & " " & cell.Value)
End If
' MsgBox (ws.Name & " " & cell.Value)
Next cell
Next ws
End Sub
MsgBox-ok, csak ellenörzésnek vannak, hogy lássam, hogy a megfelelő értékekkel dolgozom.
Köszi!
-
Fferi50
Topikgazda
Szia!
"mögé szeretnék még írni valamit, ami mindig változik és egy adott cellában van."
Szerintem munkalapon ilyet nem lehet csinálni. Viszont az egyéni formázásban a számok elé - mögé írhatsz szöveget, amit utána formátum másolással át tudsz vinni bárhová.
Pl. 0,00utas formátum minden beírt szám után odaírja az utas szöveget. Tehát megcsinálod a kívánt egyéni formátumokat és azokat alkalmazod a megfelelő cellákra.
Üdv. -
Fferi50
Topikgazda
válasz
istvankeresz #49939 üzenetére
Szia!
Használhatod a Like operátort ebben az esetben:
Cells(1,1).Value Like "1234.56*" True értéket ad, ha a cella értéke a beírt karakter sorozattal kezdődik, ellenkező esetben False az érték.
Vigyázz, a számok összehasonlításánál is a Like operátor utáni résznek szövegnek kell lenni és nem tizedespont hanem a magyar szabályok szerint tizedesvessző kell bele!
Üdv. -
spe88
senior tag
Be lehet állítani Excelben, hogy egy szám formázásánál egy adott cellából húzza mindig az infót?
Pl a formátumkód: 0,00, de mögé szeretnék még írni valamit, ami mindig változik és egy adott cellában van. Létezik ilyen?köszi
-
the radish
senior tag
válasz
the radish #49940 üzenetére
Bocsánat, megoldva, pontosabban csak elfelejtettem a megoldást.
-
karit
csendes tag
Sziasztok! Szeretném a munkafüzet 1-2-3 lapján lévő táblázatokat (mint adat táblákat) a 4. lapon létrehozott bármilyen adatkapcsolattal elérni, hogy ezen a 4. fülön létrejövő táblázaton SQL lekérdezést tudjak írni a 3 adat táblára. Tehát nincs semmilyen külső adatforrás.
Hmm, érthető ez így? :SOdáig eljutottam, hogy a saját munkafüzet egyik tábláját tudom forrásként használni úgy, hogy a Létező kapcsolatoknál a Meglévő kapcsolatok fül alján betallózom ugyanezt az xlsx-et: de csak 1 db tábla választható ki, több nem.
Ezután a Kapcsolat tulajdonságai form aljára beírható az SQL, jól le is fut. Apró szépséghiba, hogy futáskor olvasásra még egyszer megnyitja a fájlt (ezt is el szeretném kerülni valami Excel.CurrentWorkbook-féle beírással a path helyett), és persze így csak 1 db forrás tábla/munkalap használható, de mindhárom kellene egyszerre.Nagyon megköszönnék minden segítséget.
-
the radish
senior tag
VBA segítségével másolnék képletet, de a képletben szereplő idézőjelekre hibát dob. Mi a megoldás az üres cellákra?
Pl. Szeretném üresen hagyni, de nem jövök rá:ActiveCell.FormulaLocal = "=HAHIBA(KEREKÍTÉS(DÁTUMÉRTÉK($J1)+IDŐÉRTÉK($J1);4);"")"
-
istvankeresz
aktív tag
válasz
Fferi50 #49934 üzenetére
Szia!
Jó volt kiindulási alapnak a kódod, Köszönöm! Sikerült összeraknom úgy, ahogy nekem kell.
Következő kérdésem mindenkihez:
Feltételnek szeretném megadni egy cella értékét. Ha az a cella egy karakter sorozattal kezdődik, pl.: 1234.56 , de még vannak mögötte karakterek, akkor a tudok olyan univerzális jelet használni, mint máshol a csillag, azaz ha valami 1234.56-al kezdődik akkor vegye figyelembe, egyébként pedig nem. Magyarul VBA-ban is lehet * karaktert használni? Mert nekem így nem találja meg amit keresek.
-
Fferi50
Topikgazda
válasz
the radish #49936 üzenetére
Szia!
Állitsd a számításokat manuálisra:Application.Calculation=xlCalculationManual
A visszaállítás:Application.Calculation=xlCalculationAutomatic
Viszont ha a makró a számított értékeket is figyelembe veszi valahol, akkor hamis lehet a végeredmény. -
the radish
senior tag
Sziasztok
Lehet, hogy kicsit komplikált a projekt és biztosan van egyszerűbb megoldás is hozzáértők számára attól amit én próbálok véghez vinni, de azért azt hittem eddig, hogy boldogulok vele.
Most azonban ilyen fogad:
Tele van képletekkel a tábla, fogalmam sincs hol lehet a hiba.
Arra gondoltam, hogy az átszámolás csak a makró lefuttatását követően menjen végbe - feltételezve, hogy ezzel van baj.
Ezt hogy tudnám kivitelezni?
Előre is köszönöm. -
Fferi50
Topikgazda
válasz
istvankeresz #49933 üzenetére
Szia!
Az elveket mutatnám, amit hozzá kell adaptálnod a saját feladatodhoz:Set ujws=Workbooks("uj").Sheets(1)
For Each ws in Worksheets
For Each rng In ws.UsedRange.Columns("A").Cells
If rng.Value=x Then
ujws.Cells(Cells(ujws.Rows.Count,1).End(xlUp).Row+1,"A").Value=rng.Value
'ha nem lehet több érték akkor Exit For
End If
Next
Next
Az "uj" munkafüzetet létre kell hoznod előtte.
A feltételt az If-fel kezdődő sorban kell megadni, itt egy szimpla egyenlőséget tételeztem fel.
Az értéket mindig az A oszlop következő üres cellájába másolja.
Üdv. -
istvankeresz
aktív tag
Üdv!
Egy (nekem) eléggé összetett lekérdezést szeretnék csinálni de nem boldogulok.
Cél: Gombnyomásra végig fut egy ciklus az aktuális workbook-ban worksheet-eken. Ezeken a worksheet-eken szintén végigfut egy ciklus ami végignéz egy oszlopban egy range-t, és ha talál egy feltétellnek megfelelő cellaértéket, akkor azt a cellaértéket átmásolja a template-ből létrejövő új workbook-ba.A ciklusban-ciklusban-feltétellel nem boldogulok, azaz az adatkiolvasással.
-
mr_ricsi
veterán
Sziasztok!
Kaptam egy excel táblát, amiben ha a a Ctrl + nyilakkal mozgok, akkor az "A" oszlopban lefelé mozogva az utolsó adatot tartalmazó cella után nem a legutolsó (1048576) cellára ugrik, hanem megáll a 10000 számú cellánál. Oszloponként változó, hogy melyik cellában áll meg. A legtöbb oszlopban a legutolsó cellára ugrik, míg további kettő oszlopban a 6000. cellára.
Azt szeretném kérdezni, hogy milyen módon lehet ilyen "navigációs cellákat" elhelyezni a táblákban?
-
Onderon
senior tag
Nem tudok már szerkeszteni:
lappy: idő formátummal sem kapok jó értékéket, de köszönöm! Próbálok operálni vele.
Fferi50: írtam privátban, köszönöm! -
Fferi50
Topikgazda
válasz
Onderon #49921 üzenetére
Szia!
Ez megoldható az Fkeres függvénnyel, mutatom a képet:
A pótlék % képlete a B2 cellában látható.
A tényleges pótlék képlete (D1-ben van a napi bér):=$D$1*FKERES(A2;$K$1:$L$6;2;1)
A képleteknél figyelj a $ jelek megfelelő használatára.
Az Fkeres függvény 4 paramétere 1, ebben az esetben azt az értéket adja vissza, amelyik a legközelebbi határértékhez tartozik. Ezért kell a határokat minimálisan túllépve megadni a táblázatban.
Üdv. -
Onderon
senior tag
Sziasztok,
Egy túlóra táblázatot próbálok elkészíteni, de az Excel tudásom elég alap. Egész órára már meg tudtam csinálni, de az óra töredéknél már elakadtam.
A túlóra az alábbiak szerint számolódik:
1-2 óra a napibér 15%-a
3-4 óra a napibér 17.5%-a
5-6 óra a napibér 20%-aViszont, a túlórát 15 percenként számolják és a legelső 15 perc "ingyen" van, azért nem jár semmi.
Volna kedve valakinek elkészíteni esetleg és felrakni valahová ahonnan le tudom tölteni?
Előre is köszönöm!
-
lenkei83
tag
Sziasztok!
Érvényesítésben lehet külön drop downt és custom feltételeket megadni képlettel. Küldön külön nincs gond, a kettőt szeretném kombinálni.
A custom képlet figyeli, hogy az érvényesítéssel rendelkező cellát csak abban az esetben lehetssen kitölteni, ha egy másik cella már tartalmaz értéket Ezt nyilván több módon is meg lehet oldani. Viszont én azt szertném, ha az érvényesítéssel rendelkező cellában egy listából lehetne választani abban az esetben, ha egy másik, hivatkozott cell tartalmaz értéket.
Látott már ilyet valaki?
VBA-ban rendben van, de jelen esetben kimondottam kérték, hogy VBA alkalmazása nélkül találjuk ki a megdolsát?Köszi
P. -
-
lappy
őstag
válasz
istvankeresz #49915 üzenetére
=HA(C31="SZ";I30-H31;HA(ÜRES(C31);" ";I30))
ha jól értem mit is akarsz ezt kell I31 be beírni majd lehúzni -
istvankeresz
aktív tag
Üdv!
Adott három oszlop. Azt szeretném, hogy az I oszlopban csökkenjen az érték a H oszlop értékével csak akkor, amikor a C oszlopban "SZ" szöveg található. Ez sikerült is, viszont abban a sorban ne írjon ki semmit, ahol nincs a C oszlopban érték. Ha más egyéb szöveg van, akkor pedig NE csökkentse az I oszlopot, csak írja oda az utolsó I oszlop értéket.
Ha a képletet módostom arra, hogy:
=HA(C31="SZ";I30-H31;"")
akkor egészen addig jó, míg újra nem lesz "SZ" a C oszlopban, mert akkor a semmiből akarja kivonni H oszlop adott értékét.
-
Bertiee
senior tag
Sziasztok! Kezdő Excel 2021 HUN felhasználó vagyok és megakadtam egy feladatnál:
adott egy számsor : osztályzatok,
átlagot számolni nem gond, viszont az a kitétel, ha az osztályzatok között akár csak egy db 1-es van, akkor a teljes sor átlaga 1-es.
Hogyan kellene ezt felírni? -
Fferi50
Topikgazda
válasz
istvankeresz #49906 üzenetére
Szia!
A Workbooks.Add sor felesleges. A Sheets(...).Copy magától létrehozza az új munkafüzetet.
Üdv. -
istvankeresz
aktív tag
válasz
Fferi50 #49904 üzenetére
Kettóvel ezelötti hsz-emben, a ??? helyére bemásoltam amit írtál. Ott akadt meg, azt a sort sárgázta ki a debugger.
Szerk:
Kiegészítve amit írtál erre:
ThisWorkbook.Sheets("Nyilvantartolap_TEMPLATE").Copy
Most már legenerálja a fáljt amit akarok üresen, majd generál egy újat amibe beleteszi a template-t.
Jó uton vagyunk, Szerintem innen már összelegózom.
Köszi!
-
Fferi50
Topikgazda
válasz
istvankeresz #49903 üzenetére
Szia!
Melyik sornál?
Megmutatnád a makrót, ami ezt okozza?
Üdv. -
Fferi50
Topikgazda
válasz
istvankeresz #49901 üzenetére
Szia!
Akkor kipróbálod?
Üdv.
Új hozzászólás Aktív témák
Hirdetés
- Projektor topic
- Formula-1
- Milyen légkondit a lakásba?
- HiFi műszaki szemmel - sztereó hangrendszerek
- Fujifilm X
- BestBuy topik
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- iPhone topik
- PROHARDVER! feedback: bugok, problémák, ötletek
- Generációs lemaradásban a Huawei chipek, de a cég kitalált valamit
- További aktív témák...
- Új, bontatlan World of Warcraft gyűjtői kiadások
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Adobe Előfizetések - Adobe Creative Cloud All Apps - 12 Hónap - NYÁRI AKCIÓ!
- Assassin's Creed Shadows Collector's Edition PC
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest