- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- GoodSpeed: AOMEI Backupper Professional Edition: Lifetime Subscription
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- sh4d0w: Netflix? Ugyan, VW előfizetés!
- LordAthis: AI Kérdés érkezett - 3600 soros Spagetti kód refaktorálása és budget
- Elektromos rásegítésű kerékpárok
- eBay-es kütyük kis pénzért
- Tutti Georg: A Microsoft 2025. augusztusi biztonsági frissítései hibásak
-
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
m.zmrzlina #30392 üzenetére
Változóként soha ne adj olyan nevet, ami VBA kulcsszó (for, with, range, on, else, string, not, do, loop ...).
A kulcsszavakat a VBE – ha az eredeti színbeállításodat tartottad meg – sötétkéken jeleníti meg. -
Delila_1
veterán
válasz
EmberXY #30395 üzenetére
Eddig észre sem vettem ezt a státuszsori kiírást.
Különböző adatok lekérdezése a Munka1 lapra:
Sub adatok()
With Munka1.Range("A1")
.Offset(0, 0).Value = Environ("username") 'F felhasználó neve
.Offset(1, 0).Value = Environ("computername") 'PC neve
.Offset(2, 0).Value = Environ("userdomain") 'felh. domain
.Offset(3, 0).Value = Environ("sessionname") 'berendezés
.Offset(4, 0).Value = Environ("PROCESSOR_ARCHITECTURE") 'proci tip.
.Offset(5, 0).Value = Environ("PROCESSOR_IDENTIFIER") 'proci azonosító
.Offset(6, 0).Value = Environ("NUMBER_OF_PROCESSORS") 'procik száma
End With
End Sub -
EmberXY
veterán
válasz
ny.janos #30384 üzenetére
Köszönöm, de egyelőre a RÉSZÖSSZEG tökéletesen megfelel, mert kizárólag számadatok kerülnek a cellákba, és nem is túl gyakran bővül a táblázat, ezért a hibalehetőség minimális.
Viszont lenne megint egy kérdésem, ami foglalkoztat: amikor egy cellához megjegyzést fűzök, akkor a dokumentum "készítőjének" nevét is odateszi, a megjegyzésben ki lehet törölni, de a megjelenítésekor ugyanúgy látszik az állapotsoron, hogy "ki írta" a megjegyzést, viszont a dokumentumot már nem ő kezeli, ezért zavaró. Ezt valahogy el lehet tüntetni? Egyáltalán a dokumentum ilyen jellegű adatait hol lehet megnézni?
Köszönöm előre is. -
bsh
addikt
válasz
m.zmrzlina #30392 üzenetére
beírsz a kódba egy olyan sort, hogy "Dim Range" (Range nagy betűvel), ekkor elvileg az editor automatán átváltja nagybetűsre az összes range-et. ezután ki is törölheted a "dim Range" sort. ennyi.
ez a kisbetűsség azért (is) lehet, mert valahol valamikor valamiért akár véletlenül definiáltál egy kisbetűs "range" nevű valamit, ami már lehet azóta nincs is benne a kódban, de még az editor emlékszik rá. ez okozhat problémákat is akár, mert kitudja így most mi az a "range"? (option explicit javasolt)
de ez csak egy tipp, egy próbát megér. -
csferke
senior tag
válasz
Delila_1 #30358 üzenetére
A =SZUM(B:B) képlet a B oszlop adatait összegzi, az adatok darabszámától függetlenül.
Nálam ez a képlet =SUM(H4:H508)/1000, Excel 2007.
Ha átírom =SUM(H:H)/1000 akkor "Circular Reference Warning" hibát jelez
ha =SUM(H4:H)/1000 akkor #NAME? hibát jelezMit csinálok rosszul?
-
ny.janos
tag
válasz
komyka #30386 üzenetére
Ha a szövegből oszlopok menüpontot használod, akkor sajnos akkor is dátumként értelmezi a ponttal elválasztott értékeket, ha egyébként a sorbontás előtt szöveg formátumot adsz az oszlopoknak.
Ha fix hosszúságúak a kódjaid egyes elemei, akkor használd a szövegből oszlopok menü helyett a JOBB, BAL, és KÖZÉP függvényeket, azzal nem lesz ilyen gondod.A másik lehetőség, hogy a pontot cseréled vesszőre a HELYTTE függvénnyel (ha mind cserélhető, akkor a Ctrl+H billentyűkombináció gyorsabb), és utána bontod a sorokat oszlopokká.
-
komyka
tag
Sziasztok! Egy olyan problémám lenne, hogy egy egy oszlopban lévő fix széles kóódot szeretnék több oszlopra tördelni. Pl.: xxxx-yyy-1 1.3 qqq. Az xxxx-yyy-1 és a qqq részekkel nincs gond, viszont az 1.3 valamiért dátumként jelenik meg, viszont nekem az eredeti formátumra lenne szükségem, lévén ez egy átmérő méret lenne. Mit csinálok rosszul?
-
ny.janos
tag
válasz
Sweetraver #30372 üzenetére
Ez a kérdés már engem is foglalkoztat, de Delilához hasonlóan én sem egészen értem, hogy mit szeretnél.
A leírásod alapján kézzel adod meg A B és D oszlopokat, a C-t pedig FKERES-sel határoztad meg (D-t keresed A oszlopban, eredményt a B-ből kéred). Eddig azt hiszem értem.
Azt írod azonban, hogy D oszlopot is keresni szeretnéd, a kérdés, hogy honnan? Merthogy annak értékét (főnök) a gép nem fogja kitalálni magától. Honnan tudná ez a szerencsétlen excel, hogy Kiss Gézának Szabó Pál a főnöke? Vagy van segédtáblád ehhez, amiről nem írtál? C-ből nem tudod a D oszlop kódját keresni, mert körkörös hivatkozást hozol létre… -
ny.janos
tag
válasz
EmberXY #30363 üzenetére
Delila válaszát kiegészíteném azzal, hogy egy lépéssel fejlettebb függvény a RÉSZÖSSZEG helyett az ÖSSZESÍT függvény, de csak a 2010-es és újabb excelben használható. Előnye, hogy az összegzendő adatok között akár hibaérték is lehet, nem kapsz hibaüzenetet az összeg helyett.
Hátránya mindössze annyi, hogy ránézve a függvényre magára, nem tudod, hogy az mit számol, ahhoz illetve magához a használatához is szinte elengedhetetlen a súgó. De az előnye mindenképpen a használata mellett szól.
Itt találsz róla egy leírást és videót. -
bsh
addikt
válasz
m.zmrzlina #30373 üzenetére
azért dobja a hibát, mert a Cells() nincs explicit kvalifikálva (vagy hogy híjják ezt magyarul?), így az az activesheet.cells()-re vonatkozik. magyarán kábé így kell használnod:
Set tartomany = ThisWorkbook.Worksheets(1).range(ThisWorkbook.Worksheets(1).Cells(2, 3), ThisWorkbook.Worksheets(1).Cells(int_usor, int_uoszlop))
a kisbetűs range-re meg írtam már, mit lehet ellene tenni. az nem segített?
-
Delila_1
veterán
válasz
Sweetraver #30372 üzenetére
Próbálom kitalálni, mit is szeretnél. Ha a főnök nevét akarod beíratni a C oszlopba, akkor a C2 képlete
=INDEX(A:B;HOL.VAN(D2;A:A;0);2)
Ezt másolhatod lefelé.
-
Delila_1
veterán
válasz
m.zmrzlina #30378 üzenetére
A címet adja vissza, mégpedig $ jelekkel együtt, fixen.
-
Delila_1
veterán
válasz
Sweetraver #30372 üzenetére
Egyik mondatoddal felülírod a másikat.
"a D oszlop adatait alapból kézzel írom be"
"alapból megvan az A, B és a D"
" Azt szeretném látni a D1-es cellában, hogy =a2"Ha a D-be kézzel viszed be az adatot, akkor minek a képlet? Ha képlet van, minek a kézi bevitel?
Sehogy sem értem, mit akarsz csinálni, de a sort megadja a HOL.VAN függvény. Az oszlop betűjele pedig
=karakter(oszlop()+65) -
Delila_1
veterán
válasz
m.zmrzlina #30373 üzenetére
Sub valogat()
Dim int_usor As Integer, int_uoszlop As Integer, int_vege As Integer
Dim cella As Range, tartomany As String
int_usor = 135: int_uoszlop = 50: int_vege = 2
tartomany = Range(Cells(2, 3), Cells(int_usor, int_uoszlop)).Address
For Each cella In Sheets(1).Range(tartomany)
If cella.Interior.ColorIndex = 6 And cella.Value <> "" And Application.WorksheetFunction.CountIf(Worksheets("csatorna").Range("D2:D50"), cella.Value) = 0 Then
Worksheets("csatorna").Cells(int_vege, 4).Value = cella.Value
int_vege = int_vege + 1
End If
Next
End SubA tartomany változó string legyen, ne range. Nézd meg a for each sort is.
A Dim sorokat érdemes mindig a makró elejére tenni egy kupacba, akkor egy hosszabb makróban könnyű megtalálni. Betettem a cella változót is oda, azt nem dimenzionáltad.
-
mntn
tag
Még lenne egy olyan kérdésem, hogy adott napra lehet feltételesen formázni? Oszlopban előre beírt dátumok (2016.02.05, 2016.04.03 ...), és amikor arra a napra érünk akkor jelölje színnel.
-
m.zmrzlina
senior tag
válasz
Delila_1 #30355 üzenetére
Köszi Delila és bocs hogy feleslegesen dolgoztál de nem igazán volt időm részletekbe menően leírni mit akarok. Most kivettem a teljes makróból azt a részletet ami problémás, hogy ne zavarjon hogy mit deklaráltam korábban és hogyan. Így néz ki:
Sub valogat()
Dim int_usor As Integer, int_uoszlop As Integer, int_vege As Integer
int_usor = 135
int_uoszlop = 50
int_vege = 2
'ThisWorkbook.Worksheets(1).Activate
Dim tartomany As range
Set tartomany = ThisWorkbook.Worksheets(1).range(Cells(2, 3), Cells(int_usor, int_uoszlop))
For Each cella In tartomany.Cells
If cella.Interior.ColorIndex = 6 And cella.Value <> "" And Application.WorksheetFunction.CountIf(Worksheets("csatorna").range("D2:D50"), cella.Value) = 0 Then
Worksheets("csatorna").Cells(int_vege, 4).Value = cella.Value
int_vege = int_vege + 1
End If
Next
End SubA makrórészlet feladata az hogy gyűjtse ki az első munkalap egy adott tartományában /range(Cells(2, 3), Cells(int_usor, int_uoszlop))/ a sárga cellaháttérrel jelölt cellákból az ott előforduló összes cellaértéket és készítsen egy listát a "csatorna" nevű munkalap D oszlopába. Természetesen ha a cellaérték a tartományban 50-szer fordul elő a listában akkor is csak egyszer szerepeljen. /ezért van a CountIf a feltételek közt/
A makró működik is ha a kikommentezett sor benne van. Ha azonban nincsen benne akkor a Set tartomany = stb... sornál Application-defined or object-defined errorral kiakad.
Szóval a kérdés az, hogy hogyan lehet megszabadulni a vizsgálandó tartományt tartalmazó munkalap aktiválásától?
Ja és a range ebben a munkafüzetben lévő összes előfordulásánál kisbetűs.
-
Sweetraver
csendes tag
válasz
Delila_1 #30370 üzenetére
Köszönöm, de sajnos ez így nem jó.
Lehet nem volt érthető amit írtam.
Szóval a D oszlop adatait alapból kézzel írom be. Ebből keresi meg a C-t FKERES-sel.
Vagyis alapból megvan az A, B és a D. Ezek kézzel lettek beírva, nincs semmi képlet sehol.
Ami még igaz, hogy minden D érték szerepel az A oszlopban. Ezért kézzel egy sima =a1-es hivatkozással be tudom hívni, de ehhez ugye meg kell keresnem az A oszlopban ugyanazt a kódot.
Ehhez kellene valami képlet., hogy automatán bekeresse. Azt szeretném látni a D1-es cellában, hogy =a2, illetve ennek az értékét. Ezt most is látom, csak képlet nélkül. Így ha változik a kód, akkor a D nem változik. Azt szeretném, ha átrom az A-ban, akkor a D-is változzon. Ehhez kellene a hivatkozás bele.Addig eljutottam, hogy ki tudom iratni azt, hogy egy adott cella melyik oszlop és sorban van.
Márcsak egy keresés kellene bele.
=KARAKTER(OSZLOP(A1)+96) --> oszlop betűje
=SOR(a1) --> sor száma
Majd hozzáírok egy = jelet és összefűz. ÍGy megvan a hivatkozás az adott cellára.
Csakhogy így nem keresi még meg az A-ból.köszi
-
[HUN]Tyson
senior tag
válasz
PETEE78 #30340 üzenetére
Szia Peti!
Biztos láma vagyok, végigcsináltam amit írtál, de nagyon nem az lett a végeredmény, amit szerettem volna.
Az A oszlopban van 7015 email címem, a B-ben 1078, a C-be pedig szeretném átmásolni azt a 7015-1078=5937db címet, ami A-ban szerepel, de B-ben nem.
Az általad leírt lépések után 988db címet adott, olyanok is vannak benne, amik szerepelnek B-ben, tehát biztosan nem jó így.
Excel 2010
-
Delila_1
veterán
válasz
Sweetraver #30367 üzenetére
A D2 cella képlete =HAHIBA(INDEX(A:B;HOL.VAN(C2;B:B;0);1);"nincs"), ezt másold le a többibe alá.
EmberXY, mntn: szívesen.
-
Sweetraver
csendes tag
Sziasztok!
Egy képletre lenne szükségem, egy táblázathoz melyben szerepelnek kódok és nevek.
így néz ki kb.
A oszlop B oszlop C oszlop D oszlop
ABC111 Kiss Géza Szabó Pál BCE111
ABC112 Nagy Béla SZabó Pál BCE111
BCE111 Szabó Pál Horváth Tamás BCE211
BCE211Szóval az "A" oszlop a kódja az adott embernek, a "B" a neve, a "C" a felettesének a neve, a "D" pedig a felettesének a kódja.
Úgy van megcsinálva, hogy a C oszlop hivatkozik FKERES-sel a D-re, tehát ha megvan a kód akkor beírja automatán a C-t. Azonban szeretném kiváltani a D oszlop manuális beírását is. Vagyis a D-t hivatkozni az A-ra, tehát a D1 cellába azt beíratni, hogy =A3. Manuálisan elég sok idő lenne, mert nagy a táblázat.Tehát gyakorlatilag az lenne, hogy keresse meg a D oszlopban található kódot az A-ban és írja be a cellába, azt hogy A oszlop hányadik sor. (képletet) Ha lehet egyenlőségjellel.
Tudnátok ebben segíteni?
Vagy ha ezt nem lehet, akkor csak simán kiiratni a oszlop betűjét, sor számát?köszönöm
-
-
EmberXY
veterán
Sziasztok!
Olyan összeadás függvényt tudok csinálni, ami egy teljes oszlopot ad össze, tartománytól függetlenül? Tehát ahogy új adat kerül az oszlopba, azt is hozzáadná. Meg lehet ezt oldani, vagy mindenképp meg kell adni egy tartományt, pl egy jó pár ezer celláig, ami egy ideig biztosan elég?
Köszönöm előre is. -
Delila_1
veterán
A két képletben a B ill. az A elé tegyél $ jelet.
Mivel 2007 előtti verziójú Excelt használsz, nem tudod megadni a tartományt, de az A oszlop formátumát át tudod másolni a többi oszlopodra, pl. a formátumfestő ecset segítségével. Vagy másolod az A oszlopot, kijelölöd a többi oszlopot, jobb klikk, irányított beillesztés, formátum.
-
Delila_1
veterán
válasz
m.zmrzlina #30352 üzenetére
Most egy kicsit rendesebben írom be a két makrót. Tegnap siettem, és eléggé el nem ítélhető módon nem dekraláltam a változókat, ráadásul az idézett makrókat nem jelöltem programkódként. Bocsi.
Sub Adatok()
Dim Balfelső As String
Balfelső = "$B$2": Végrehajtás Balfelső
Balfelső = "$C$9": Végrehajtás Balfelső
End Sub
Sub Végrehajtás(Balfelső)
Dim sorok As Long, oszlopok As Long, Jobbalsó As String, cella As Range, osszeg
Dim ws_Kabelo As Worksheet
Set ws_Kabelo = Sheets("Kabelo")
sorok = 5: oszlopok = 4: osszeg = 0
Jobbalsó = ws_Kabelo.Range(Balfelső).Offset(sorok - 1, oszlopok - 1).Address
For Each cella In ws_Kabelo.Range(Balfelső & ":" & Jobbalsó)
osszeg = osszeg + cella
Next
ws_Kabelo.Range(Jobbalsó).Offset(1) = osszeg
End SubAz osszeg változónál nem adtam meg a típust. Közel sem biztos, hogy összegezni akarsz a ciklusban, és ha mégis, nem tudom, hogy egész-, vagy lebegőpontos értékeid vannak-e.
-
bsh
addikt
válasz
m.zmrzlina #30352 üzenetére
set terulet = worksheets(1).range(satöbbi)
a range kisbetűre váltás csak ebben a sorban van vagy mindenütt? esetleg tegyél be egy olyan sort, hogy "Dim Range" (nagybetűvel), és utána töröld ki ezt a sort.
-
m.zmrzlina
senior tag
válasz
Delila_1 #30343 üzenetére
Hogyan egészítem ki a terulet objektumváltozó deklarálását a példádban, hogy ne a ws_Kabelo munkalap objektumváltozón értelmezze a terulet változót hanem pl mindig az első munkalapon /Worksheets(1)/?
Még egy kérdés:
Van a kódszerkesztőben az a ficsör, hogy beírod kisbetűvel a parancssort és ha rendben van a szintax akkor a megfelelő kezdőbetűk nagybetűre váltanak.Az egy dolog, hogy ebben a sorban a range nem vált nagybetűre de ha beírom nagybetűvel akkor visszavált kisbetűre
-
Delila_1
veterán
Sub adatok()
Balfelső = "$B$2": Végrehajtás Balfelső
Balfelső = "$C$9": Végrehajtás Balfelső
End SubEz hívja meg a Végrehajtás makrót, átadva a kezdő cella címét
Sub Végrehajtás(Balfelső)
sorok = 5: oszlopok = 4: osszeg = 0
jobbalsó = Range(Balfelső).Offset(sorok - 1, oszlopok - 1).Address
For Each cella In Range(Balfelső & ":" & jobbalsó)
osszeg = osszeg + cella
Next
Range(jobbalsó).Offset(1) = osszeg
End SubA jobb alsó cella alá kiírattam a tartományok összegét.
-
Delila_1
veterán
kezdet = "$C$9"
Set terület = Range(kezdet).Offset(0, 0, sor - 1, oszlop - 1)Így próbáltam, de nem fogadja el. Munkalapon ez a C9-től a sor-1, oszlop-1 tartományra vonatkozik.
Ott az =ofszet(C9,0,0,sor-1,oszlop-1) a terület.
Például a =SZUM(OFSZET(B2;0;0;3;2)) képlet összegzi a B2:C3 tartományt. -
ny.janos
tag
Ha jól értelmezem, akkor
- A oszlop adott celláját jelölni szeretnéd, ha az abban szereplő dátum mai, vagy múltbeli.
- Ha B oszlopban szerepel dátum (azaz a termék beérkezett), akkor vegye le a jelölést A-ról (értelmezésem szerint esetedben mindegy, hogy időben érkezett be vagy sem, mert ha B-ben dátum van, akkor nem szeretnéd A-t színezni. Ha rosszul értelmeztem, szólj!)
- Értelemszerűen ne legyen színezve A, ha az nincs kitöltve (én ezt úgy készítettem el, hogy másik színnel jelöltem, mellyel figyelmeztet, hogy nem került kitöltésre).A feltételes formázással jelölendő tartományt kijelölöd A oszlopban, és az alább formázásokat adod meg (a sorrendre figyelj):
-
Delila_1
veterán
válasz
m.zmrzlina #30344 üzenetére
Próbálkoztam az offset-tel, de az nem jött össze, pedig elegánsabb lett volna.
-
Delila_1
veterán
válasz
m.zmrzlina #30341 üzenetére
Például
kezdsor = 9: kezdoszlop = 3
sorok = 5: oszlopok = 4
Set terület = Range(Cells(kezdsor, kezdoszlop), Cells(kezdsor + sorok - 1, kezdoszlop + oszlopok - 1))
For Each cella In ws_Kabelo.területC9 a bal felső cella, a vizsgálandó terület 5 sor és 4 oszlop.
-
ny.janos
tag
válasz
DrojDtroll #30336 üzenetére
Cellákat kijelölöd B3-tól jelölöd ki B52-ig, a képlet pedig az alábbi.
=$B2-$B1=$B$53
Ezáltal a B3 cellát formázza B2 alapján, B10-et B9 alapján stb. A lényeg az, hogy a kijelölt tartományodnál eggyel feljebb lévő cellát (esetedben eggyel és kettővel feljebb lévőt) hivatkozz a képletben. Ezáltal eredményül a képletnek eleget tévő cella alatti cellát formázod. -
m.zmrzlina
senior tag
válasz
m.zmrzlina #30335 üzenetére
Szóval az előbbi kérdésben leírt probléma megoldódott a For Each cella In ws_Kabelo.UsedRange.Cells használatával.
Tovább szeretném finomítani a dolgot hogy megadok egy szűkebb tartományt és csak ezen belül szeretnék kerestetni. Ha úgy csinálom pl hogy:
For Each cella In ws_Kabelo.Range("C2:AQ135").Cells akkor műdödik de mivel a kérdéses tartomány mindig más méretű ezért más módszerre van szükség.
Ismerem a tartomány bal felső celláját (ez mindig a C2) illetve integer tipusú változóban megvan, hogy hány sor hosszú és hány oszlop széles a tartomány amiben kerestetni akarok.
Ezek figyelembevételével hogyan adjam meg a For Each cella... sorban a tartomány határait.
-
PETEE78
senior tag
válasz
[HUN]Tyson #30338 üzenetére
szia!
adatok fül/szűrő/speciális.
más helyre másolja kijelöl
listatartomány, ha van fejléc a2:a8
szűrőtartomány b2:b8
hova másolja c2:c8majd c oszlop kijelöl fejléc nélkül.
ezután adatok fül ismétlődések eltávolítása
folytatja az aktuális kijelöléssel
ismétlődések eltávolítása gombennyi...
üdv,
Peti -
bsh
addikt
válasz
[HUN]Tyson #30338 üzenetére
adatok - rendezés és szűrés - speciális - irányított szűrés
-
[HUN]Tyson
senior tag
Üdv!
Egy igen egyszerű feladatot szeretnék megoldani, de csak bonyolultan sikerült, és biztos vagyok benne, hogy megy ez egyszerűen is.
A feladat: A és B oszlopban email címek vannak. C oszlopban szeretném kilistázni A azon elemeit, amelyek nem szerepelnek B-ben. Szóval B-t kell kivonni A-ból
Úgy oldottam meg, hogy A-t átmásoltam C-be, majd B és C oszlopokat kijelölve feltételes formázással kiszíneztem az azonosakat, C-t szín szerint rendeztem, majd kitöröltem a színeseket. Így megkaptam A azon elemeit, amik nem szerepelnek C-ben.
Dedós, de működik, csak jó lenne egyszerűbben. Ötlet? Előre is köszi! -
m.zmrzlina
senior tag
válasz
m.zmrzlina #30335 üzenetére
Közben rájöttem. Előbb gondolkozni kellett volna.
-
DrojDtroll
veterán
Sziasztok!
Egy oszlopban vannak adataim. Feltételes formázás segítségével egy képlettel megkeresem azt a cellát amit módosítani akarok. Ez meg is van, csak nem a megkeresett cella formázását kellene módosítani, hanem az egy sorral lentebb lévőt. Mit kell hozzáírnom a feltételes formázás képletéhez? (=B3:B51-B2:B50=$B$53)
-
m.zmrzlina
senior tag
Szeretnék készíteni egy listát arról, hogy egy munkalapon adott háttérszínű cellákban milyen cellaértékek fordulnak elő. Így próbálom:
For Each cella In ws_Kabelo.UsedRange
If cella.Interior.ColorIndex = 6 And cella.Value <> "" And Application.WorksheetFunction.CountIf(Worksheets("valami").range("D2:D50"), cella.Value) = 0 Then
Worksheets("valami").Cells(int_vege, 4).Value = cella.Value
int_vege = int_vege + 1
End If
NextEz a kód a "WorksheetFunction osztály CountIf tulajdonsága nem érhető el hibával kiakad.
Ha a For Each cella In ws_Kabelo.UsedRange helyett
pl: For Each cella In ws_Kabelo.Range("A1:Z100") formában adom meg a tartományt akkor lefut.Mi lehet ennek az oka?
-
mntn
tag
Közben rájöttem, nem gondoltam, hogy az üres cellát alapból kisebbnek nézi. De ha már itt vagyok, megkérdezném, hogy ti hogyan oldanátok meg a következőt.
Adott két oszlop: "hatarido" (A) és "teljesit" (B). "A" oszlop egy előre beírt későbbi dátum, amely adott napon a MA függvénnyel színezi a hozzá tartozó sort. (figyelmeztetésként, hogy hamarosan lejár)
A "B" oszlop egy teljesítési dátum, amely lehet a határidő előtti és utáni. Ehhez kellene olyat, hogy ha a határidő előtti a dátum, akkor ne fusson le az előző színezés, ha viszont utáni akkor meg vegye le róla. Remélem nem túl zavaros. -
cellpeti
nagyúr
semmi
-
D5
aktív tag
Sziasztok!
Erre tudnátok gyógyírt: (#30283) D5? -
PN
újonc
Hello, segítséget szeretnék kérni a következő megoldandó feladathoz:
Van egy oszlopom telefonszámokkal a következő formátumban: +36701234567
Szeretném kimásolni az előhívót egy másik oszlopba. Ennél a példánál azt, hogy "70"
Miként tudnám ezt úgy megoldani, hogy a műveletből makrót is tudjak készíteni?
A válaszokat előre is köszönöm!
-
ny.janos
tag
válasz
csongi #30321 üzenetére
K2 cella képlete:
=HA(J16>76;5;HA(J16>=65;10;HA(J16>=40;15;HA(J16>=18;20;0))))A képletben beállított tartományok (ha valamit rosszul értettem, akkor módosíts rajta):
Office 2010-ben csináltam, de a HA függvénynek működnie kell a korábbiban is. Libre ofice működésről nincs információm.
-
ny.janos
tag
válasz
Sir Pocok #30277 üzenetére
Találtam egy érdekes megoldást a felvetett problémára (tömbfüggvény), gondoltam megosztom itt is az ötletet.
A te kérdésedre adaptálva az ötletet:
=SZUM(INT((ÉV(F5:F127)&HÓNAP(F5:F127))="20151")*I5:I127) -
ny.janos
tag
-
csongi
veterán
Sziasztok!
Az alábbi képletet keresem.
Ha j16 >= 18 de kisebb mint 39 akkor a k2=20; Ha j6>=40 de kisebb mint 64 akkor a k2=15;Ha j16>=65 de kisebb mint 75 akkor k2= 10; Ha J6>76 akkor a k2 egyenlő 5-el. Minden más estben a k2 értéke 0.köszönöm.
Általános képlet kellene office 2007 de Libre oficeba is használnám, és Magyar nyelv. -
Grodd
tag
válasz
Stanlee #30250 üzenetére
Szia, bár látom, már születtek már megoldások, de az ilyeneket a legelegánsabb szerintem Beolvásás és átalakítás (Get&Transform)-mal csinálni, így egy lépésben leautomatizálhatod az egész folyamatot.
- Olvasd be a csv-t,
- fűzd össze a dátumot és az időt, (ha a nyelvi beállításaid nem egyeznek a forrásfájl-lal, erőszakold meg (Using locale vagy "Nyelvterület használata" / angol ),
- hívd be az órákat a minimum dátumtól addig amíg akarod (45 napot mondtál, tehát 45*24 = 1080), ezt egyesítsd az csv-vel, és töltsd ki az adatokat fill down-nal vagy fill-uppal (attól függően, hogy szeretnéd, ezt nem írtad le a feladatleírásban: vagyis ha pl 10 óra 55 perckor 1020 az érték, 11 óra 05 perckor 1021, akkor mi legyen 11 órakor az érték? Ha a korábbi, akkor fill up, ha a későbbi, akkor fill down)
- unpivotold, mert úgy egyszerűbb vele bánni, magyarban ezt "Oszlopok elemi értékekre bontása"-ra fordítótták, és copyzd le a lekérdezést, amiben told el az idő egy órával (#duration), és ezd merge-eld (egyesítsd) az eredetivel. Csinálj egy különbséget a két értékből, és utána vissza is pivotolhatod (magyarban ezt "Forgatott oszlop"-nak nevezték el
)
És kész is (beállíthatsz rá rendszeres frissítést, vagy amit akarsz)
Feltöltöttem ide (csak a forrás csv-t kell lecserélned, és ráfrissíteni a lekérdezésre) :
Ide meg egy általam kreált csv-t (beolvastam a képedet OCR-ral, de egyszerűbb lett volna, ha inkább feltöltöd a template-et valahova
)
Csak meg kell adnod a logo.csv-d elérési útján a "logo" lekérdezésben a Forrás melleti kis fogaskerékre kattintva
Említetted, hogy még van más forrásból származó csv is, de ennek nem adtad meg a formátumát, de természetesen azt is bemerge-elheted ebbe, és végezhetsz vele akármilyen transzformációt.
(Ja, Excel 2016 kell hozzá vagy Office 365, ha korábbi exceled van, akkor szokás szerint PowerQuery bővítményt kell feltenni, de az ma már úgyis kötelező add-in a régebbi excelekhez
)
-
Delila_1
veterán
válasz
Fferi50 #30316 üzenetére
Szia!
Megkaptam a füzetet.
A fapados (képletekkel bevitt) eredmények jók, a kimutatással viszont eltérések vannak. A valahonnan letöltött adatokkal van némi gubanc, amit a kimutatás érzékel, a képletek simán veszik az akadályt. A kimutatáshoz először makróval kellene rendet vágni az adatok között.Mindenképp jó, hogy összeállítottad, eddig nem vettem észre az "Eltérés" opciót, és ez másoknak is hasznos lehet. Köszönöm.
-
Fferi50
Topikgazda
válasz
Delila_1 #30282 üzenetére
Szia!
Amit gyanítottam, az bekövetkezett.... Szerintem egy sima kimutatással meg lehet oldani a problémát, nem kell hozzá bűvészkedni az idővel és a napokkal:
A kimutatás értékmezőit óra szerint csoportosítani kell, majd kiválasztani a maximumot és beállítani az Eltérés az előzőhöz. Ennyi lenne szerintem.
Üdv.
-
Grodd
tag
válasz
kaposznyak #30313 üzenetére
Most látom, hogy azt írtad "alulról felfelé"
Ha ez azt jelenti, hogy a legújabb mozgások vannak felül és a legrégiebbek alul, akkor értelemszerűen fortítsd meg a lefixálást:=SZUM(A1:A$10000)
Ha 10000 sorba belefér a dolog.
De teheted rugalmassá is, úgy, hogy ne számítson a sorrend, ha egy oszlopban ott van az időpont is , akkor SZUMHA-val megoldhatod így is:
Ha A-ban van az terhelés/jóváírás időpontja, B-ben az összeg, akkor C1-be írd ezt, és húzd le:
=SZUMHA(A:A;"<="&A1;B:B)
Így akárhogy lehet keverve a sorrend, az adott időpontban aktuális egyenleget fogja mutatni a C oszlop
-
Grodd
tag
válasz
kaposznyak #30309 üzenetére
nyjanos által említett görgetett összeget így hozhatod létre például , ha pl A oszlopban vannak az első sortól kezdve a terhelések/jóváírások, és B-be akarod a göngyölített összeget :
B1-be írd be:
=SZUM(A$1:A1)
És ezt a képletet húzd le. -
ny.janos
tag
válasz
kaposznyak #30309 üzenetére
Ne a letöltött adatokból csináld a grafikont, hanem hozz létre egy görgetett összeget előbb. Abból olyan grafikont fogsz kapni, amilyet szeretnél. (Persze ha nem megfelelő mértékben tör az ég felé, az nem feltétlen az excel hibája.)
-
kaposznyak
aktív tag
Sziasztok.
Segítség kéne.A feladat: Bankomtól letöltöttem az elmúlt évek levonásait és jóváírásait. Egy oszlop, + és - számokkal, időrendi sorrendben (alulról felfelé)
Egy grafikon kéne belőle, ami az egyenleg változását mutatná.
Tehát +ok felfelé viszik a vonalat, -ok lefelé, de töretlenül kúszik minél meredekebb szögben az ég felé:-)
Ne csak egy vízszintes tengely plusz vagy mínusz oldalára, húzzon egy vonalat (nekem elsőre csak ezt csinálta).Előre is kösz!
-
-
butch3r
senior tag
válasz
sztanozs #30302 üzenetére
@Sztanozs Köszi, majdnem jó, de lehet én állítok be valamit rosszul, de csak 1ik sheetről másolja át adatokat. arról a sheetről amelyik az I oszloptól kezdődik nem.
@Grodd: Powerquerry-t sajnos nem is ismertem. Beszélek IT-val hogy felrakják e nekem. Makró mellett az szól, hogy nem fogom örökké én csinálni a frissítést, és makró minden gépen van, míg pquery nincs (perzse ha nekem lehet akkor másnak is lehet instalálni). A file-t nem tudom megosztani, tele van bizalmas adattald e köszi
-
válasz
butch3r #30300 üzenetére
Public Sub ttt()
Dim r1 As Range
Set r1 = Application.Intersect(Workbooks("Book1").Sheets("Sheet1").Range("B25:D65535"), Workbooks("Book1").Sheets("Sheet1").UsedRange)
Dim v1
v1 = r1.Value2
Dim r2 As Range
Set r2 = Application.Intersect(Workbooks("Book2").Sheets("Sheet1").Range("B25:D65535"), Workbooks("Book2").Sheets("Sheet1").UsedRange)
Dim v2
v2 = r2.Value2
Dim oldbound, newbound
oldbound = UBound(v1, 1)
newbound = oldbound + UBound(v2, 1)
Dim v_cel()
ReDim Preserve v_cel(1 To newbound, 1 To 3)
Dim ix, iy
For ix = 1 To UBound(v1, 1)
For iy = 1 To 3
v_cel(ix, iy) = v1(ix, iy)
Next
Next
For ix = 1 To UBound(v2, 1)
For iy = 1 To 3
v_cel(oldbound + ix, iy) = v2(ix, iy)
Next
Next
Dim r_cel As Range
Dim kezdosor
kezdosor = 10
Set r_cel = Workbooks("Book1").Sheets("Sheet2").Range("B" & kezdosor & ":D" & kezdosor + UBound(v1, 1) - 1)
r_cel.Value2 = v1
End Sub -
Grodd
tag
válasz
butch3r #30300 üzenetére
Szia, ez nem olyan kompex, mint ahogy gondolod, valójában egy igen szimpla lekérdezés, pár egérkattintás az egész
Többféleképpen meg lehet oldani, de a makró az az eszköz, ami nekem utoljára eszembe jutna)
Más eszközökkel sokkal egyszerűbb.
A két leginkább alkalmas a Microsoft Query vagy a PowerQuery.Utóbbi kulturáltabb, de vagy Excel 2016 kell hozzá, vagy Office 365, vagy Excel 2010-2013 mellé PowerQuery add-in (ingyenesen tölrthető a Microsoft oldaláról)
Microsoft Query-ben egy pár egérkattintással több, és ha teljesen rugalmasra és automatizáltra akarod csinálni, akkor igényelni fog egy VBA sort is (PQuery-hez annyi sem kell).Persze megondható makróban is, nem nagy kunszt, ha feltétlenül ahhoz ragaszkodsz hozzá, de miért akarjunk fúróval szöget verni ?
Oszdd meg valahol a filet, és megcsinálom mindkét módon.
Új hozzászólás Aktív témák
Hirdetés
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- ROBUX ÁRON ALUL - VÁSÁROLJ ROBLOX ROBUXOT MÉG MA, ELKÉPESZTŐ KEDVEZMÉNNYEL (Bármilyen platformra)
- Jogtiszta Windows - Office & Vírusirtó licencek- Azonnal - Számlával - Garanciával - Nint.hu
- Bomba ár! Fujitsu LifeBook U7310 - i5-10GEN I 16GB I 256SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7700X 32/64GB RAM RTX 5070 Ti 16GB GAMER PC termékbeszámítással
- Wacom Cintiq DTK-2260 digitális rajztábla
- BLUESUMMERS NVMe SSD adapter
- ÁRGARANCIA!Épített KomPhone i5 10400F 16/32GB RAM RX 7600 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: FOTC
Város: Budapest