- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Geri Bátyó: B550 szűk keresztmetszet, de mi és miért?
- bitpork: Augusztus 2- szombat jelen állás szerint.
- Magga: PLEX: multimédia az egész lakásban
- Parci: Milyen mosógépet vegyek?
- sziku69: Szólánc.
- Aggregátor gondjai, örömei, és elmélkedései
- Chosen: Canon 5D II - portrézás 2025-ben
-
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
-
Delila_1
veterán
válasz
Lokids #45498 üzenetére
Az előbb a képlet helyét rosszul írtam, az 1. ws lap D5 cellájába kell írni.
Makróval:
Sub Masolas()
Dim sor As Integer, IttVan As Variant
Sheets("1. ws").Select
For sor = 5 To 1500
On Error Resume Next
IttVan = Application.Match(Cells(sor, 1), Sheets("2. ws").Columns(1), 0)
If VarType(IttVan) = vbError Then
On Error GoTo 0
Else
Sheets("2. ws").Range("B" & IttVan & ":E" & IttVan).Copy Cells(sor, 4)
End If
Next
End Sub -
Lokids
addikt
Sziasztok!
Kis segítséget szeretnék.
VBA-ban szeretnék csinálni egy olyant, hogyha 2 munkalapon az Ax cellában lévő név egyezik a másik Wf A2:A_lastrow range értékével, akkor a 2. ws-ből az 1 ws-be másolja át a Bx : Ex ranget az 1 Dx:Gx rangebe.Nem fog az agyam ma, pedig már csináltam ilyent...
-
Mutt
senior tag
válasz
kingzazza #45493 üzenetére
Szia,
Szóval bruttósított összegnek kell pont 5-re vagy 0-ra végződnie kerekítés nélkül?
A 27%os áfánál csak minden 500-al osztható szám fog 5-re vagy 0-ra végződni kerekítésmentesen.
500 nettó esetén a bruttó 635, 1000-nél pedig 1270 lesz az érték.A korábban mutatott 10 EUR - 350 HUF árfolyam és -200 Ft árkülönbözet során a nettó érték 2598 Ft, amihez a legközelebbi 500-al osztható szám a 2500 Ft. Aminek a bruttója pedig 3175 Ft.
A gond ahogy látod, hogy ekkor viszont az árkülönbözet (325 Ft) nagyobb mint a megengedett.Így a megadott feltételek alapján soha nem lesz helyes megoldás.
A képlet azért: =TÖBBSZ.KEREKÍT((bruttó-225)/1,27;500)*1,27üdv
-
Mutt
senior tag
válasz
tylerddd #45490 üzenetére
Szia,
Az ösztöndíj számításnál a többszörös HA-ba bele fogsz őrülni, de ha mégis kell, akkor legnagyobb értéktől kell menned lefelé. Vagyis előbb nézni, hogy az érték 4,8-nál nagyobb ha igen akkor összeg, ha nem akkor 4,6-nál nagyobb-e és így tovább.
Excel 2016-at jött az IFS (magyarul HAELSŐIGAZ) függvény, amivel kicsit könnyebb, de még így is ronda és könnyen elrontható:
pl. =HAELSŐIGAZ(D2>=4,8;35000;D2>=4,6;30000;D2>=4,4;25000;D2>=4,2;20000;D2>=4;15000;D2>=3,8;10000;D2>=3,6;5000;D2>=0;0)Jobb megoldás keresés közelítő találatra a segédtáblában.
=FKERES(D2;$A$26:$B$33;2)A lényeg, hogy a 4-ik paraméter üres/hamis ami az FKERESnek (VLOOKUP) azt mondja hogy nem kell pontos találatot keresnie elég egy közelit. Azonban ilyenkor a segédtáblának rendezettnek kell lennie (pont ahogy a mintán van.)
üdv
-
tylerddd
veterán
Üdv! Ezt a feladatot (ösztöndíj kiszámítása) hogyan lehetne megoldani? Elég rég csináltam ilyet!
Köszönöm!
-
kingzazza
újonc
Sziasztok!
Nem tudok rájönni a megoldásra... Nettó összeget kellene generálnom, a brutója nem lehet csak 5 vagy 0 ra végződő(ehez nem nyúlhatok), ami bonyolítja, hogy eur árfolyam függőségtől kell visszafelé számolni úgy hogy legyen rajta 200-250 kerekítési külömbözet... Kicsit bonyi! PL: 10 eur 350 el 3500(-200) 3300 kellene annak a nettója 2598 de így 3299 -re hozná... a -200 lehet dinamikus, alkalmazkodva a bruttóhoz.
Próbálkoztam, de nem megy, leblokkoltam, ez a számsor lehet a jó pl, vki látja köztük az összefüggést?
Remélem érthető.
4
8
12
16
20
24
39
43
47
51
55
59
63
67
71
75
79
83
87
... -
r6man123
senior tag
Sziasztok!
Van egy címlistám, hogyan tudnék olyan szűrést beállítani, ami kiadja a @ utáni "doamin" egyezéseket.
Például ha egy cég info@help.hu és hello@help.hu címmel is szerepel, akkor kidobja az ismétlődéseket. Köszi! -
chigisch
újonc
Szia!
Elakadtam, szépen kérlek segítsetek!
Adott egy munkalap Munka2 és Munka3
lapja. A Munka2 lapon vannak a kivitelek cikkszámonként, a Munka3 lapon pedig a cikkszámonkénti alapanyag lista, az alapanyag cikkszámokkal. A Munka2 lapon göngyölítem a kiviteli cikkszámok alapján az alapanyag felhasználást.
Amit nem tudok megoldani, hogy ha a Munka2 lapon bírom a késztermék cikkszámát (függőleges oszlop), akkor a vízszintes sorban szereplő alapanyag cikkszámokhoz beírja a Munka3 lapon szereplő normáknak megfelelő anyagszükségletet....
Ez a két munkalap közötti átjárás nagyon nem akar sikerülni!
Köszönöm szépen! -
Sziasztok!
Office 365-ben szeretnék egy Excel fájlt a szerveren úgy beállítani, hogy senki más ne tudja megnyitni szerkesztésre csak én. Azaz a többi usernek kizárólag olvasásra nyitható meg alapból, amíg én szerkesztésre is meg tudom.
A lényeg, hogy ne kelljen keresgetnem éppen ki és miért stoppolja azt a táblát amit amúgy is csak én szerkeszthetnék, mindig szerkesztésre tudjam megnyitni.Köszi a segítséget!!
-
Mutt
senior tag
válasz
Smogus #45431 üzenetére
Szia,
... folyamatos szűrést csinálnom, hogy az egyik munkalapon lévő sorok közül azok listázódjanak egy másik munkalapon, amelyeknek egy cellájában a "rögzíteni kell" felirat olvasató.
... úgy hogy semmilyen szűrést vagy makrót nem futat le a másik fülön.Ha a felhasználók saját profillal használják a gépeket (vagyis mindenki saját felhasználónév és jelszópárossal lép be a Windowsba), akkor egy Excel 4.0-ás képlettel (MUNKATERÜLETET.VESZ(26) vagy angolul a GET.WORKSPACE(26)) ki lehet olvasni az aktuális profil nevet és ezt fel lehet használni a szűréshez.
Az alábbi képen a koncepció látszik. Van 3 lap, 3 felhasználó névvel. Az Excel4.0-ás képlet a névkezelőben az ActiveUser változóhoz van rendelve. Majd pedig az egyszerűség kedvéért egy Office365-ben található függvénnyel le van szűrve a lista az megfelelő felhasználóval. Korábbi Excel változatotkban ÖSSZESÍT/INDEX párosok kellenek.
üdv
-
Mutt
senior tag
Szia,
Úgy néz ki, hogy a SZÖVEGÖSSZEFŰZÉS függvény hiányzik az Exceledből. Tudod helyettesíteni a FŰZ függvénnyel, de ekkor CTRL + SHIFT + ENTER-el kell bevinned a képletet.
=FŰZ(ÖSSZESÍT(15;6;SOR(INDIREKT("A"&MIN(A:A)&":A"&MAX(A:A)))/(1-SZÁM(HOL.VAN(SOR(INDIREKT("A"&MIN(A:A)&":A"&MAX(A:A)));A:A;0)));SOR(INDIREKT("A1:A"&MAX(A:A)-MIN(A:A)+1-DARAB(A:A))))&",")
üdv
-
bozsozso
őstag
Sziasztok,
Kicsit excel, de mégsem. Macróban szeretném meghatározni egy fájl kiterjesztését. Hogyan tudom ezt megtenni?
Előre is köszönöm a választ.
-
csferke
senior tag
Sziasztok!
Létezik-e Excel-nek olyan funkciója amelynek eredménye éé hh nn két dátum között?
Melyik ez a funkció?
Ha nem akkor esetleg tud valaki valami más megoldást?köszi
Angol Excel 2007 -
neo81
senior tag
Sziasztok!
Tudja valaki hogyan lehet számolós Excel tábálzatot úgy beállítani, hogy azon oszlopait, amelyekre nem kell rákattintani, azokra ne is lehessen?
Köszi! -
janos666
nagyúr
Be tudná valaki linkelni a leírást, hogy kell másik munkalapra hivatkozó képlettel automatikus kitöltést csinálni, mikor nem 1-el nő a hivatkozott cella száma (pl. van egymás alatt M!A5 , M!A10, .... majd lehúzni...)?
-
Fferi50
Topikgazda
válasz
ReSeTer #45459 üzenetére
Szia!
Itt találod az End magyarázatát
Gyakorlatilag azt csinálja, mint amikor egy cellán állva az End billentyűt használod a nyíl billentyűk előtt a gyorsabb mozgáshoz. Alapvetően 1 db cellából kiindulva használható, de nem haragszik meg akkor sem, ha tartományt adtál meg - úgy mint te, de ebben az esetben a tartomány első cellája lesz a kiindulási alap. Tehát a második Range egy cella lehet.
Ha megfigyeled az End billentyű működését, láthatod, hogy az utána következő nyíl billentyű az azonos fajtájú - kitöltött/üres - cellasor végére/elejére ugrik.
Mindig a kiválasztott cella sorában/oszlopában mozog. A te esetedben az A5 cellából indul lefelé és az utolsó még kitöltött cellát adja meg. Ha lenne közte üres cella, akkor csak addig ugrana le. (Próbáld ki, hogy kitörölsz átmenetileg pár cellaértéket.)
Amennyiben a többi oszlopban az A oszlopnál lejjebb is van még adat, ez akkor sem ad megfelelő értéket - a többi oszlop adata túl fog lógni a kiválasztott soron/területen.
Ezért kell megnézni az adatokat, képleteket tartalmazó cellákat.
Üdv. -
Fferi50
Topikgazda
válasz
Heavyrain #45455 üzenetére
Szia!
Szerintem a C oszlopba vedd fel a kiszállítandó raklap igényeket az adott régióhoz. Ezután csinálj egy kimutatást, amelyben a sorcímkék a régiók, oszlopcimkék a termékek (vagy fordítva), az értékek pedig a raklap összegek. Így megkapod a termékenkénti igényt és a régiók szerinti összeget is. Összehasonlíthatod az igény a készlettel.
Pl. Kiindulás:
A kimutatás pedig:
Üdv. -
Fferi50
Topikgazda
válasz
ReSeTer #45456 üzenetére
Szia!
Lehet, hogy túlgondoltam vagy nem értettem pontosan, mit szeretnél.
de nem láttam, hogy bármit is kijelölne, sőt a nextnél mindig visszamegy a For Each részig.
A For .... Next egy ciklus, pont az a lényege, hogy a két utasítás közötti részt többször is végrehajtja.
A kijelölés pedig a Next után történik, miután mindent megvizsgált.
A SpecialCells(xlCellTypeLastCell)) a munkalap utolsó használt celláját adja vissza
a SpecialCells(xlCellTypeFormulas) azokat a cellákat, amelyekben képletek vannak
a SpecialCells(xlCellTypeConstants) azokat, amelyekben értékek vannak.
Mivel nem kizárt, hogy a használt terület nem összefüggő, vannak üres sorral és oszloppal elválaszott munkalaprészek, ezért végigmegy ezeken a területeken és megnézi, hogy mely sorokat-oszlopokat foglalja el. Ezek közül a legmagasabb sorszám és legnagyobb oszlopszám határozza meg a képlettel és/vagy értékekkel kitöltött területet.
Jelenleg sikerült ezzel megoldani látszólag:Range("A5:RG5", Range("A5:RG5").End(xlDown)).Select
Ez akkor jó, ha tudod biztosan, hogy melyik az utolsó oszlopod és abban az oszlopban minden cella ki van töltve.
Egyébként ebben a kódban nem tudom mit jelent a második range értéke.
Melyik kódra gondoltál? Arra amit most használsz vagy arra amit küldtem?
Amit most írtál, abban az RG oszlop 5-től lefelé a folyamatosan kitöltött utolsó cellát jelenti.
Az enyémhez fentebb írtam a magyarázatot.
Üdv. -
ReSeTer
senior tag
válasz
Fferi50 #45448 üzenetére
Szia!
Ez eléggé túl lett szerintem bonyolítva. Kipróbáltam, végigmentem lépésenként, de nem láttam, hogy bármit is kijelölne, sőt a nextnél mindig visszamegy a For Each részig.
Jelenleg sikerült ezzel megoldani látszólag:
Range("A5:RG5", Range("A5:RG5").End(xlDown)).Select
Egyébként ebben a kódban nem tudom mit jelent a második range értéke. Beírtam ugyanazt ami az elsőben volt. Néztem a hivatalos leírást, de nem írja, hogy mi az.
-
Heavyrain
őstag
válasz
Fferi50 #45454 üzenetére
Elosztás nincsen. Csak egy adott terméknek a raklapszáma. Az ország pedig egy termékhez tartozó törzsadat, hogy hol engedélyezett az eladása.
Szóval az 1 raklapnyi terméket el lehet adni RU-nak és RO-nak is. Nem tudjuk melyiknek lesz eladva mert bármelyiknek lehet.
De most már látom benne a logikai buktatót, hogy miért nem lehetséges.
lappy: Ez jó lenne, de ha termék1 kétszer szerepel akkor kétszer fogja melléírni a raklapszámot. Így meg nem ad valós adatot.
-
Heavyrain
őstag
Sziasztok,
Biztos vagyok benne, hogy nektek nem lesz akkora kihívás mint nekem de a segítségeteket szeretném kérni mert már el vagyok keseredve, hogy nem tudom megoldani.
A valóságban sok ezer termékről lenne szó de készítettem egy leegyszerüsített példát.Az első táblázatban termékek vannak és az, hogy melyik országban lehet őket eladni. Mint pl a Termek1-nél is látszódik, egy terméket többször is szerepelhet mert több országban is el lehet adni
A másik táblázatban látszódik, hogy egy termékből hány raklap van. Itt nincs ismétlés, minden termék csak 1x szerepel.
INDEX.HOL.VAN-al nem tudom csak simán a raklapot termékhez társítani mert akkor megduplázza a raklapszámot.Amit meg szeretnék kapni:
Az adott országhoz hány raklap tartozik? (valami olyan formában, hogy abból diagramot tudjak készíteni) Az már csak a bónusz ha a termékneveket is mutatja de nem elvárás.Szóval:
RU 5
RO 4
CZ 1
SK 7
stb.Köszönöm szépen!
Fájl: [link]
-
bozsozso
őstag
Sziasztok,
A és B oszlopban szöveg van több száz sorban. C oszlopban szeretném kimutatni azokat a sorokat ahol eltérés van. Ezt szöveggel hogyan tudom megtenni? Az sem fontos hogy mi az eltérés csak az hogy van
Pl.:
A1:körte
B1:körte/
c1:van eltérés
A2:alma
B2:alma
C2:nincs eltérésnem kell szöveggel kiírnia az is elég ha hibát ír ha nem egyezik vagy bármi csak a végén tudjam szűrővel leszűrni
Számokkal egyszerű, mert kivonom a 2 cellát egymásból ha nulla akkor egyezik ha nem akkor meg nem.
Van esetleg erre valami ötletetek? Ha lehet makró nélkül lenne jó.
-
Fferi50
Topikgazda
válasz
ReSeTer #45446 üzenetére
Szia!
Ez a makró az olyan cellákat veszi figyelembe, amelyekben konstans vagy képlet van. Remélem mindkettő megtalálható a munkalapodon:Sub erd()
Dim ter As Range, maxrow As Integer, maxcol As Integer
Application.EnableEvents = False
For Each ter In Union(ActiveSheet.UsedRange.Range(Cells(5, 1), ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell)).SpecialCells(xlCellTypeFormulas), ActiveSheet.UsedRange.Range(Cells(5, 1), ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell)).SpecialCells(xlCellTypeConstants)).Areas
maxrow = Application.Max(maxrow, ter.Row + ter.Rows.Count - 1)
maxcol = Application.Max(maxcol, ter.Column + ter.Columns.Count - 1)
Next
ActiveSheet.Range(Cells(5, 1), Cells(maxrow, maxcol)).Select
Application.EnableEvents = True
End Sub
Ezután kijelöli azt a területet, amelyben ezek a cellák találhatóak.
Ha nincs képleted vagy beírt konstansod, akkor Nincs ilyen cella hibával meg fog állni. Akkor jelezz vissza légy szíves.
És akkor is ha nem ezt akartad, vagy ezt akartad és sikerült.
Köszi. -
ReSeTer
senior tag
válasz
Fferi50 #45444 üzenetére
Nem jó, ez csak az A5 oszlopban lévő sorokat jelöli ki. Oszloptól függetlenül kellene. Most nézem, lehet ez nem volt leírva egyértelműen előbb. Bocs.
Tehát, A5-s cella a kijelölés egyik pontja és az utolsó cella amiben van érték/képlet/szöveg az utolsó. Az a cella lehet akár egy másik oszlopban is.@Delila_1
Majdnem jó, csak ez meg valamiért kijelöl plusz sorokat lefele, pedig ott nincs semmi. Szerintem ez azt nézi, hogy mi volt az utoljára "használt" cella, amit akár egy előző kódsor is használhatott, csak most üres, vagy valami ilyesmi.Köszönöm attól függetlenül a próbálkozásokat!
-
ReSeTer
senior tag
Helló!
Szeretném kijelölni az "A5" cellától a legutolsó bármiféle írásos tartalmat (tehát nem formázást) tartalmazó celláig a cellákat.
Jelenleg így próbálkoztam:
Range("A5").Select
Range(Selection, ActiveCell.SpecialCells(xlCellTypeLastCell)).Select
Jelenleg ez nem működik úgy ahogy szeretném, mert ez így azt a cellát jelöli ki, amelyiket a program előző sorai utoljára használtak. Nekem kizárólag csak az utolsó számot/képletet/szöveget tartalmazó cella kéne. Formázást ne figyelje.Létezik ilyen kód?
-
Fferi50
Topikgazda
válasz
andreas49 #45440 üzenetére
Szia!
Kijelölöd a kimutatás alá és elé eső első cellát. Pl kimutatás vége H8, akkor az I9 cellát.
Ezután Nézet-Panelek rögzítése - Ablaktábla rögzítése.
Ebben az esetben az A-I oszlop és felső 8 sor mindig látható, a többi görgethető.
Számolj azzal. ha a rögzített oszlopok nem férnek el a képernyőn, akkor nem láthatod az elől levő oszlopokat láthatóvá görgetni.
A görgetés csak a rögzített cellától lefelé és jobbra működik.
Próbáld ki, aztán eldöntöd, hogyan kell elhelyezni a kimutatást a munkalapon, hogy jó legyen a görgetés.
A rögzítést ugyanezen az úton tudod megszüntetni az Ablaktábla feloldása menüponttal.
Üdv.
Üdv. -
andreas49
senior tag
Sziasztok,
Lehet, hogy naiv a kérdésem:
Van egy elég hosszú táblázatom, amihez ugyanarra az oldalra készítettem 'Összegző kimutatás'-t. Megoldható-e, hogy ez a kimutatás a lefelé görgetésnél kövesse a táblázatot?Magyarán az utolsó sornál is lássam a teljes kimutatást
Segítséget köszi előre is. -
benjoe1
aktív tag
Valaki leírná gyorsan, hogy milyen lehetőségek vannak egy excel közös használatára, milyen korlátozások vannak? Köszönöm
-
Fferi50
Topikgazda
válasz
repvez #45435 üzenetére
Szia!
Talán most már sikerült teljesen megfogalmazni a feladatot. Próbáld ki ezt az eseménykezelőt:Private Sub Worksheet_Change(ByVal Target As Range)
Dim cel As Variant
If Intersect(Target, Range("H2:H20")) Is Nothing Then Exit Sub
With Sheets("Munka2")
cel = Application.Match(CLng(Date), .Range("A:A"), 0)
If IsError(cel) Then
cel = .Range("A10000").End(xlUp).Row + 1
.Cells(cel, 1).Value = Date
End If
.Range(.Cells(cel, 2), .Cells(cel, 20)).Value = Application.Transpose(Target.Parent.Range("H2:H20").Value)
End With
End Sub
A H2-H20 tartományba bármit változtatsz, az egész H2:H20 tartományt átmásolja a másik munkalapra. Sőt akkor is, ha csak visszaírod ugyanazt az értéket a tartomány valamelyik cellájába.
Üdv. -
repvez
addikt
válasz
Delila_1 #45428 üzenetére
Ma is megnéztem, hogy 2 eltérő napon hogy működik.
A dátum és a sorváltás jó.
Viszont az lehet, hogy nem volt teljesen világos, hogy a H2-H20 ig lévő adatokat minden alkalommal vigyen át a másik lapra is, ha változik ha nem
Tehát a H2es cella tartalma ,minden alkalommal a munka2 B oszlopának arra a napra metszésben lévő sorába kerüljön,
A H3as oszlop a Munka2 C oszlopára, a H4es a D re és igy tovább a H20- munka2 T oszlopig.
A következő nap meg új sorba előröl újra az egész.Most csak egy adatot visz át , de úgy nézem , hogy naponta egyel ugrik lejjebb, mert ma a H9es cellában lévő adatot vitte át a munka2es lap b3es cellájába , tegnap meg a H8as cella adatát hasonló B2 pozícióba a munka 2es lapon.
-
zsolti_20
senior tag
Sziasztok! Szeretnék adatot átmásolni egy másik excel fileből, filterezéssel, de valamiért nem akar működni. Hiába állítom be neki az összes kritériát valamirét az összes adatot átmásolja mintha nem is lenne filterezve. Hol lehet a probléma a kódban?
Sub CopyFilteredValuesToActiveWorkbook()
Dim wbSource As Workbook, wbDest As Workbook
Dim wsSource As Worksheet, wsDest As Worksheet
Dim rngSource As Range, rngDest As Range
Set wbSource = Workbooks.Open("D:\KyLe\Desktop\ASD.xlsx", , True) 'Readonly = True
Set wsSource = wbSource.Worksheets("ASD")
wsSource.Range("A2:Z40000").AutoFilter Field:=8, Criteria1:="3"
Set rngSource = wsSource.Range("B3:Z40000")
Set wbDest = ThisWorkbook
Set wsDest = wbDest.Worksheets("Sheet5")
Set rngDest = wsDest.Range("A1:Z40000")
rngDest.Value = rngSource.Value 'Copies values over only, if you need formatting etc we'll need to use something else
MsgBox "kecske"
wbSource.Close (False) 'Close without saving changes
End Sub
-
Fferi50
Topikgazda
Szia!
Még valami jutott eszembe:
AzApplication.Volatile
utasítás az elején. Azt jelenti, hogy valahányszor változik egy cella értéke, a függvény újraszámol(ná) az értékét. Ez okozhat gondokat, hiszen elég sok helyen változtatsz cellaértékeket.
Én kivenném ezt az utasítást az elejéről.
Üdv. -
Smogus
őstag
Sziasztok!
Egy olyan problémába ütköztem, hogy kellene egy ilyan folyamatos szűrést csinálnom, hogy az egyik munkalapon lévő sorok közül azok listázódjanak egy másik munkalapon, amelyeknek egy cellájában a "rögzíteni kell" felirat olvasató.
Tudom, hogy lehet egyszerű szűréseket alkalmazni az adott munkalapon, de nekem az kellene ha valaki megnyitja a táblázatot akkor a neki szóló fülön látja, hogy melyek azok a sorok amiket rögzíteni kell, úgy hogy semmilyen szűrést vagy makrót nem futat le a másik fülön.
Meg lehet ezt oldani?Előre is köszönöm a segítséget!
-
Fferi50
Topikgazda
Szia!
Annyi minden van azon a munkalapon a kép alapján, hogy (számomra legalábbis) lehetetlen reprodukálni, hiszen nem látszanak, hogy itt-ott milyen függvények vannak még, stb.
Ezért kértem, hogy tegyél elérhetővé egy mintafájlt, ne várd el, hogy kitaláljuk, hova - mit helyeztél el.
Mivel leginkább számok vannak, talán még hadititkot sem sértesz a közreadással.
A megnevezések stb. megadhatóak "álnévvel" is. Csak a számítások megértéséhez szükségesek legyenek jók.
Üdv -
KBaj
kezdő
Szia!
Köszönöm, hogy hozzászóltál és tanácsot adtál.
Észrevételedre: Valóban a kód a G8-ra hivatkozik, de az nem üres hanem értéke 9, ami ránézésre csalóka, mert a G8 és H8 Excel művelettel cellaegyesítve van, igazítása középre (piros háttérszínnel). Hivatkozása viszont marad az első cella címe.
Az utóiratodra: Nagyon sokat kísérletezek Excel-VBA-val. Sokszor változtatok ezt-azt. A Feltétel2 nevű tartományt a program első harmadában használom először a'Feltételek
megjegyzés sor után:Range("AF11:AJ11").Value =
... , igaz nem név szerint, hanem tartalom szerint. Nem tudom, hogy helyes-e. Nem függvényként futtatva a programot, lefut rendesen.
Amit eddig tudok: Az1004 Application-defined or object-defined error
akkor jön elő, ha olyan utasítást kell végrehajtania, ami egy értékadás valaminek egy munkalapfüggvényt tartalmazó cellából. Persze a munkalapfüggvény helyes. Autódidakta megérzésem ezen az úton kell elindulni a hibakeresésben.
Minden hozzászólást szívesen fogadok. Köszönöm az eddigieket.
Üdv. -
repvez
addikt
válasz
Delila_1 #45425 üzenetére
Lehet félreérthető voltam a megfogalmazásban .
Müködik a macro, viszont valami nem teljesen jó, mert csak a H8as adatot viszi át a munka2 B2es cellájába.
viszont most jo, hogy a dátim az csak az A cellába jelenik meg és modositott értéknél is felulirja az adott adatot.
-
Delila_1
veterán
válasz
repvez #45424 üzenetére
Újabb változat. Eddig arról volt szó, hogy azonos dátumnál a következő oszlopba írja be az értéket, most meg hogy írja felül a B oszlopban lévőt.
FFeri makróját módosítva:Private Sub Worksheet_Change(ByVal Target As Range)
Dim cel As Variant
If Target.Column = 8 Then
With Sheets("Munka2")
cel = Application.Match(CLng(Date), .Range("A:A"), 0)
If IsError(cel) Then
cel = .Range("A10000").End(xlUp).Row + 1
.Cells(cel, 1).Value = Date: .Cells(cel, 2) = Target
Else
.Cells(cel, 2) = Target
End If
End With
End If
End Sub -
repvez
addikt
válasz
m.zmrzlina #45420 üzenetére
köszi, ez egyszer működött, de nem tudom, mi történik , ha kitöröltem a megjelenített sorokat és újra vittem be adatokat akkor onnantól már nem jelent meg semmi adat sem
hiába másoltam és mentettem el újra a macrot.
és ki akartam próbálni, hogy módosítom a H2-H7 tartományt, de nem reagált utána már semmire.
egyébként csak ennyi lenne, hogy a munka1es függőleges oszlop adatait a munka 2 vízszintes sorába írja, de ha többször módosul egy nap a munka1ben az adat akkor csak felülírja az aznapi sorban lévő cellában irt adatot és ne szúrjon be még egy sort aznapi dátummal.Delila_1: nem csak a H2 lenne adat, hanem a H2-H20ig.
-
Delila_1
veterán
válasz
Fferi50 #45421 üzenetére
Bocs, lusta vagyok kikeresni a kérdést.
Mindig a H2-be ír – ha jól értem –, csak az azonos napon beírt értékeket szeretné 1 sorba beírni a másik lapon. Remélem, jó lesz, de csak holnap derül ki.Private Sub Worksheet_Change(ByVal Target As Range)
Dim sor As Long, oszlop As Integer
If Target.Address = "$H$2" Then
With Sheets("Munka2")
sor = .Range("A" & Rows.Count).End(xlUp).Row + 1
If .Cells(sor - 1, 1) <> Date Then
oszlop = 2
Else
sor = sor - 1
oszlop = .Cells(sor, Columns.Count).End(xlToLeft).Column + 1
End If
.Cells(sor, 1) = Date
.Cells(sor, oszlop) = Target
End With
End If
End Sub -
Fferi50
Topikgazda
-
m.zmrzlina
senior tag
válasz
repvez #45415 üzenetére
Tegyük fel, hogy
-H2:H7 tartományban viszel fel adatokat a Munka1 nevű munkalapon
-ENTER-re lefelé ugrik az aktív cella és nem jobbra
-ha nem is írsz minden cellába a H2:H7-be akkor is leviszed az aktív cellát H8-ig
-további ha-k >....< ide
akkor itt egy Móricka megoldás:Private Sub Worksheet_Change(ByVal Target As Range)
Dim holavege As Long
Dim cella As Range
If ActiveCell.Column = 8 And ActiveCell.Row = 8 Then
holavege = Worksheets("Munka2").Range("A" & Rows.Count).End(xlUp).Row + 1
Worksheets("Munka2").Range("A" & holavege) = Date
For Each cella In ActiveSheet.Range("H2:H7")
Worksheets("Munka2").Cells(holavege, cella.Row) = Worksheets("Munka1").Cells(cella.Row, 8)
Next
End If
End Sub
Ez azért Móricka megoldás mert csinál olyan dolgokat is amit nem szeretnél, de pontosabb megoldáshoz nekem pontosabb feladat leírás kellene. -
Mutt
senior tag
A másik fórumon jelent meg egy kérés, hogy hogyan lehetne egy számokat és szövegeket tartalmazó cellából a csak a számokat vagy szövegeket kinyerni.
Makró mentesen tömbfüggvénnyel és Power Queryvel is meg lehet oldani a dolgot.
Képlet B1-ben (Excel 2016 kell hozzá legalább):
=SZÖVEGÖSSZEFŰZÉS("";IGAZ;HA(SZÁM(--KÖZÉP(A2;SOR(INDIREKT("A1:A"&HOSSZ(A2)));1));KÖZÉP(A2;SOR(INDIREKT("A1:A"&HOSSZ(A2)));1);""))
Képlet C1-ben:
=BAL(A2;HOL.VAN(HAMIS;SZÁM(--(KÖZÉP(A2;SOR(INDIREKT("A1:A"&HOSSZ(A2)));1)));0)-1)
Képlet D1-ben (ugyanaz mint a B1, csak a HA(SZÁM részben van az IGAZ-HAMIS feltétel felcserélve):
=SZÖVEGÖSSZEFŰZÉS("";IGAZ;HA(SZÁM(--KÖZÉP(A2;SOR(INDIREKT("A1:A"&HOSSZ(A2)));1));"";KÖZÉP(A2;SOR(INDIREKT("A1:A"&HOSSZ(A2)));1)))
Képlet E1-ben:
=KÖZÉP(A2;HOL.VAN(HAMIS;SZÁM(--(KÖZÉP(A2;SOR(INDIREKT("A1:A"&HOSSZ(A2)));1)));0);5000)
üdv
-
repvez
addikt
válasz
Fferi50 #45416 üzenetére
ha ezt a makrót használom, akkor nem történik semmi a munka2ben.
Hiába irok bármit a H oszlopba, a munka2be se dátum se érték nem jelenik meg, üres marad.Az elöbbi megoldás jól müködik, csak ott minden érték uj sorba kerül és mindegyik elé kerül dátum is.
Nekem csak egyzer kellene a fátum és az értékek sorba vízszintesen kellene hogy legyenek .
-
Mutt
senior tag
Szia,
A kód elején a Kezd = Cells(8, 7) rész azt mondja, hogy a G8-as cellában lévő érték legyen a Kezd változó induló értéke, de ahogy a minta képből kivehető az a cella üres, így a Kezd-nek nem lesz értéke és ez el kihat a többi változóra is.
Kell egy ellenőrzés hogy üres/nem számot tartalmazó esetben mi történjen.
pl.If IsEmpty(Kezd) Or Not IsNumeric(Kezd) Then Kezd = 1
üdv.
Ps.
Furcsa, hogy az UDF-ben megadsz egy vizsgálandó tartományt (Feltétel2) de azt nem használod fel sehol. -
Fferi50
Topikgazda
válasz
repvez #45415 üzenetére
Szia!
Próbáld ki ezt az eseménykezelő makrót, a Munka1 munkalapod kódlapjára kell bemásolni.Private Sub Worksheet_Change(ByVal Target As Range)
Dim cel As Variant
If Target.Address = "$H$2" Then
With Sheets("Munka2")
cel = Application.Match(CLng(Date), .Range("A:A"), 0)
If IsError(cel) Then
cel = .Range("A1000").End(xlUp).Row + 1
.Cells(cel, 1).Value = Date: .Cells(cel, 2).Value = Target.Value
Else
.Cells(cel, 1).End(xlToRight).Offset(0, 1).Value = Target.Value
End If
End With
End If
End SubÜdv.
-
repvez
addikt
válasz
m.zmrzlina #45414 üzenetére
Köszi.
kiprobáltam, Müködik is, csak ami a munka1 H oszlopába kerül, azt ugy szereném a munka2re vinni,Hogy ott egy nap az egy sorba kerüljön.
Tehát a H lévö oszlop az a munka 2-n. BCDE stb sorokba kerüljön vízszintesen
Az "A"oszlopban csak az adott napi dátum, és utána a B,C,D E,F stb.. sorokba meg az értékek.Holnap meg uj sort kezdjen
-
repvez
addikt
válasz
Delila_1 #45412 üzenetére
Köszi. igy muködi k arra a cellára
ÉS , hogy tudom ezt többszörözni?
Gondolom, hogy az
Valami ilyesmi kellene:Private Sub Worksheet_Change(ByVal Target As Range)
Dim ide As Long
If Target.Address = "$H$2" Then
If Target1.Address = "$H$3" Then
With Sheets("Munka2")
ide = .Range("A" & Rows.Count).End(xlUp).Row + 1
.Range("A" & ide) = Date
.Range("B" & ide) = Target
.Range("C" & ide) = Target1
End With
End If
End Sub
Csak mert igy hibát kapok
-
Delila_1
veterán
válasz
repvez #45411 üzenetére
Másold be az alábbi makrót a munkalapod kódlapjára (lásd a Téma összefoglalóban).
Ha nem Munka2 a neve a másik lapodnak, írd át a makróban. A fájl makróbarátként kell elmentened.Private Sub Worksheet_Change(ByVal Target As Range)
Dim ide As Long
If Target.Address = "$H$2" Then
With Sheets("Munka2")
ide = .Range("A" & Rows.Count).End(xlUp).Row + 1
.Range("A" & ide) = Date
.Range("B" & ide) = Target
End With
End If
End Sub -
repvez
addikt
udv
Azt meg lehet valahogy oldani, hogy ha valamit beirok egy cellába akkor automatikusan mentsen egy bejegyzést egy másik munkalapra dátummal?
ugy értem, hogyha megnyitom hétfön az excelt és beirok egy adatot a h2es cellába akkor a munka2es lapon az A1es cellába beirja a hétfői dátumot és a b1es cellába a a h2es adatot másolja be.
De amikor kedden megnyitom és ugyan ugy a h2es cellába modositom az értéket akkor az A2es cellába tegye a keddi dátumot és a b2es cellába a modositott értéket anélkül, hogy a hétfői megváltozna.Természetesen több cellával is müködjön és az azonos napi változásokat egy sorba irja és csak az A1es cellába legyen az aznapi dátum.A b1 ,c1, d1 stb.. csak a másolt adatok
-
KBaj
kezdő
válasz
Fferi50 #45409 üzenetére
Szia!
Hát igen. Korábbi VBA kísérleteimnél többször kaptam Next hibáról hibajelentést. Nem találtam a hibát. Minden For-nak meg volt a párja, le is rajzoltam a kapcsolódásokat. Már lassan ott tartottam, hogy hozom a fejszét és belevágom. Míg egyszer rájöttem. Találtam egy End nélküli If-et. Hát ez a baj. De akkor miért ír Next hibát? ..... Azóta ilyen hibára a keresést End hiányával kezdem. .... Magamban levontam a következtetést: MS-ék a VBa Help rendszerét nem elég mélyen csinálták meg. Lásd most is: a hibán átlépett, mintha minden rendben lenne és az ember azt hiszi mindent elvégzett, amit a programban előírtunk neki. Azóta minden hibajelentést fenntartással fogadok, nem biztos, hogy az a hiba ami le van írva. Tanultam: Ahogy tanácsoltad, hibakezelési sort érdemes beépíteni.
A mostani hibával kapcsolatban: a számításokat nagyrészt a munkalapon munkalapfüggvények végzik, a VBA kisebb számítások mellett ezek elvégzésük időbeni vezérlését és eredmények válogatását végzik. Azért is van vezérelve az újraszámolás, alaphelyzet kikapcsolt, számolás csak Calculate utasításra.
Mindennek ellenére tovább kísérletezem, mert az Excel szép.
Üdv. -
Fferi50
Topikgazda
Szia!
mi az a privi?
Privát üzenet - amit csak te látsz a belépés után a levél ikonra kattintva.
Tehát NEM tudja végrehajtani a cellába írást?
Nem feltétlenül ott van a hiba, amit nem hajt végre. Máshol is lehet.
Nézd meg a privát üzeneted légy szíves.
Üdv.
Ps. Bocs, de itt általában tegeződünk... kortól és nemtől függetlenül. És ez nem a tiszteletlenség jele, sőt. -
KBaj
kezdő
válasz
Fferi50 #45403 üzenetére
Úgy látom váltanom kell a lapon alkalmazott stílusra.
Szia!
Milyen számításra gondolsz? Én még mindig a korábbi megfigyelésemnél tartok: "És most már innen szállt ki. Tehát NEM tudja végrehajtani a cellába írást?".
Ne haragudj ezért a kérdésemért, de én korábban nem ilyen nyelvi környezetben éltem: mi az a privi?
Üdv. -
KBaj
kezdő
válasz
Fferi50 #45401 üzenetére
Kedves Fferi50
Korábbi bejegyzésem szerinti hibát keresem: „Miszerint egy darabig a VB végrehajtja az utasításokat és adott sortól egyszerűen otthagyja a programot, visszatér az munkalaphoz, mintha egy END SUB-ot kapott volna.” Igaz módosítottam egy kicsit: a Cikl változóra később lesz szűkségem.Cells(6, Előford + 1) = Cells(5, Előford + 1)
'Cells(6, Előford + 1) = Cikl
Mindig a „Cells(6,….)=Cells(5,….)” sornál száll ki. Nem hajtja végre, pedig minden szükséges paramétere ismert, számszerűleg meghatározott.
Igaz, ha a Cells(6,…) cella megváltozna, kiváltana egy újraszámolási Excel műveletet, de ez a program elején az alábbiak szerint Call kep_ki rutinnal ki van kapcsolva:
Sub kep_ki()
Application.ScreenUpdating = False
Application.CutCopyMode = False
Application.Calculation = xlCalculationManual
End Sub
Nem értem miért hagyja ott a rá bízott feladatot (ez nem számítógéphez méltó viselkedés) és mintha mi sem történt volna, visszatér oda ahonnan ideküldték. Rejtély.
Beszúrtam egy kísérleti sort a Kezd változó meghatározása után Cells(6, Kezd + 10) = Kezd. És most már innen szállt ki. Tehát NEM tudja végrehajtani a cellába írást? Ne feledjük Függvény rutinban vagyunk.
Tovább keresek.
Üdvözlettel:
KBaj
Új hozzászólás Aktív témák
Hirdetés
- Antivírus szoftverek, VPN
- Új, bontatlan World of Warcraft gyűjtői kiadások
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Kaspersky, McAfee, Norton, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Adobe Előfizetések - Adobe Creative Cloud All Apps - 12 Hónap - NYÁRI AKCIÓ!
- Telefon felvásárlás!! Apple Watch Series 9/Apple Watch Ultra/Apple Watch Ultra 2
- Alkatrészt cserélnél vagy bővítenél? Nálunk van, ami kell! Enterprise alkatrészek ITT
- Telefon felvásárlás!! Xiaomi Redmi Note 12, Xiaomi Redmi Note 12 Pro, Xiaomi Redmi Note 12 Pro+
- Telefon felvásárlás!! Apple iPhone SE (2016), Apple iPhone SE2 (2020), Apple iPhone SE3 (2022)
- 10% -tól elvihető.Országosan a legjobb BANKMENTES részletfizetési konstrukció! ACER PREDATOR HELIOS
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest