- One mobilszolgáltatások
- iGO Primo
- Folyamatos vérnyomásmérést kínál a Huawei Watch D2
- Samsung Galaxy Watch7 - kötelező kör
- VoLTE/VoWiFi
- Samsung Galaxy S21 FE 5G - utóirat
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Honor Magic6 Pro - kör közepén számok
- Milyen GPS-t vegyek?
- Egy szenzor, két zoomkamera: újraírta a Huawei a mobilfotózás történetét
-
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
-
Balinov
titán
Azt hiszem a szazadreszevel. Ime egy pelda:
2262000986,2061001563 ugyanazon oszlop egymas alatti cellajanak ertekei. Kijelolve ugye megadja az osszeguket 4323002549-kent. Ha belekattintok (vagy kimasolom a szerkesztosorbol) es atugrok (egerrel vagy billentyuzetrol) az alatta levo cellaba az elsobol 22620009.86 lesz, es igy tovabb.Ha megcsinalom ugyanezt a masodik szammal, akkor a ketto cella erteke 43230025.49 lesz.
Megneztem megegyszer, megnyitas utan milyen formatumu a "szam". Most epp general. Ha atrakom szamformatumra es beallitom, hogy ne mutassa a 2 tizedesjegyet, akkor meg ilyet produkal:
2262000986->szerkeszt->kovetkezo cellara kattint-> eredmeny: "22620010",tehat kerekit a birka.
Rohadt ciki a dolog,mert pl van egy xls fajl, ami halozati mappaban van megosztva, kb 10-20 ember dolgozik benne nagy gyakorisaggal,tovabbi jopar (vezetok, kontrollerek) meg esetenkent ill. pivot table-t is csinalnak belole kimutatasokhoz. Ilyenkor kicsit gaz, ha osszeba***dik a dolog es hulyesegek johetnek ki, nameg persze nekem is szopas, ha mondjuk egy rendelesszamot, vagy szeriaszamot keresnek egy tobbezer soros excel fajlban.
Kivancsian varom, mi a velemenyed errol. Koszi elore is
udv
Balinov -
Fehér Mancs
tag
A színes kérdést is lehet dinamizálni úgy, hogy a második paramétert opcionálissá tesszük, és ha nem adunk meg értéket, akkor az "értékes tartományban" keres. Az eredeti makró egy kicsit megspékelve:
Function CountCCC(Mintacella As Range, Optional Tartomany)
Dim rngCell As Range
If IsMissing(Tartomany) Then
Set Tartomany = ActiveSheet.UsedRange
End If
nColor = Mintacella.Interior.Color
nResult = 0
For Each rngCell In Tartomany
If rngCell.Interior.Color = nColor Then
nResult = nResult + 1
End If
Next rngCell
CountCCC = nResult
End FunctionA képletek újraszámoláról pedig úgy tudom, hogy akkor kalkulálódnak újra, ha bármelyik hivatkozott mező értéke változik (egyéb tulajdonság pl. szín nem számít). Pl. ha a fenti függvénynél nem adjuk meg a második paramétert, akkor nem fog frissülni az érték a változásokra, hiszen csak átételesen hivatkozunk a tartományra.
-
Hali!
Na most azért visszaolvastam. Tehát, az lenne a feladat, hogy egy tartományban összeszámold az adott színű cellákat és ezt minél gyorsabban kellene megoldani?
Ha igen, akkor érdemes lenne esetleg hagyományos ciklussal(CELLS(I,J)) próbálkozni, nem pedig IN tartománnyal, lehet hogy előbbi még gyorsabb lenne.(ki kell próbálni)
A kérdésedre pedig:
Set Tartomany = ActiveSheet.UsedRangeFire.
UI: Elnézést, ha félreértettem. Ha igen, akkor írd le Nekem, hogy mi is lenne a próblémó, amit meg kell oldani, szívesen segítek.(ha tudok)
-
Delila_1
veterán
Így:
Function CountCCC(Mintacella As Range)
Dim rngCell As Range
Dim Tartomany As Range
sor = Range("A65536").End(xlUp).Row
Set Tartomany = Range(Cells(1, 1), Cells(sor, 1))
nColor = Mintacella.Interior.Color
nResult = 0
For Each rngCell In Tartomany
If rngCell.Interior.Color = nColor Then
nResult = nResult + 1
End If
Next rngCell
CountCCC = nResult
End Function -
Delila_1
veterán
Function CountCCC(Mintacella As Range)
Dim rngCell As Range
Dim Tartomany As Range
Set Tartomany = Range("A1:BB5000")
nColor = Mintacella.Interior.Color
nResult = 0
For Each rngCell In Tartomany
If rngCell.Interior.Color = nColor Then
nResult = nResult + 1
End If
Next rngCell
CountCCC = nResult
End FunctionPróbáld így, de már az A1: BB5000-nél is elidőzik. Egy normális tartományt adj neki közvetlenül a makróban. Biztosan van ennél egyszerűbb megoldás, de azt nem ismerem.
-
-
Delila_1
veterán
Arra való a részösszeg függvény.
Az összegzendő oszlop alá=részösszeg(9;tartomány)
ahol a 9 egy függvényszám, ami jelzi a függvénynek, hogy a tartomány adatait összegezni kell. A súgó megmondja a többi függvényszám értelmét.
Ez a függvény mindig az aktuális szűrésben látható cellák összegét adja, függetlenül attól, hogy ezt, vagy másik oszlopot szűrtél-e meg. -
Delila_1
veterán
Most nézem, hogy nemcsak a range("A65536...)-ot kérdezted.
A makró leírása:
A Masolt_lap-ra állok
Meghatározom az utolsó sort: usorm
E2-be Fkeres függvény, ami B2 rövid nevét az Uj_Sheet A: B tartomány B oszlopában keresi ki
Képlet másolása az utolsó sorig (kitöltéssel, AutoFill)A Do While - Loop ciklus már biztosan nem mond újat a számodra.
Mód.: Hát ez hogy ment el kétszer?!
-
Delila_1
veterán
Most nézem, hogy nemcsak a range("A65536...)-ot kérdezted.
A makró leírása:
A Masolt_lap-ra állok
Meghatározom az utolsó sort: usorm
E2-be Fkeres függvény, ami B2 rövid nevét az Uj_Sheet A: B tartomány B oszlopában keresi ki
Képlet másolása az utolsó sorig (kitöltéssel, AutoFill)A Do While - Loop ciklus már biztosan nem mond újat a számodra.
-
Delila_1
veterán
Szia Lúzer!
Az A65536-on állva nyomj egy Ctrl+fel nyilat. A kurzor az A oszlop utolsó, adatot tartalmazó cellájára áll. Ez ennek a műveletnek a VBA-s megfelelője. Így keresem ki az alsó sort.
Lehetne range("A1").end(xldown).row is, de akkor, ha az adatok (még mindig A oszlopban)között üres cella van, nem az utolsó kitöltött sorra állna, hanem az első csapat adat utolsó cellájára.
Másik hátránya, hogy ha csak A1-ben van adat (vagy ott sem), akkor leugrik a 65536-ra, és külön be kell írni a makróba egy feltételt, hogy ha fenti uatsítással meghatározott sor a 65536, akkor az utolsó sor értéke legyen 2, vagy 1 – van, vagy nincs címsor..A Ctrl+nyilakat a munkalapon az adatok közötti navigálásra is jól fel lehet használni.
-
-
-
rebel56
tag
Így van, ez kellene tetszőlegesen sok értékre. Pl. ha Az A oszlop értékei cellánként 1,2,3,4,5 (..). Akkor a B oszlop 1,1,2,2,3,3,4,4,5,5 (..) De bárhogy próbáltam beírni a képleteket, mikor lehúztam mindig elcsúszott valahol a számozás, nem sikerült a kívánt eredményt elérni.
-
Kobe
veterán
kösz, már emgodlottam egy feltételes elágazásokkal tüzdelt függvénnyel
nagyjából hasonlót kellet tmint mit írtál cska beszúrtam egy ÉS feltételt. Igazából szar volt mert cska egy táblázat volt megadva hogy
100 rossz
300 elégséges
400 közepes stb, ezt ugy értelmeztem hogy intervallumokra vonatkozik pl 300 alatt rossz, 300-400 közt elégséges stb
most már működik így -
Delila_1
veterán
Másik módja az utolsó sor, ill. utolsó oszlop megkeresésének, arra az esetre, ha a lapon több, egymástól üres sorokkal, oszlopokkal elválasztott adataink vannak:
Kiválasztjuk egy olyan oszloponak az első celláját, amelyikben biztosan folyamatosan vannak az adatok, pl. A1.
Range("A1").Select
Selection.End(xlDown).Select ' ez azonos azzal, mint amikor Ctrl+le-nyilat nyomunk
usor = Selection.Row
Range("A1").Select
Selection.End(xlToRight).Select ' Ctrl+jobbra-nyílnak felel meg
uoszlop = Selection.ColumnHa biztos, hogy az alsó sorban minden oszlopban van adat, a második Range-re nincs szükség.
-
Delila_1
veterán
Igen, és az utolsó sor értékét a fölötte lévő sor adja.
Vigyázni kell arra, hogy ha voltak az aktív táblázat területén kívül eső cellákban valamikor értékek (most már törölve vannak - szépen magyarul), vagy most is vannak benne kósza adatok, akkor azokkal a címekkel számol a makró, és hamis értéket ad.
A makróba érdemes egy stoppot tenni a két érték bekérése után, és ellenőrizni. Ha többet mutat az usor és az uoszlop nevű változó a kelleténél, a felesleges sorokat és oszlopokat törölni kell. Nem a benne lévő adatot, hanem a teljes sort ill. oszlopot. -
lúzer
veterán
Hurrá!
Csiszolni kell de műxik:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As _
Excel.Range)
If ActiveSheet.Cells(1, 1).Text = ''i'' Then
Rows(''26:37'').Select
Selection.EntireRow.Hidden = True
Else
End If
If ActiveSheet.Cells(1, 1).Text = ''h'' Then
Rows(''26:37'').Select
Selection.EntireRow.Hidden = False
Else
End If
End Sub -
Új hozzászólás Aktív témák
Hirdetés
- Milyen billentyűzetet vegyek?
- War Thunder - MMO Combat Game
- Kompakt vízhűtés
- One mobilszolgáltatások
- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- OFF TOPIC 44 - Te mondd, hogy offtopic, a te hangod mélyebb!
- HiFi műszaki szemmel - sztereó hangrendszerek
- Fujifilm X
- Linux kezdőknek
- iGO Primo
- További aktív témák...
- Microsoft Surface Laptop 3 - 15 col - Fekete
- ÁRGARANCIA! Épített KomPhone i5 13400F 32/64GB RAM RX 7700 XT 12GB GAMER PC termékbeszámítással
- Telenor 5G Indoor WiFi Router (FA7550) + töltő (bolti áruk 100.000Ft)
- BESZÁMÍTÁS! ASRock FORMULA OC RX 6900XT 16GB videokártya garanciával hibátlan működéssel
- ÁRCSÖKKENTÉS Lenovo ThinkPad P51s, P52s, T570, T580 eredeti Lenovo, belső akkumulátor eladó
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged