-
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
-
válasz
Vizes Tomi
#14988
üzenetére
Több munkalap van kijelölve. Kattints valamelyik munkalap fülön jobb egérrel és csoport szétbontása.
-
válasz
poffsoft
#14955
üzenetére
Nem tudom, milyen verziójú az Excel, de ha 2007 vagy újabb akkor
=COUNTIFS(A1:A6;"abcd*";B1:B6;"<>" &"")
Ha a teljes A és B oszlopot vizsgálnád, akkor
=COUNTIFS(A:A;"abcd*";B:B;"<>" &"")
(magyar Excel-ben DARABHATÖBB a megfelelője)
UI: Ha a 2003 vagy régebbi Excelben is kell használni/használják a táblázatot, akkor ez nem jó megoldás.
-
-
-
-
-
válasz
Delila_1
#14539
üzenetére
1. A példámban a C oszlopra semmi szükség, pusztán azért jelenítettem meg, hogy fejben ki lehessen számolni, hogy milyen eredménynek kellene születni
2. Szerintem csak elbeszélünk egymás mellett, mert szintén az én példámat alapul véve, azokkal az adatokkal dolgozva, a Te képleted nem adhat 11-et, 43-at kell.
(11-et azért nem értettem, mert azt feltételeztem, hogy az adataimmal ad annyit, de nyilván nem az én adataimról van szó) -
-
-
-
-
válasz
Wasquez
#14493
üzenetére
Amikor dátumra formázod a cellá(ka)t, akkor nézd meg, hogy milyen elválasztó karaktert használ (pont vagy kötőjel, perjel stb). ha ez megvan, akkor ennek megfelelően írj be egy dátumot(teljes dátumot, pl pont elválasztó esetén 2012.01.01 formában), így mi történik?
(Ha egy dátum cellába klasszikus értelembe véve írsz be szöveget (pl ubul), arra nem fog figyelmeztetni és természetesen dátumként sem tudja megjeleníteni, de mint írtam, ez nem hiba) -
-
Füzetvédelem van bekapcsolva és az Ablakok opció is be van jelölve. Fel kell oldani a védelmet.
-
-
válasz
motinka
#14412
üzenetére
Erre való a SZUMHATÖBB függvény, csak azt amit leírtál: "...és a C sorban az O4-nek...", ezt nem lehet kivitelezni, mert nincs olyan, hogy C sor. Olyan lehet, hogy pl a 3. (vagy egyéb) sorban ($3:$3)
Ezért is írtam egy sima példát a SZUMHATÖBB-re, aztán majd saját igényed szerint módosítod.(Látom megtörtént időközben)Szerk
Ha kódot szúrsz be a hozzászólás írásakor, akkor használd a Programkód gombot, mert különben smiley-kkal tüzdelt, mint most, meg korábban is a képlet. -
válasz
motinka
#14410
üzenetére
Ha 2003-as Excel-t használsz
Ha 2003_asnál újabb az Excel, akkor =SZUMHATÖBB(C1:C8;A1:A8;"a";B1:B8;"c")UI: DARATELI függvénnyel nem lehet összeadni.
-
Erre mondják, hogy csalamádé.
Elég csak benézned a Névkezelőbe és látod, 5-6 (vagy több) tartománynak ugyanaz a neve. [link]
Másik tipikus hiba, hogy az érvényesítési lista forrásában a cellákra abszolút hivatkozással kell hivatkozni, azaz a oszlop- és sorazonosító elé is kell a dollár jel, pl INDIREKT($A$1)Szerintem ugorja neki még egyszer, egyértelmű és ne 1-2 betűs tartományneveket használj. (Ha a rosszak ki vannak törölve és újra át vannak nevezve, akkor működnek a listák)
-
válasz
atillaahun
#14387
üzenetére
A példádnál maradva
1. vidd a cellakurzort a B oszlop bármely cellájára (ami tartalmaz képletet, ne üres legyen), majd CTRL+C
2. vidd a cellakurzort az A oszlopba, majd CTRL + Kurzormozgató LE(így az A oszlop utolsó, adatot tartalmazó cellájára áll a cellakurzor)
3. vidd a cellakurzort ebben a sorban maradva a B oszlopba, majd CTRL+SHIFT+Kurzormozgató FEL, majd CTRL+V és ESC -
-
"Ezt a dinamikus tartományt egyébként a 2003-as excel is tudja?"
Igen."...magyarán azt mondod, hogy azért van az egyiken, és nincs a többin, mert statikus a tartomány dinamikus helyett?"
Nem, mivel a névvel ellátott tartományok globálisak, azaz bármely munkalapról elérhetőek. Ebből következően a "Ez pedig, számomra rejtélyes okból, CSAK az első munkalapon működik - és nem csupán az, hogy új elemet szúrhassak be a listába, hanem maga a legördülés is." kérdésedre nem tudom a választ sajnos. -
Egyszerűség kedvéért névvel ellátott tartományok lesz a példában, pl UBUL.
Vannak statikus és dinamikus tartományok, ezeket az Excel(típustól függetlenül) dinamikusan tudja frissíteni, adott esetben.Statikus tartomány az, aminek van "jól behatárolt" eleje és vége, pl $A$1:$A$10. Ha az A11-be írnál valamit, az nem kerül be az UBUL tartományba, Excel sem fogja dinamikusan bővíteni, manuálisan kell kibővítened az UBUL tartományát $A$1:$A$11-re.
Ha viszont az A10 cellának megfelelő sorban van a kurzor és beszúrsz egy sort, akkor azt az Excel dinamikusan frissíti, azaz manuális beavatkozás nélkül, az UBUL tartomány forrását $A$1:$A$10-ről, $A$1:$A$11-re bővíti.Dinamikus tartomány az, aminek nincs jól behatárolt eleje/vége, tipikusan amikor egy teljes oszlop vagy sor tartozik a tartományba, pl $A:$A vagy $1:$1
Itt nincs dolga az Excel-nek, ezen nincs mit bővíteni, az adott oszlopba vagy sorba beírt adatok értelme szerűen az UBUL tartomány részét fogják képezni, az UBUL tartományt használó objektumokba (pl az érvényesítési listába) a beírt adat automatikusan bekerül.Szintén dinamikus tartományokhoz tartozik, amikor egész sor vagy oszlop a forrás, de bizonyos kivételekkel, azaz az UBUL tartomány ne a teljes oszlopot vagy sort tartalmazza, hanem pl csak a 2. sortól vagy 2. oszloptól legyen a teljes oszlop vagy sor az UBUL nevű tartomány forrása.
Pl ha az a terv, hogy az UBUL nevű tartomány F2-től kezdődően a teljes F oszlopot foglalja magábal, akkor az UBUL tartományt így kell megadni: [link]Az ily módon létrehozott dinamikus tartományok nagy előnye, hogy nem kell manuálisan módosítania a felhasználónak és természetesen az üres cellák sem jelentenek gondot, hisz (maradva az érvényesítési listáknál) van olyan opció, hogy az üres cellákat ne jelenítse meg.
Kicsit hosszú lett a hsz, de remélem azért érthető.
bugizozi és lacid90
Bocsesz, most nem válaszolok, kicsit szellőztetem a fejem, mert nem rég értem haza ilyen "teganelőtre kelle, totálkáros gépekbe életet lehelni" kategóriájú melóból, fáradt vagyok. (Ráadásul szabin vagyok, de "kénytelen voltam" elvállalni)
Remélhetőleg Delila_1 is feltűnik (tényleg, amúgy merre "csatangolsz?
) vagy valaki más és leírja, hogy mi a megoldás. Én max eset valamikor fogok válaszolni(ha tudok persze), addig pihentetem a szürkeállományt. 
-
válasz
lacid90
#14375
üzenetére
Nem, csak 2 Excel-nek kell megnyitva lennie, nem 3-nak. Nem tudom milyen OS-t használsz, de Vista/W7 esetén (előtte zárj be minden megnyitott Excel-t) WIN gomb +R/beír excel és enter, majd megismétled még1x.
(XP-nél erre nem emléxem és most nem is tudom kipróbálni sajnos) -
válasz
lacid90
#14373
üzenetére
Ez már megint más programozást igényel, mint amit korábban kérdeztél...
Az Excel-t 2 példányban kell megnyitni, így az egyik ezen, a másik azon a monitoron lesz látható (nyilván most a videokari beállításaira nem térek ki), és ez eddig rendben is van, ez az egyszerűbb része a dolognak. Viszont a 2 alkalmazás közti kommunikáció megint más tészta és oda Windows API függvények bevonása is szükséges, amit kezdő, az excel-el, makróval stb csak most ismerkedő versenyzőnek igen kemény avagy kivitelezhetetlen feladat.
(OS és Office függő, ezen belül x86 avagy x64 sem mindegy, más és más deklarációt igényel a makróban az API függvények, és az sem árt, ha tudja valaki, hogy mik is azok az API függvények és hogy abból van több száz/ezer...)Ezt elkerülendő egy kerülőmegoldást tudok elképzelni, azaz 2 példányban van megnyitva az Excel, az egyikben egy makró elmenti a munkafüzetet, ha bármilyen módosítást észlel, a másik excel meg meghatározott időközönként ebből a munkafüzetből olvassa be az adatokat, pl másodpercenként.
-
-
Igen, az járható út, de ha korábban írtad volna, akkor már úgy írtam volna a makrót, nem szeretem az utólagos hegesztéseket. (mert az olyan kihatással lehet a makró működésére, hogy még a gép is beakadhat tőle)
![;]](//cdn.rios.hu/dl/s/v1.gif)
Ha kiszedted az Array-ből a nullát, akkor az alábbi részben
If NumberOfDigits < 1 Or NumberOfDigits > 10 Then
FSCD_Generator = "A számjegyek száma 1 és 10 közé kell, hogy essen!"
Exit Function
End Ifmódosítsd a > 10-et > 9-re és a hibaüzenetben is "1 és 9 közé"
Végül si ha a makróban a NumberOfDigits értékét nem módosítod, akkor nincs gond.
-
Üres munkafüzet legyen nyitva, ALT+F11/Insert menü/Module, a megjelenő üres ablakba bemásolod a kódot (Copy/Paste-el), munkafüzet pl A1 cellájába(vagy bárhova) meg beírod:
=FSCD_Generator()
A cella másolható, a munkafüzetet makróbarát munkafüzetként kell menteni.
Ez a makró egy saját készítésű függvény, egy 8 jegyű "kódot" ad vissza, amiben nincs ismétlődő számjegy.
-
-
válasz
bugizozi
#14360
üzenetére
Igen, ezért kéretik leírni, hogy milyen verziójú az Excel...

Excel 2003 - Definiált név módosítása vagy törlése -
válasz
pero19910606
#14359
üzenetére
Igen, így érthető, bár ennek fényében a "Valami ilyesmi igen, de így nem kell azon a gépen futni az exelnek a hibátlan megnyitáshoz amin dolgozom? " kérdésedre csak az lehet a helyes válasz, hogy:
Hol fusson? Afrikában a batu olimpián, százméteres palackfafutó versenyen, csörgőkígyóval a nyakában, kiéhezett hiénacsapattal a potrohában nem tud futni az Excel.
Szóval beszúrsz egy megjegyzést, megjegyzés keretén jobb egér/megjegyzés formázása/színek és vonalak fül/kitöltés csoport->szín lenyíló/kitöltési effektus/kép fül és kép kiválaszt.
Ennek ez az eredménye: Cella fölé viszed az egérkurzort megjelenik, ha elviszed eltűnik.
Nyilván 100-as nagyságrendű képnél ez eltart egy ideig manuálisan, kivéve bizonyos feltételek mellett. Pl: A1-től A100-ig kellene minden cellával ezt eljátszani, akkor egy mappába gyűjteni a 100 képet, azokat átnevezni sorszámozva, pl akarmi_0001.jpg, akarmi_0002.jpg stb stb.
Így lehetne olyan makrót írni, ami A1 cellába beszúrna megjegyzést és az akarmi_0001.jpg használná, egészen A100-ig, ahol már az akarmi_0100.jpg lenne a megjegyzésben.
-
válasz
pero19910606
#14356
üzenetére
Szívesen segítenék(segítenénk), de a korábbi hozzászólásod is zavaros volt a számomra, de a mostani hozzászólással teljes köd szállt az agyacskámra, halványlila gőzöm nincs, hogy mit is szeretnél.

Talán valaki tudja értelmezni és tud segíteni. -
válasz
bugizozi
#14350
üzenetére
Az egyik (szvsz legegyszerűbb) kivitelezése ez.
1. Névvel ellátott tartományokkal kell dolgozni. Itt a példában 3 tartomány van és lett elnevezve, C oszlopban a különböző autótípusok vannak felsorolva (C2-től), D oszlopban csak a Fiat típusok (D2-től), E oszlopban csak az Opel típusok (E2-től). Ha egy új autótípust vennél fel, akkor azt a D4-be kellene írni és F oszlopba, F2-től kellene felsorolni a csak az adott gyártó típusait és F2-től valameddig el kell nevezned a tartományt. Az egészben az a "trükk" (ami leegyszerűsíti az egész feladatot), hogy a különböző autótípusok nevei (Fiat, Opel), azok egyezzenek meg a tartománynevekkel, amit típusonként megadsz. Mindez jól látszik a linkelt képen.
2. Ha az 1 pont rendben van, akkor már egyszerű a dolog
# A2 érvényesítés és forrás
# B2 érvényesítés és forráspero19910606
Valami ilyesmire gondolsz? -
válasz
Tepsifüles
#14349
üzenetére
Ha nem ActiveX vezérlőről van szó, akkor ráállsz arra a cellára, "amiben" a legördülő listát látod, majd Adatok fül/Adateszközök csoport/Érvényesítés lenyíló/Érvényesítés és a megjelenő ablakban ott lesz a tartomány. Ha a tartománynak névvel ellátott tartomány van megadva, akkor azt a Képletek fül/Definiált nevek csoport/Névkezelő segítségével (is) tudod megnézni és szerkeszteni (ha kell).
Ha ActiveX vezérlőről van szó(ComboBox), akkor jobb egér a vezérlőn/Tulajdonságok és a ListFillRange tulajdonságban van a tartomány.
-
válasz
lacid90
#14347
üzenetére
Megnyitod Excel-el mindkét munkafüzetet. Amelyikből másolod az adatokat, annak a munkalapnak a Change eseményébe kell írni a kódot.
Egy egyszerű példa: Adott 2 munkafüzet, Munkafüzet1 és Munkafüzet2 néven. Mindkettő meg van nyitva az Excel-el és a Munkafüzet1, Munka1 lapjának A1 cellájának módosításakor (és csak az A1 cella módosításakor) átmásolja az A1 cellát, a Munkafüzet2, Munka1 lapjának A1 cellájába.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
Workbooks("Munkafüzet2.xlsm").Sheets("Munka1").Range("A1") = Range("A1")
End If
End Sub -
válasz
pitman
#14342
üzenetére
Ezt csak makróval lehet.
Amice
Function FSCD_Generator() As Variant
Dim NumberOfDigits As Integer, RNDRange As Integer, MyIndex As Integer
Dim MyDigits As Variant, MyNumber As Variant
MyDigits = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
'Hány számjegyű legyen a generált szám
'(10 számjegyűnél nem lehet több, mert akkor biztosan ismétlődik legalább 1 számjegy)
NumberOfDigits = 8
If NumberOfDigits < 1 Or NumberOfDigits > 10 Then
FSCD_Generator = "A számjegyek száma 1 és 10 közé kell, hogy essen!"
Exit Function
End If
RNDRange = UBound(MyDigits)
MyNumber = ""
For i = 0 To NumberOfDigits - 1
MyIndex = WorksheetFunction.RandBetween(0, RNDRange)
MyNumber = MyNumber + MyDigits(MyIndex)
If MyIndex <> RNDRange Then
For j = MyIndex To RNDRange - 1
MyDigits(j) = MyDigits(j + 1)
Next j
End If
RNDRange = RNDRange - 1
Next i
FSCD_Generator = MyNumber
End Function -
-
válasz
lacid90
#14331
üzenetére
Valószínűleg a munkafüzetben található makró(k) dolgoziz/dolgoznak olyan cellával, amelyeket levédtél. Ha ez a szitu, akkor ezt a "logikai buborékot" csak Te tudod feloldani, azaz át kell írni a makróban azokat a sorokat, amelyek védett cellával dolgoznak úgy, hogy a művelet idejére makróval feloldod, majd a művelet befejeztével makróval újra engedélyezed a védelmet/zárolást.
-
-
válasz
bozsozso
#14312
üzenetére
Az FKERES függvénynek van egy 4. paramétere is, egy logikai érték(IGAZ vagy HAMIS) amit jól láthatóan nem használsz. Ez határozza meg, hogy pontos egyezéssel keressen avagy másképp.
HAMIS esetén pontos egyezéssel keres, ha így nincs találat, akkor #HIÁNYZIK értéket adja.
IGAZ esetén (vagy ha elhagyod 4. paramétert), akkor is pontos egyezéssel keres, de ha így nincs találat, akkor közelítő egyezéssel keres tovább és a keresési értékhez "legközelebbi" értékkel tér vissza.Leegyszerűsítve, használd így (a példádnál maradva):
=FKERES(B2;'[1.táblázat.xls]Munka1'!$B$2:$F$83;2;HAMIS) -
válasz
lacid90
#14269
üzenetére
Ha úgy érted, hogy az újonnan beszúrt sor és B oszlop metszéspontjába kell a csillag, akkor
Private Sub CommandButton1_Click()
ActiveCell.Offset(1).EntireRow.Insert
Range("B" & ActiveCell.Row + 1) = "*"
End SubHa az aktuális cella sorának és B oszlopának metszéspontjába kell a csillag, akkor töröld ki a makróból a + 1-et.
-
-
válasz
vzsryl
#14239
üzenetére
Ha valóban az Excel 2003 limitációjából adódóan van jelen ez a jelenség, akkor csak annyit lehet tenni, hogy 2007/2010 Excelbe betölteni ezt a méretes xls-t, majd xlsx-ként menteni, majd feltelepíteni azt a csomagot, amit linkeltem és úgy (elméletileg) az Excel 2003 is tudja kezelni. Másik alternatív lehetőség, hogy megpróbálni LibreOffice-al megnyitni az eredeti xls-t, hátha nincs olyan nagyon speciális formázás vagy egyéb, ami miatt hibásan vagy egyáltalán ne tudná a Libre kezelni. (nyilván ha makrót is tartalmaz, az már kizáró ok)
-
válasz
vzsryl
#14237
üzenetére
Túl méretes az a fájl, valószínűleg az Excel 2003-ban érvényes valamelyik limitációt átlépte a munkafüzet tartalma. Hogy melyiket, azt nem lehet megmondani, pl lehet, hogy több mint 65536 sor van benne (pl korábban(amikor még meg lehetett nyitni) nem volt ennyi csak bele "tettél" bele többet stb stb)
Excel(2003) specifications and limitsSzóval egy 2007-el vagy újabbal kellene megnyitni, legalábbis ha szerkeszteni is kellene, akkor mindenképp vagy ezzel is megpróbálkozhatsz: [link]
-
válasz
desirehd
#14225
üzenetére
Korábbi képletben az A:A és B:B teljes oszlopot jelöli, persze hogy nem működik a képlet, egy ilyen felépítésű munkalapon, ahogy a képeden látszik(van fejléce, nem a teljes oszlop kell, stb), nyilván tartományt kell használni.
(Az már csak hab a tortán, hogy a képeden nem látok fizetést)

-
válasz
desirehd
#14222
üzenetére
Pl A oszlopban a kor, B oszlopban a fizetések, és a 40 évesek fizetésének átlagára van szükséged, akkor
=ÁTLAGHA(A:A;"=40";B:B)
dobri320
makróban nem lehet a magyar függvény nevekkel hivatkozni, azaz a kódodban a SZUM helyett SUM kell. A másik, hogy a .Value helyett a .Formula-t használd. -
-
válasz
joefasalasso
#14210
üzenetére
Ha minden sorban ugyanazon 2 oszlophoz tartozó cellát kell összeszorozni, az egyszerűen kivitelezhető. Pl A-tól F oszlopban vannak az érintett sorok, akkor a G1-es cellába beírod, hogy =A1*B1 és egérrel lemásolod. (Természetesen igényednek megfelelően módosítod a képletet)
psg5
Szívesen.
-
"Darabteli vagy sima Sum fügvénnyel érdemesebb megoldani? Mi a fő különbség?"
Ilyen infókhoz használd az Excel súgóját, vagy Google-t, mert alapinformációk.
SZUM vs. DARABTELI"Ha egy excelben egy fülön megcsináltam minden (képletek benn) akkor hogyan tudom azt másik 12 fülre másolni, hogy a hivatkozások is megfelelően változzanak?"
Átmásolod a képletet a másik munkalapokra majd az adott munkalapon CTRL+H (csere) és a Munkafüzet1-et lecseréled Munkafüzet2-re"Állítólag csak a excel 2007-ben lehet megoldani, hogy csukott excelekből is nyerjen adatokat, régebbi verziónál csak 255 karakterig megy ez?"
Erről nem tudok, majd ha benéz Delila_1, Ő talán tud rá mit mondani, mert Ő még használ 2003-at. (ha nem tévedek)Ez a "255-ig megy ez" nem teljesen világos... (Ha Windows rendszerben a maximális karakterek száma a fájlnévben-re gondolsz, az nem Office függő)
-
-
1. Először is minden munkafüzet legyen abban a könyvtárban, ahol használni szeretnéd (ne utólag kerüljön át másik mappába)
2. Nyisd meg/hozd létre azt a munkafüzetet, amiben a másik 3 munkafüzet adatait szeretnéd egyesíteni
3. Nyisd meg a 3 munkafüzetet is
4. Hozd létre a szükséges, működő képleteket és zárd be a 3 munkafüzetetMegfigyelheted, hogy amíg a 3 munkafüzet meg volt nyitva, addig az Excel a képletekben csak a munkafüzet neveit jelölte, az útvonalukat nem. Viszont ha bezárod a 3 munkafüzetet, akkor az Excel automatikusan kibővíti a képletekben az útvonallal is.
Így mentsd el az összesítő munkafüzetet.
-
-
-
"Azt kellene megoldani, hogy a három másolat adatait egybe, összeadva rakni, ugyanolyan struktúrába, ugyanúgy mindegyik fülön megjelenjenek."
Mármint egy 4. munkafüzetbe? (pl van munkafüzet1.xls/munkafüzet2.xls/munkafüzet3.xls és egy pl munkafüzet4.xls-ben összesítse az adatokat?) -
válasz
Metathrone
#14150
üzenetére
A példád alapján írd le, ha FKERES lenne a függvény, akkor mit keresnél és milyen tartományban.
-
válasz
bozsozso
#14147
üzenetére
Public Sub FSCD_Summary_Bozsozso()
Dim MyCurDate As Range
Dim MySrcStartCell As Range, MyDestStarCell As Range
Dim MySrcWS As Worksheet, MyDestWS As Worksheet
Dim MyFXs As WorksheetFunction
Set MyFXs = Application.WorksheetFunction
'MUNKALAP neve, amely a jelenléti ívet tartalmazza
Set MySrcWS = Worksheets("Jelenléti")
'MUNKALAP neve, amelyen az összesítés található
Set MyDestWS = Worksheets("Összesítő")
'A jelenléti munkalapon találhat IDŐCELLA címe
Set MyCurDate = MySrcWS.Range("$A$2")
'Jelenléti munkalapon ettől a cellától kezdődnek az adatok
Set MySrcStartCell = MySrcWS.Range("A9")
'Összesítő munkalapon ettől a cellától kell bemásolni az adatokat
Set MyDestStarCell = MyDestWS.Range("A1")
j = 0
For i = 0 To Day(MyFXs.EoMonth(MyCurDate, 0)) - 1
If Not IsEmpty(MySrcStartCell.Offset(i, 13)) Then
MyDestStarCell.Offset(j, 0).NumberFormat = "yyyy-mm-dd"
MyDestStarCell.Offset(j, 0) = Format(MyCurDate, "yyyy-mm-") & Format(i + 1, "00")
MyDestStarCell.Offset(j, 1) = MySrcStartCell.Offset(i, 13)
MyDestStarCell.Offset(j, 4).NumberFormat = "[h]:mm"
MyDestStarCell.Offset(j, 4) = Format(MySrcStartCell.Offset(i, 2), "0:") & Format(MySrcStartCell.Offset(i, 3), "00")
MyDestStarCell.Offset(j, 5).NumberFormat = "[h]:mm"
MyDestStarCell.Offset(j, 5) = Format(MySrcStartCell.Offset(i, 4), "0:") & Format(MySrcStartCell.Offset(i, 5), "00")
MyDestStarCell.Offset(j, 6) = MySrcStartCell.Offset(i, 11)
j = j + 1
End If
Next i
End SubAz összesítő munkalap tartalmát nem törli a makró, mert a korábbi kép alapján nem tudhattam, hogy az összesítő munkalapon vannak-e még más adatok is, ezért a makró futtatása előtt manuálisan töröld az összesítő munkalapon lévő adatokat.
-
válasz
bozsozso
#14145
üzenetére
Remélhetőleg jól értettem és meg is felel (makró nélkül). Maradva a korábbi képednél, az alapján vannak a képletekben a hivatkozások. Ha nem jó cellára lenne a hivatkozás, akkor majd módosítod, ahogy megfelel.
Összesítő munkalap A9 képlete
=SZÖVEG(Jelenléti!$A$2;"éééé-hh-")&CSERE(Jelenléti!A24;HOSSZ(Jelenléti!A24);1;"")Összesítő munkalap E9 képlete
=SZÖVEG(Jelenléti!C24;"?0") &":" & SZÖVEG(Jelenléti!D24;"00")Összesítő munkalap F9 képlete
=SZÖVEG(Jelenléti!E24;"?0") &":" & SZÖVEG(Jelenléti!F24;"00")Összesítő munkalap G9 képlete
=Jelenléti!L24Az összes képlet másolható egérrel, ameddig szükséges
Nem tudom, hogy egyre gondoltunk-e, majd megnézed és írsz, ha valami nem kóser.
-
válasz
bozsozso
#14142
üzenetére
Ez azért nagy segítség, mert szvsz a korábbi leírásod alapján ilyen felépítésű munkalapra nem gondoltam volna.

Ennek kivitelezéséhez alapvetően nem kellene makró, csak akkor ha a jelenléti munkalapban fontosak az üres sorok és az alsó munkalapban meg ne szerepeljenek.
Ha a jelenléti munkalapból mellőzhetőek az üres sorok vagy az alsó munkalapba meg bekerülhetnek az üres sorok, akkor nincs szükség makróra.
Akárhogy is, egy infóra viszont mindenképp szükség van, nevezetesen hogy melyik év, melyik hónapjáról van épp szó. (mert ezt nem látom a képen, csak azt, hogy a jelenléti munkalap A oszlopa funkcionál a napok jelzésére)
-
-
-
-
Ráállsz a cellára, ami legördülőként üzemel és újra az érvényesítést választod és ott lesz a tartomány.
Ilyen esetekben érdemesebb lehet a tartománynak nevet adni és az érvényesítésnél tartománynevet megadni a tartománynak. Ennek az az előnye, hogy a tartományneveket nyilvántartja az Excel, ki lehet listázni és módosítani is lehet rajta, ezáltal minden objektum, ami az adott tartománynevet használja tartományként, annak automatikusan megváltozik a tartománya. (De sok tartomány van ebben a mondatban)

Gyakorlatban, miről is írtam:
1. Tartomány elnevezése
2. Érvényesítés->tartomány a tartománynév
3. Névkezelő (képletek fül/Definiált nevek csoport/Névkezelő)
4. Az 1. pontban létrehozott tartománynév tartományának módosítása -
-
-
-
-
-
-
-
válasz
csferke
#13932
üzenetére
Remélem jól értettem, azaz az A3-ban lévő napok számához kell hozzáadni 0,5-t vagy 1-et, attól függően, hogy A1 és A2 dátum közt eltelt hónapok száma 8 és 12 közé esik avagy 12-nél több...
Ha jól értettem, akkor A4 képlete
=HA(DÁTUMTÓLIG(A1;A2;"m")<8;A3;HA(ÉS(DÁTUMTÓLIG(A1;A2;"m")>=8;DÁTUMTÓLIG(A1;A2;"m")<12);A3+0,5;A3+1))
-
válasz
hallgat
#13929
üzenetére
Sheets("Munka1").Range("B1:T1").Copy
Sheets("Munka2").Range("L2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
usor = Sheets("Munka2").Range("A1").End(xlDown).Row
Sheets("Munka2").Activate
Sheets("Munka2").Range("L2:L20").Copy
Sheets("Munka2").Range("L21:" & "L" & usor).Select
ActiveSheet.Paste
Application.CutCopyMode = False
usor = Sheets("Munka2").Range("A1").End(xlDown).Row
Sheets("Munka2").Range("L" & usor).Select
Dim i As Integer
For i = usor To 2 Step -1
If IsEmpty(Sheets("Munka2").Cells(i, 14)) Or (Sheets("Munka2").Cells(i, 14)) = 0 Then
Sheets("Munka2").Rows(i).Delete
End If
Next i -
-
-
-
"Valahogy úgy gondoltam, hogy behelyettesíti a cellákba pl 68/H -->2,1, de úgy, hogy a 68/H maradjon-látszodjon a sorban."
68/H esetén lehet számolni 2,1-el, FKERES() függvény lehet segítségűl hívni. Nekem viszont az nem világos, hogy a B1/C1/D1/E1/F1 cellák mi alapján tartalmazzák azt, amit? -
-
-
-
válasz
VANESSZA1
#13859
üzenetére
Azt nem tudom, hogy miért jelenik meg Nálad a #NÉV, de végül is mindegy, mert thee megoldása (segítőszándéka ellenére) sajnos nem kezeli le, hogy 2x (vagy többször) ne fordulhasson elő ugyanaz a szám.
Nem kellett sokszor újraszámoltatni, hogy előjöjjön a hiba: 2x "húzta ki" a 20-as számotMakró nélkül annyit lehet tenni, hogy E3/F3/G3/H3/I3 cellákba az alábbi képlet kerüljön
=VÉLETLEN.KÖZÖTT($B$3;$B$92)
majd ezt követően pl a J3 cellába meg ez (ez ellenőrzi, hogy csak 1x lehessen 1 szám)
=HA(DARABTELI($E$3:$I$3;$E$3)+DARABTELI($E$3:$I$3;$F$3)+DARABTELI($E$3:$I$3;$G$3)+DARABTELI($E$3:$I$3;$H$3)+DARABTELI($E$3:$I$3;$I$3)=5;"Rendben, 5 különböző szám";"Egyik szám többször fordul elő, nyomjon F9-t!")
-
válasz
terencehill
#13845
üzenetére
Áhhh...
Bocsesz, hibakezeléssel szórakoztam, aztán elbaszarintottam a dolgot, azért olyan hosszú a D2 képletet, ráadásul tömbképlet is felesleges....Szóval D2-be
=HA(C2="";"";SZUMHA($A$2:$A$7;C2;$B$2:$B$7))
Ezt meg lemásolod, ameddig C oszlopban vannak adatok (de addig is lemásolhatod, ameddig A oszlopban vannak adatok), mindegy.
Még egyszer elnézést...

-
válasz
terencehill
#13843
üzenetére
1. Ne beírd, hanem másold be a PH!-s hozzászólásomból a képletet (egyszerűbb is, meg úgy legalább nem lehet elhibázni a dolgot, főleg ilyen hosszabb/összetettebb képlet esetén)
2. A CTRL+SHIFT+ENTER-t nem használtad(csak így lehet tömbképletet bevinni), mert a cella képlete "kacsacsőrű" zárójelek közé kell, hogy kerüljön, és Nálad jól látszik képen, hogy ez nem történt meg.Lépésről-lépésre: A korábbi hozzászólásomban egérrel kijelölöd a C2 cella képletét, jobb egér/másol, Excel-ben C2 cellára állsz, megnyomod az F2-t, jobb egér/beillesztés és CTRL+SHIFT+ENTER. Ugyanezt eljátszód a D2 cellába kerülő képlettel is.
-
válasz
terencehill
#13839
üzenetére
C2 cellába
=HAHIBA(INDEX($A$2:$A$4;HOL.VAN(0;DARABTELI($C$1:C1; $A$2:$A$4);0));"")
majd CTRL+SHIFT+ENTER és lemásolod a C2 cellát, amíg A és B oszlopban vannak adatok
D2 cellába
=SZUM(HA(HA(HOL.VAN($A$2:$A$4; $A$2:$A$4; 0)=(SOR($A$2:$A$4)-SOR(A2)+1); (SOR($A$2:$A$4)-SOR(A2)+1); 0)<>0; $B$2:$B$4; ""))
majd CTRL+SHIFT+ENTER és lemásolod a D2 cellát, amíg C oszlopban vannak adatok
Mindez képben: [link]
-
-
-
válasz
lacasd
#13820
üzenetére
Ezt a feladatot 2 módszerrel lehet kivitelezni, az egyik, a mappabejárással(végigszaladni a mappaszerkezeten az adott fájlokat megnyitni, majd átmásolni a megfeleő cellákat9, a másik módszer meg az, ha a makró külső cellahívásokat generálja le. Ez utóbbi az egyszerűbb, én most ezt választom inkább, meglátjuk bírja-e a géped (hisz többszáz külső hivatkozást fog elhelyezni az adatok.xlsx-be)
Viszont lenne pár dolog
1. "2011okt, 2011nov, 2011dec, ..., 2012maj"
A 2012maj arról lemaradt az ékezet, vagy tényleg ez a neve a mappának?
Kérdem azért, mert az Excel rövid formátumban így tárolja a hónapokat: [link]
(Akkor még ehhez is kell külön kód, hogy átalakítsa)2. "Ugyanakkor 2012.01.01-től a GAL filenvű fileokból az L5,L6,L7,L8,L9 cellákat az adatok.xlsx H,I,J,K,L oszlopába kell másolni."
Ez úgy értendő, hogy csak és kizárólag 2012 évi dátumok esetén kellenek a plusz cellák, avagy jövőre is? (Feltételezem H5/I5/J5/K5/L5 cellák értendők itt is)3. melyik nap legyen az utolsó nap, az épp aktuális nap, vagy az egyel előtti?
(Lehet, hogy aznap még nincsenek kész a GM4 és GAL fájlok) -
Ha valóban üres és nincs rá szükség a personal.xlsb, akkor először az adott munkafüzet-ben töröld a makrók közül, mentsd a munkafüzetet, majd fájlkeresővel keress rá és egyszerűen töröld le.
lacasd
Végül is kivitelezhető, de ehhez idő kell, mert összetett a dolog. Mondjuk biztos meg van az oka, hogy miért kell ennyire szétszabdalni (ennyi külön fájlban tárolni) dolgokat.
Ha a GAL és GM4 felépítése azonos, akkor rég le kellett volna egyszerűsíteni a dolgot, ugyanis akkor 1 darab fájlban elférne minden, abból meg kimutatással szinte bármi elkészíthető. -
válasz
concret_hp
#13811
üzenetére
A makró
Public Sub FSCD_concret_hp()
Dim MySum As Long
Dim MyRange_1 As Range
Dim MyRange_2 As Range
Dim MyRange_3 As Range
Set MyRange_1 = Range("A1")
Set MyRange_2 = Range("B1")
Set MyRange_3 = Range("C1")
If MyRange_1.Offset(MyRange_1.End(xlDown).Row - 1, 0) Then
MsgBox ("A(z) " & MyRange_1.Address & " oszlop utolsó cellájának értéke 0 kell, hogy legyen!")
Exit Sub
End If
MySum = 0
For i = 0 To MyRange_1.End(xlDown).Row - 1
If MyRange_1.Offset(i, 0) Then
MySum = MySum + MyRange_2.Offset(i, 0)
MyRange_3.Offset(i, 0) = ""
Else
MySum = MySum + MyRange_2.Offset(i, 0)
MyRange_3.Offset(i, 0) = MySum
MySum = 0
End If
Next i
End SubA makró eredménye [link]
Megjegyzés
Az oszlop, amelyek a 0-kat is tartalmazzák nem tartalmazhat üres cellát. -
válasz
concret_hp
#13801
üzenetére
-
válasz
LonGleY
#13797
üzenetére
Nem kell ehhez külön program, csak egy makró, amit akkor futtatsz le manuálisan, miután kijelölted pl az egész munkalapot vagy annak egy részét stb.
Sub TRIM_em_ALL()
Dim MyCells As Range
For Each MyCells In Selection.Cells
MyCells = trim(MyCells)
Next MyCells
End SubRemélem működik, nem vagyok Excel közelben éppen...
-
válasz
LonGleY
#13787
üzenetére
Igen, ebben teljesen igazad van, volt már ebből gond itt a topikban, olyan értelemben, hogy készítettem valakinek egy makrót, amiben ismétlődő karaktereket kellett lecserélni, köztük szóközöket is, pl 2/3/4 szóközt 1 szóközre és amikor FF-el illesztettem be a makrokódot, akkor az FF az egymás utáni szóközöket lecserélte " "-re, ami nyilván a makró hibás működéséhez vezetett. Ez már régebben volt, de azóta ügyelek arra, hogy makrót csak Dragon-ból illesszek be.
Az viszont "gond", hogy Nálad nem csak a böngészőbe csapódik hozzá a plusz space, hanem bármibe beillesztve, mert nálam nem, nálam csak a Dragon esetén, más alkalmazásoknál nem. Természetesen egyszerűbb ha erre a célra munkába fogod a FireFox-ot...
-
válasz
LonGleY
#13785
üzenetére
Igen, az van, ami várható volt, csak a drgonba illsztve dobja hozzá a space-t, IE/FF-nél nem.
A chrome topikban is érdeklődtem, ezt a pár hsz-t olvasd át, mert ott a Skype-t is megemlítették, mint lehetséges "bűnöst", hátha érintett vagy a dologban. Nálam nincs (és nem is volt soha) Skype, csak a Dragonba beillesztve van a jelenség, wordpad vagy word stb esetén nincs. -
válasz
LonGleY
#13783
üzenetére
"Tán az számítana, hogy a gépemen megtalálható a Chrome, még ha nincs is megnyitva?.."
Ilyenről nem tudok. Ha van rá lehetőség, akkor küld el a mail-emre a táblázatot, elég ha csak egy oszlop marad benne, csak az olyan legyen, amiben gond van az adatokkal és akkor ránézek. -
-
válasz
Virag.h
#13770
üzenetére
Parancssorból megoldható, indítsd a parancssort (start, keresőbe cmd és enter, XP esetén start/futtatás cmd és enter), majd add ki az alábbi parancsot
dir c:\users /AD /B /S >d:\dirlist.txt
Ez a parancs a c:\users mappában található összes mappát és almappát kimenti a d:\dirlist.txt fájlba, amit utána megnyithatsz az Excel-el. Természetesen a saját igényed szerint módosítsd, hogy melyik mappáról és hova/milyen nevű fájlba mentse a mappalistát. a DIR parancsról a DIR /? segítségével kaphatsz több infót.
Új hozzászólás Aktív témák
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Fallout 4 Pip-Boy Edition eladó
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem.
- Játékkulcsok ! : PC Steam, EA App, Ubisoft, Windows és egyéb játékok
- The Elder Scrolls Online Imperial Collector s Edition
- Samsung Galaxy Z Flip5 512GB,Újszerű,Adatkabel,12 hónap garanciával
- ÁRGARANCIA!Épített KomPhone i5 12400F 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- GYÖNYÖRŰ iPhone 15 Pro Max 256GB White Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS4694
- Használt számítógépek/merevlemezek számlával, garanciával! Ingyen Foxpost/PostaPont!
- Szuper áron eladó dobozos Asus Vivobook 16 /Ryzen 5-7530U/16 GB RAM/256 GB SSD/FHD+/IPS/16"/Gari/
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



![;]](http://cdn.rios.hu/dl/s/v1.gif)


Bocsesz, hibakezeléssel szórakoztam, aztán elbaszarintottam a dolgot, azért olyan hosszú a D2 képletet, ráadásul tömbképlet is felesleges....
Fferi50