Hirdetés
- Gurulunk, WAZE?!
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- potyautas: A Magyar Néphadsereg emlékére
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- sziku69: Szólánc.
- bambano: Bambanő háza tája
- GoodSpeed: A RAM-válság és annak lehetséges hatásai
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- gban: Ingyen kellene, de tegnapra
-
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
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
-
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
- DUNE médialejátszók topicja
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Milyen belső merevlemezt vegyek?
- Mindenkinél több és erősebb AI gyorsítót ígér Elon Musk
- Kormányok / autós szimulátorok topikja
- HiFi műszaki szemmel - sztereó hangrendszerek
- OLED monitor topic
- Vezetékes FEJhallgatók
- Vezeték nélküli fülhallgatók
- Nintendo Switch
- További aktív témák...
- BESZÁMÍTÁS! ASUS STRIX B360 i5 8400 16GB DDR4 512GB SSD ASUS Strix RX 570 4GB MasterBox Q300L 400W
- GYÖNYÖRŰ iPhone 11 Pro Max 64GB Midnight Green -1 ÉV GARANCIA - Kártyafüggetlen, MS3253, 100% Akksi
- GYÖNYÖRŰ iPhone 12 mini 256GB Blue -1 ÉV GARANCIA -Kártyafüggetlen, MS3625, 100% Akkumulátor
- Apple iPhone 12 / 128GB / Kártyafüggetlen / 12Hó Garancia / Akku:86%
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest



de ez kekeckedős fórum vagy segítőkész fórum?




Fferi50
