Telefonszámunk: 1-472-0679

[Resolved] VBA – egyedi értékek megszámolása dinamikusan

Kezdőlap Fórumok Excel programozás [Resolved] VBA – egyedi értékek megszámolása dinamikusan

Topic Resolution: Resolved

Ennek a témakörnek tartalma 3 hozzászólás, 3 résztvevő. Utolsó frissítés:  pexcel 2 hete, 3 napja telt el a bejegyzés óta.

4 bejegyzés megtekintése - 1-4 / 4
  • Szerző
    Bejegyzés
  • #5150

    pexcel
    Résztvevő

    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éter

    Attachments:
    You must be logged in to view attached files.
    #5152

    delila
    Résztvevő

    Szia!

    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
    #5153

    horvimi
    Kulcsmester

    Szia!

    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-hasznalata

    2. 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-keplettel

    A 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

    #5154

    pexcel
    Résztvevő

    Sziasztok,
    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

4 bejegyzés megtekintése - 1-4 / 4

Be kell jelentkezni a hozzászóláshoz.