-
GAMEPOD.hu
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
Topikgazda
válasz lenkei83 #21519 üzenetére
Ha egymás után következnek, állsz az első, és Shiftet nyomva tartva az utolsóra kattintasz.
Ellenkező esetben a Ctrl-t nyomd, közben egyenként kattints a fülekre.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz lenkei83 #21521 üzenetére
Próbálkoztam, de nem jön össze.
Sub lapok()
Dim lap%, szoveg$
For lap% = 1 To Worksheets.Count
If Right(Sheets(lap%).Name, 1) = "x" Then
szoveg$ = szoveg$ & Sheets(lap%).Name & """" & ","
End If
Next
szoveg$ = Left(szoveg$, Len(szoveg$) - 2)
Sheets(Array(szoveg$)).Select
End SubAz utolsó sornál túlcsordulást jelez. Talán kiindulásnak jó.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Fferi50
őstag
válasz lenkei83 #28894 üzenetére
Szia!
A SZUMHA függvénnyel is meg lehet oldani:
=SZUMHA(INDIREKT("" & $F2 & "!$A$" & HOL.VAN($E2;INDIREKT("" & F2 & "!$A52:$A$1000");0 )+51 & ":A" & HOL.VAN($E2;INDIREKT("" & F2 & "!$A52:$A$1000");0 )+51+14);$B2;INDIREKT("" & F2& "!$B$" & HOL.VAN($E2;INDIREKT("" & F2 & "!$A52:$A$1000");0 )+51 &":B" & HOL.VAN($E2;INDIREKT("" & F2 & "!$A52:$A$1000");0 )+51+14))Bővebbet az index fórumon írtam.
Még annyit hogy nevet is lehet adni pl. ennek a kifejezésnek a névkelezelőben "!$A52:$A$1000"
pontosan így beírva, akkor helyette elég akár 3 betűs nevét is beírni.Üdv.
[ Szerkesztve ]
-
DeFranco
nagyúr
válasz lenkei83 #28902 üzenetére
értem amit írsz, de nem tudom értelmezni a képletre
[...]INDIREKT("" & $F2 & "!$A$"[...]
ha a zárójel mögötti részt összerakom, akkor az így olvasom: [idézőjelben a semmi] ÉS [ami az F2 cellában olvasható] ÉS [!$A$] stb.
tehát ha jól látom, akkor nyitom és zárom is az idézőjelet, hogy van ez hatással a mögötte lévő $F2-re?
-
DeFranco
nagyúr
válasz lenkei83 #28894 üzenetére
csináltam én is egy megoldási verziót, mert nem hagyott nyugodni:
=SZUMHA(ELTOLÁS(INDIREKT(CÍM(HOL.VAN($E2;Sample!$A$52:$A$1000;0)+51;1;1;1;"Sample"));2;0;12;1);$B2;ELTOLÁS(INDIREKT(CÍM(HOL.VAN($E2;Sample!$A$52:$A$1000;0)+51;1;1;1;"Sample"));2;1;12;1))
kódban:
=SZUMHA(ELTOLÁS(INDIREKT(CÍM(HOL.VAN($E2;Sample!$A$52:$A$1000;0)+51;1;1;1;"Sample"));2;0;12;1);$B2;ELTOLÁS(INDIREKT(CÍM(HOL.VAN($E2;Sample!$A$52:$A$1000;0)+51;1;1;1;"Sample"));2;1;12;1))
a CÍM(HOL.VAN( -t lehet hogy lehet egyszerűsíteni, de hirtelen nem találtam olyan képletet, ami megkeresné egy tömbben az értéket, és az abszolút hivatkozását adná vissza.
[ Szerkesztve ]
-
-
Delila_1
Topikgazda
válasz lenkei83 #28948 üzenetére
Range("A2:A20") = "=SUMIF(INDIRECT(""'"" & F2 & ""'!A:A""),B2,INDIRECT(""'"" & F2 & ""'!V:V""))"
Ez a képlet az A2:A20 tartományba beírja a
=SZUMHA(INDIREKT("'" & F2 & "'!A:A");B2;INDIREKT("'" & F2 & "'!V:V")) képletet.Az elsőnél a lapnév az F2 cella értéke, a kritérium a B2 cella. A következő sorban ezek F3 és B3-ra változnak. Ha a kritériumot nem akarod módosítani, akkor B$2-t írj.
Ezt már módosíthatod SUMIFS-re.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
-
csadi0011
őstag
válasz lenkei83 #28979 üzenetére
Nem tudom, hogy a +2 oszlop bezavarna-e a kereső függvényekbe.
Ez egy segédmunkalap, ami tele van F/V-KERES-sel, szóval nem mennék oda, hogy frissítgessem. Mindenképpen az lenne a munkalap feladata, hogy egy másik munkalap segítségére legyen. Ha az egyes munkalapon átírok valamit, akkor ezen kettes munkalapon változnak dolgok, de azok megjelennek az első munkalapon. Elég sok sor meg oszlop van, és még nincsen kész, nem tudom, hogy mennyi lesz még. Nem akarom egy lapon megoldani őket.
A sorok celláiban amúgy főként ilyen adatok vannak. C1 C2 D1 D2 G1 G2
Én szívesen elszöszmötölök egy függvényes megoldással, de nem tudom melyikkel oldjam meg. -
BenJoe80
senior tag
válasz lenkei83 #29095 üzenetére
Aha... köszi! Egy kicsit játszanom kellett mire sikerült beállítani, ahogy akartam, de működik.
Köszönöm szépen!
Megisznak egy deci pálinkát. Miért? "Olyan savam vót, meg köllet innom egy deci pálinkát, aszittem megbolondulok." Aztán megisznak négy liter bort. Miért? "Há' semmi savam nem volt má'!"
-
boboy79
csendes újonc
válasz lenkei83 #29162 üzenetére
Semmi baj. Köszönöm szépen a segítséget de azt szerettem volna tovább csinálni amit elkezdtem mert amit csinálok az már a 2016 évi lista és képletekkel szerettem volna megcsinálni, de sajnos nem sok sikerrel. Esetleg ha megcsinálnád nekem az első pár sort azt megköszönöm. A többit én már megpróbálom megcsinálni.
-
Delila_1
Topikgazda
-
Delila_1
Topikgazda
válasz lenkei83 #29174 üzenetére
Sokkal egyszerűbben csinálnám meg. Ahhoz a laphoz rendelném a makrót, ahova beviszed az értékeket.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = 12 Then Sheets("Munka1").Range("A1") = Sheets("Munka1").Range("A1") + Target
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Fferi50
őstag
válasz lenkei83 #29174 üzenetére
Szia!
Egyrészt, akkor ne az activesheet legyen amin keresel, hanem a másik.
Set myRange = ActiveSheet.UsedRange helyett set myRange=Sheets(1).UsedRange
Másrészt javaslom, hogy ne a range változóban tárold a találatokat, hanem egy stringváltozóban a találatok címeit.
pl.
Dim fm as String
fm = FoundCell.Address(external:=True) ' az external paraméter a teljes címét adja a tartománynak (fájlnév, munkalapnév - ha ugyanazon a fájlon belül van a munkalap, akkor a képlet beírás után "elveszti" a fájlnevet.)
'A következő találatnál pedig:
fm = fm & "," & FoundCell.Address(external:=True)
'A végén pedig a képlet:
Range("A1").Formula = "=sum(" & fm & ")"Üdv.
-
Fferi50
őstag
válasz lenkei83 #29181 üzenetére
Szia!
Nézd meg lsz, hány karakter hossznál akad ki.
Ha csak az értéket szeretnéd betenni, akkor viszont a következőt javaslom:
Nem kell a címeket megjegyezni, hanem egy változóban adod össze az értékeket.
pl. erteke=foundcell.value az elsőnél, majd erteke=erteke+foundcell.value a többieknél. A végén pedig az erteke változót teszed be a cellába, range("A1").value=erteke.Üdv.
-
Delila_1
Topikgazda
válasz lenkei83 #29183 üzenetére
Még mindig nem értem, miért ilyen bonyolultan összegzel.
Dim osszeg As Variant, terulet As Range, CV As Range
Set terulet = ActiveSheet.UsedRange
For Each CV In terulet
If IsNumeric(CV) Then osszeg = osszeg + CV
Next
Sheets(1).Range("A1") = osszegAz osszeg változó azért variant, mert nem tudom, egész-, vagy tört számaid vannak-e.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz lenkei83 #29185 üzenetére
Nálam a legördülők eredménye a Munka1!B1 cellában van, az adatok a Munka2 lapon helyezkednek el.
Sub OsszegzesFeltetellel()
Dim cim As String, terulet As Range, CV As Range, MitKeres As Variant
Set terulet = ActiveSheet.UsedRange
MitKeres = Sheets("Munka1").Range("B1")
For Each CV In terulet
If CV = MitKeres Then cim = cim & "Munka2!" & CV.Address & "+"
Next
cim = Left(cim, Len(cim) - 1)
Sheets(1).Range("A1") = "=" & cim
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Fferi50
őstag
válasz lenkei83 #29246 üzenetére
Szia!
Az elég kevés információ, hogy kiakad. Milyen hibával áll le?
Miért is mész végig egyesével a cellákon, amikor a területen lehet keresni. Amikor egy-egy nem színes cellához érsz, akkor Nothing lesz értéke a szinescellának, ezt pedig nem lehet zárolni, sem felszabadítani.
Itt ugyanazt a ciklust kell lejátszani, mintha értéket keresnél a területen. Első cellát megkeresed és utána addig keresed, amíg vissza nem jutsz hozzá.
(set szinescella=ws.usedrange.find(what:="",searchformat:=true)Ha pedig ezt a ciklust csinálod, akkor egyszerűen meg kell nézni a cella háttérszínét és ha sárga, akkor levenni a zárolást.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz lenkei83 #29283 üzenetére
Szia!
Sajnos a SpecialCells metódusnak ez a sajátossága - nem fűlik a foga a hibakezeléshez (Redmond logikájába nem fér bele úgy látszik). Még egy range változóba sem teszi bele a Nothing értéket...
De miért keresel cellát a csak diagramot tartalmazó sheeten, hiszen a tipusát meg tudod állapítani és akkor át tudod lépni a keresést.
Ezen túlmenően szerintem a mutatott iserror kifejezés nem túl szerencsés, hiszen nemlétező cellának a címét sem lehet megállapítani.
Ebben a szituációban úgy gondolom, az on error hibakezelést kell alkalmazni.
Üdv.
-
Fferi50
őstag
válasz lenkei83 #29286 üzenetére
Szia!
Nem tudom, nekem nem szedte szét az egyesített cellákat az
union(range("E3"),range("F8"),range("E7")).formatconditions.delete sor.
Az E3:F6 cellák egyesítve voltak és együtt lett rá feltételes formázás kiadva.Mivel törlöd a feltételes formázást?
Más: Redmondnál nemigen lehet logikát találni, mért pont a hibakezelés lenne az.
Üdv.
[ Szerkesztve ]
-
Delila_1
Topikgazda
válasz lenkei83 #29396 üzenetére
Elég nehéz más gondolatmenetét követni, legalábbis nekem.
Arra figyeltem fel, hogy a Havi2015 és a Havi2016 makró összesen 3 helyen tér el, hasonlóan a Kum2015 és Kum2016-hoz.
Valószínű, hogy 1 makróba tettem volna a kettőt, pl. Évek címmel. Az egészet egy for-next-be tenném, ami 1-től 2-ig tart. Az eltérő soroknál feltételt tettem volna be.for év=1 to 2
...
if év=1 then set month1=range("month1") else set month1=range("month2")
...
nextProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
sedyke
tag
válasz lenkei83 #29396 üzenetére
Lenne még valami...
Igazából az én táblázatom sokkal hosszabb mindegyik munkafüzeten, csak az egyszerűség és átláthatóság kedvéért nem küldtem el az egészet.
Van még jó pár hasonló csoportom az összesítő részen, és a 2015-ös, 2016-os lapok is sokkal hosszabbak.
Látom makroval oldottad meg a dolgot, így nem igazán tudom, hogy mit kellene tennem, ha beillesztem mindegyik alá a maradékot. -
sztanozs
veterán
válasz lenkei83 #29502 üzenetére
A =HA(HIBÁS(... helyett célszerű a =HAHIBA(... használata.
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
DeFranco
nagyúr
Új hozzászólás Aktív témák
- Anglia - élmények, tapasztalatok
- Konzolokról KULTURÁLT módon
- BestBuy ruhás topik
- Milyen billentyűzetet vegyek?
- 3D nyomtatás
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Kihívás a középkategóriában: teszten a Radeon RX 7600 XT
- NVIDIA GeForce RTX 4080 /4080S / 4090 (AD103 / 102)
- Microsoft Excel topic
- Fujifilm X
- További aktív témák...
- Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Windows, Office licencek a legolcsóbban, egyenesen a Microsoft-tól - 2990 Ft-tól!
- Vírusirtó, Antivirus VPN kulcsok
- Game Pass Ultimate előfizetések 1 - 25 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN!