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
4 bejegyzés megtekintése - 1-4 / 4
  • Szerző
    Bejegyzés
  • #5150
    pexcel
    Felhasználó

      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
      Felhasználó

        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
        Adminisztrátor

          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
          Felhasználó

            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.