Kezdőlap › Fórumok › Excel programozás › [Resolved] VBA – egyedi értékek megszámolása dinamikusan
- This topic has 3 hozzászólás, 3 résztvevő, and was last updated 6 years, 1 month telt el by pexcel.
-
SzerzőBejegyzés
-
2018-10-04-14:59 #5150
Sziasztok,
Az alábbi probléma megoldásában kérném a segítségeteket.
Az Imre által az oldalon korábban bemutatott, az egyedi értékek megszámolására alkalmas képletet szeretném dinamikussá tenni egy változó segítségével VBA-ban. Maga a művelet egy szubrutin lenne egy hosszabb VBA kódban.
Csatoltam egy mintát benne a VBA szubrutinnal, ami sajnos hibára fut. A probléma lényege röviden annyi, hogy nem tudom előre megmondani, hogy mi lesz az adatokat tartalmazó range utolsó sora. A csatolt példában ez a 21. sor, de egyéb esetben bármi lehet. Ezt kellene dinamikusan kezelni a képletben.
A futtatás közben az „Application-defined or Object-defined error” hibaüzenetet kapom.
Megköszönném, ha tudnátok segíteni,
PéterAttachments:
You must be logged in to view attached files.2018-10-04-16:58 #5152Szia!
Ha a kiinduló A2 cella fix, akkor
Sub keplet() Dim lRow As Integer Sheets("Munka1").Select lRow = Cells(Rows.Count, 1).End(xlUp).Row Cells(lRow + 1, 1) = "=SUMPRODUCT(1/COUNTIF(R2C1:R" & lRow & "C1,R2C1:R" & lRow & "C1))" End Sub
2018-10-04-16:59 #5153Szia!
ha csak ezért akarsz makrót írni, akkor felesleges, hiszen csak a tartományra kell dinamikusan hivatkozni.
1. megoldáa
—————-
Táblázattá alakítod a tartományt, és azon belül hozzáadsz egy nevet is.
A táblázat és a név magától mindig annyi cellára hivatkozik, amennyi éppen van. Tehát dinamikus.
Erre az utóbbi névre hivatkozz a a képletben, ne a fix tartományra.A dinamukus névtartomány táblázattal cikkben vannak a részletek, ha ennyi nem elég.
http://excel-bazis.hu/tutorial/dinamikus-nevtartomany-hasznalata2. megoldás
—————
Ha nem akarsz táblázatot használni, akkor lehet kapásból dinamikus névtartományt csinálni.
Erről pedig itt olvashatsz:
http://excel-bazis.hu/tutorial/dinamikus-nevtartomany-keplettelA küldött fájl makrójában pedig teljesen hibás a COUNTIF számára összerakott tartomány.
Az ugye az A2-től menne az utolsó sorig.
Te pedig a kezdő és végcella sorának is az rng változót használod, tehát a kezdő és végsor egyforma lesz.Az rng változó számítása is hibás szerintem.
No mindegy, mert ehhez nem kell makró.
Imre
2018-10-05-08:51 #5154Sziasztok,
Nagyon köszönöm mindkettőtöknek a gyors segítséget.
Imrének teljesen igaza van abban, hogy önmagában a probléma megoldásához tényleg nem kell VBA, viszont ahogy írtam, ez a művelet egy hosszabb rutin része lenne, ezért nem tudom megkerülni a makrót.
De ebből a szempontból is tökéletes minden javasolt megoldás, így még egyszer is köszönöm,
Péter -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.