- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
- Honor 400 Pro - gép a képben
- Netfone
- One mobilszolgáltatások
- VoLTE/VoWiFi
- Apple Watch
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Honor Magic5 Pro - kamerák bűvöletében
- Mi nincs, grafén akku van: itt a Xiaomi 11T és 11T Pro
- Samsung Galaxy S21 és S21+ - húszra akartak lapot húzni
-
Mobilarena
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
lenkei83 #31766 üzenetére
A felső makróban az összes lapot felszabadítod, majd 2 lapnál beállítod az autoszűrőt, és ismét minden lapot levédesz. Elég lenne egyenként a 2 laphoz beállítani a makróból módosítást, és végrehajtani a szűrő beállítását.
A 2. makró első sora is legyen
ActiveSheet.Protect UserInterfaceOnly:=True
. -
-
Fferi50
Topikgazda
válasz
lenkei83 #31642 üzenetére
Szia!
Ha az eseménykezelő első (vagy valamelyik) sorába beírod a STOP utasítást, akkor ott megáll a program - viszont DEBUG módban nem hajtódik végre a ribbonra vonatkozó utasítás, helyette hibaüzeneteket kapsz, amíg végig nem fut a ribbonos rész.
Szerintem az lehet a probléma, hogy nyitáskor még nincs betöltve a RIBBON, ezért nem tudja végrehajtani a műveletet, később viszont már megvan a megfelelő objektum hozzá.A saját ribbont be kell tölteni egy általános modulba helyezett makróval, pl.
Sub RibbonOnLoad(ribbon As IRibbonUI)
Set rib = ribbon
End SubÜdv.
-
Fferi50
Topikgazda
válasz
lenkei83 #31585 üzenetére
Hali!
Ismerős néhány elnevezés a kódodban
A kívánt eredményhez a következőképpen juthatsz el:
If ujfka.Row > 4 Then
If Not IsEmpty(ujfka.Cells(2)) Then
set ujfka = Intersect(ujfka, ujfka.Offset(0, 1))
Print #xx, Replace(Join(Application.Transpose(Application.Transpose(ujfka.Value)), ";"), ",", ".")
End If
End IfA 001 exportálásban lemaradt a rows a usedrange mögül és én pont ezt a makrót kezdtem el nézni...
Szerintem nem kell 3 makró hozzá, elég egy, amit paraméterezetten hívsz meg.
Üdv.
-
-
DeFranco
nagyúr
-
sztanozs
veterán
válasz
lenkei83 #29502 üzenetére
A =HA(HIBÁS(... helyett célszerű a =HAHIBA(... használata.
-
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. -
Delila_1
veterán
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")
...
next -
Fferi50
Topikgazda
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.
-
Fferi50
Topikgazda
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
Topikgazda
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.
-
Delila_1
veterán
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 Sub -
Delila_1
veterán
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.
-
Fferi50
Topikgazda
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.
-
Fferi50
Topikgazda
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.
-
-
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.
-
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. -
-
Delila_1
veterán
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.
-
-
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.
-
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?
-
Fferi50
Topikgazda
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.
-
Delila_1
veterán
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ó.
Új hozzászólás Aktív témák
Hirdetés
- Mr. Y: Motoros sztorik #06
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- Bitcoin topic
- Nem indul és mi a baja a gépemnek topik
- Kertészet, mezőgazdaság topik
- AMD Navi Radeon™ RX 5xxx sorozat
- Milyen egeret válasszak?
- PlayStation 5
- Mielőbb díjat rakatnának a görögök az olcsó csomagokra az EU-ban
- Philips LCD és LED TV-k
- További aktív témák...
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- ROBUX ÁRON ALUL - VÁSÁROLJ ROBLOX ROBUXOT MÉG MA, ELKÉPESZTŐ KEDVEZMÉNNYEL (Bármilyen platformra)
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Vírusirtó, Antivirus, VPN kulcsok
- Wilbur Smith könyvek (15 db) egyben
- 125 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 9 7945HX, RTX 4070
- LG 48GQ900-B - 48" OLED - 4K 3840x2160 - 138Hz & 0.1ms - G-Sync - FreeSync - HDMI 2.1
- Eredeti, új Lenovo 330W töltők - ADL330SDC3A
- LG 65BX - 65" OLED - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox Ready!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest