Telefonszámunk: 1-472-0679

Hozzászólások

9 bejegyzés megtekintése - 1-9 / 9
  • Szerző
    Bejegyzés
  • Hozzászólás: feladatok egy gombra összpontosítása #5332
    lndz
    Felhasználó

      Sziasztok!

      Most beleokoskodok.:)
      Ez mehetne az elejére:
      Dim DataSH As Worksheet
      On Error GoTo errhandler:

      Set DataSH = Sheets(“adat”)

      Nem vagyok benne biztos, de szerintem nem kell selectálni copyhoz
      Sheets(“adat”).Select
      Range(“B8:G209”).Select
      Selection.copy
      helyett:
      DataSH.Range(“B8:G209”).copy
      az se biztos hogy érdemes copy-zni
      helyette:
      DataSH.Range(“CQ8”).resize(DataSH.Range(“B8:G209”).rows.count, DataSH.Range(“B8:G209”).columns.count).value=DataSH.Range(“B8:G209”)
      persze a DataSH.Range(“B8:G209”) tartomány hozzárendelhető változóhoz, akkor jobban néz ki.
      Nem szeretem (nem is használom sose) a RowSource tulajdonságot.:)
      Próbáltad már a list-et helyette?
      Ha van egy ranged, amit hozzárendelsz egy variant típusú változóhoz tömb lesz belőle a listbox.list tulajdonság egy tömböt vár.
      azért is jobb szerintem a list, mert nem csak range-ből jöhetnek az értékek, de abból is.
      Az eredeti kérdésre nem tudok válaszolni, azt nem értem.:)

      Köszönöm,
      Zoli

      Hozzászólás: Userform meghívása #5331
      lndz
      Felhasználó

        Kedves Kata!

        Kell legyen a kódodban egy sor, ami megjelíti a form-ot, annak a sornak a környékét meg tudnád osztani?
        Az érdekelne még, hogy az a kód hogy néz ki, ami elrejti (bezárja) a formot. Illetve az hogy a form modal vagy sem.

        Köszönöm,
        Zoli

        Hozzászólás: ciklussal adatokat a másik munkafüzetbe #1405
        lndz
        Felhasználó

          Sziasztok!

          Az kérdés nekem, hogy mitől függ, mi lesz a munkafüzet. Nem lehet ezt valahogyan algoritmizálni (jól megválasztott fájl neveken keresztül)? Esetleg, ha új a munkafüzet, lehet nevet generálni neki. Az is kérdés számomra, hogy nyitva van-e vagy sem? Ha tudsz írni egy formot, akkor feldobhatja egy listában a megnyitott munkafüzeteket, ahonnét ki tudod választani futás közben, vagy feldobhatsz egy valamilyen open file dialogust is, ha zárva van, aminek a visszatérési értéke lehet a munkafüzet neve. Az is lehetőség, hogy mindig az aktív munkafüzetbe írjon ki, ha tudod úgy alakítania a programod. Ha az Imre által javasolt megoldást választod, ami kétségtelenül praktikus, érdemes a változó értékadásakor megadni a munkalap nevét is, sőt ha szükséges valahogy a munkafüzetét is, ahol a nevet tárolod.

          valtozo = ThisWorkbook.Sheets(1).Range(„D1”)

          Üdv,
          LZ

          Hozzászólás: Képletkészítési probléma makro #1392
          lndz
          Felhasználó

            Zoli!

            belátom elsőre felületesen olvastam el.:)
            már értem miért akarsz függvényeket használni.
            viszont még mindig túl általános a kérdés számomra.
            az lenne jó, ha a függvény tömböt készítő rutint be tudnád másolni, hogy be tudjam másolni egy modulba. vagy bontsuk a kérdést kisebb, specifikusabb problémákra!:)
            Imi bejegyzése még eszembe jutatott valamit. Lehet, hogy nincs értelme, mert általánosságban már értem, de még részleteiben nem… szóval lehet, hogy érdemes előre neveket definiálni a workbook-ban, ha ez lehetséges. mikor legyártod a sablont, a kóddal hozzáadhatsz a wb-hez egy pl. ecskoordinatay nevet, aminek értéket adsz.. de lehet, hogy ez nem segít, értelmetlen. ha jól értem a sablon is egy sablon alapján gyártod le?

            Üdv,
            LZ

            Hozzászólás: Képletkészítési probléma makro #1389
            lndz
            Felhasználó

              szia Zoli!

              az lenne jó, ha bemásolnád a rutint.
              szerintem nagyon ritkán jó megoldás worksheet képleteket használni. szerintem van egyszerű megoldás a problémádra, csak nem látom át, hogy mi (a probléma) az pontosan.
              Üdv,
              LZ

              lndz
              Felhasználó

                szia!

                szerintem a personal-ban semmit nem kell tárolni.:)
                ööö… nem is tudom, hogy indokoljam, betelik (átláthatatlanná válik), bizonytalan a helye, ha több gépről beszélünk, nehezen mozgatható, hálózatról nem könnyen látható.
                a personal kb. hobbi programozásra alkalmas, ha van 5 procedurád mondjuk, megpróbál egy olyan megoldást biztosítani, ami lefedi a programozó tudásbeli hiányosságait. mindig elérhető, mert betöltődik.:) persze ezt csak én gondolom, most találtam ki.:)
                pont arra erősít rá, ami a VBA legnagyobb bénasága, hogy nehéz központi kódokat használni, könnyen (egyáltalán) újrafelhasználni, karbantartani.

                bővitményekben akkor már.:)
                ha csinálsz hozzájuk vezérlőket, akkor mindegy hol van, ami az elérhetőséget illeti.

                Üdv

                lndz
                Felhasználó

                  az a jó, ha nincsenek semilyen függvények a worksheeten ennyi cellában.:)

                  Hozzászólás: Tömb méret meghatározása #1381
                  lndz
                  Felhasználó

                    Szia!

                    nekem ez nem világos, egy tartományt akarsz egy tömbbe olvasni?

                    általában:
                    dinamikus tömböt kell deklarálnod így:
                    dim ara() as variant

                    aztán redimenzionálni:
                    redim ara(1 to x, 1 to y)

                    ehhez persze itt már tudnod kell mi lesz x és y
                    azt is kell tudnod, hogy több dimenzió tömböknél az első redim után már csak az utolsó dimenzió méretét tudod újra dimenzionálni
                    persze ez kivédhető ha range-ről van szó, több módon is, de attól függ a jó módszer, hogy utána mit akarsz csinálni a tömbbel.

                    ha range tartalmat akarsz tömbbe tenni, akkor pozicionálnod kell a range-et
                    utána meg egyszerűen azt mondod:

                    ra=Range

                    Üdv

                    Hozzászólás: Hivatkozás #1380
                    lndz
                    Felhasználó

                      nálam a következő gyakorlat alakult ki:
                      mindig deklarálom a változókat, egy tartomány az egy range típusú objektum, aminek az apja a sheet, annak az apja meg workbook. ezért fentről lefelé deklarálok változókat, amiket után inicializálok, így biztos lehetek abban, hogy függetlenül attól, hogy hol vagyok, a változóra hivatkozva ugyanoda jutok.

                      kb, így (másold be egy modulba és jobban fogod látni):

                      Sub formatRange()
                      ‘wb a változó neve a típusa workbook
                      Dim wb As Workbook
                      Dim sht As Worksheet
                      Dim wArea As Range

                      ‘változók hierarchikus inicializálása
                      Set wb = Workbooks(„AmibenAzInvActSheetVan.xlsx”) ‘a nyitott workbookok közül az x nevű
                      Set sht = wb.Sheets(„InvAct”)
                      Set wArea = sht.Range(Cells(3 + i, 1), Cells(3 + i, 1 + j))
                      ‘ha több formázási művelet van érdemes így
                      With wArea
                      .Font.Bold = True
                      .HorizontalAlignment = xlCenter
                      End With
                      ‘ha csak egy akkor:
                      ‘wArea.HorizontalAlignment = xlCenter
                      End Sub

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