Telefonszámunk: 1-472-0679

[Resolved] Beszúrás

Kezdőlap Fórumok Excel programozás [Resolved] Beszúrás

Topic Resolution: Resolved
11 bejegyzés megtekintése - 1-11 / 11
  • Szerző
    Bejegyzés
  • #5162
    liszekga
    Felhasználó

      Kedves Imre,

      a problámám egyszerűnek tűnik: leszűrök egy tartományra, ezt kijelölöm, kivágom, majd a legalsó sor után beszúrom. Azonban valami nem müködik, próbáltam több féleképpen a legutolsó probálkozásom itt szerepel:
      Dim lr

      Range(„C1”).Select
      lr = ActiveCell.CurrentRegion.Cells(ActiveCell.CurrentRegion.Cells.Count).Row + 1
      ActiveSheet.Range(„$A$1:$CN$263”).AutoFilter Field:=2, Criteria1:= _
      „105050100”

      ActiveSheet.AutoFilter.Range.Select
      Selection.EntireRow.Select
      Selection.Cut
      Rows(lr).Select
      Selection.Insert Shift:=xlDown

      Az utolsó sorra debug-ol, a hiba üzenet: „1004”, The selection isn’t valid. Make sure the copy and paste areas don’t overlap unless the same size and shape
      Előre is köszönöm mindenkinek aki segíteni tud!
      Gábor

      #5163
      horvimi
      Adminisztrátor

        Szia!

        Elsőként azt kérdezném, hogy ezt manuálisan végigcsináltad, és simán megcsinálta?

        Imre

        #5178
        liszekga
        Felhasználó

          Szia!

          Igen végigcsinálja, illetve ha makró rögzítővel rögzítem, akkor újra megcsinálja. Ha hozzá adom a változót akkor már hibára fut. Végig léptettem F8-al és a az utolsó sor utáni sor kijelöléséig (Rows(lr).Select) rendben megtörténik minden, de a beszúrásnál már hibaüzenetet küld.
          Még annyit kiegészítés, hogy a tartomány alatt 5 sorral kezdődik egy másik tartomány, hátha van jelentősége.

          Köszönöm,
          Gábor

          #5179
          horvimi
          Adminisztrátor

            Feltöltenél egy mintafájlt?
            Csak apró időszeleteim vannak, bocs.

            Imre

            #5180
            Titok
            Felhasználó

              aZ UTOLSÓ SOR NEM KELL, CSAK SIMÁN MÁSŐLD BE PASTE-VAL

              #5182
              Titok
              Felhasználó

                Nem kellene a Dim Ir után egy „As Integer” esetleg?

                #5194
                liszekga
                Felhasználó

                  Sziasztok,

                  sajnos nem tudom feltölteni a fájlt mert nagyon szenzitiv adatok vannak rajta. Most nem tudtam vele foglalkozni én sem, de majd próbálkozok tovább. Ha lesz valami eredmény akkor megírom.
                  Az As integer -t oda lehet írni, ettől szebb lesz a kód, de nem hoz megoldást. A paste – al pedig az a gond, hogy kezdődik az állomány után 5 sorral lejebb egy újabb állomány és ha túl sok a szűrt adat, akkor felül írja néhány sort az alatta lévő sorokból.
                  Üdv.: Gábor

                  #5205
                  Titok
                  Felhasználó

                    Ha szűrt a táblád, akkor a szűrő tartományon kívülre sem enged beszúrni sorokat az excel.
                    Legalább is az enyém (2010/Excel 365) nem.
                    Erre a megoldás, hogy máshová mented ki, megszünteted a szűrőt, és utána szúrod be új soronként.
                    Persze még ekkor is kell gondolnod arra, hogy ha túl nagy a táblád (még ha látszólag nincs is benne adat), akkor is pampoghat az excel, mert az új sorokkal több sorod lenne, mint a max sorszám.

                    #5206
                    horvimi
                    Adminisztrátor

                      Azért kérdeztem, hogy kézzel végigcsinálva működik-e, mert nekem nem működött.
                      Most megnéztem még egyszer Excel 2013 alatt.

                      Több probléma is van itt.
                      Első, hogy a fenti kódhoz a Paste parancsot tartalmazó sort már nem tetted oda.
                      De nekem a következőt csinálja:
                      – A szűrésig minden OK
                      – Az ActiveSheet.AutoFilter.Range.Select kijelöli a szűrt sorokat és a fejlécet.
                      – A következő sor ezt bővíti teljes sor kijelölésre, majd kivágja
                      – Ezután kijelöli az utolsó utáni teljes sort
                      – majd beszúr egy sort

                      Nos ebben a pillanatban nálam megszűnik a szűrt állapot, és kiürül a vágólap is.
                      Tehát bármilyen PASTE művelet hibát fog okozni.

                      Emellett felvetném, hogy az ActiveSheet.AutoFilter.Range.Select kijelöli a fejlécet is, illetve a szűrésnek megfelelő sorokat, de azok a valóságban általában nem összefüggő sorok. Ezeken a CUT/PASTE nem szokott működni, illetve csak úgy, hogy mozgatja az éppen nem látható sorokat is.
                      Ha beiktatod a csak látható cellák kijelölése lépést, akkor azonnal kijön, hogy ezen a CUT művelet nem fog működni.

                      Szóval ez így szűrt állapotban nem fog működni.

                      Programozás technikailag azt is lehetne, hogy soronként menni lefelé, és
                      – kigyűjteni egy memóriatömbbe a szűrésnek megfelelő sorokat, és törölni az erdetieket, majd utána letenni alulra a tömb tartalmát, előtte beszúrni annyi sort, amennyi a tömb sorainka a száma
                      – Vagy soronként mozgatni a megfelelő sorokat Cut/Paste-el a végére. Előtte beszúrhatsz egy sort, hogy ne írd felül a már ott lévő dolgokat.

                      Imre

                      #5221
                      liszekga
                      Felhasználó

                        Sziasztok,

                        időközben én is rájöttem, hogy nem működik a szürt sorokkal a cut/paste ezért más megoldást kerestem. Egyszerűen kimásoltam az adatokat egy üres munkalapra (ezt nem kellett létrehoznom mert több lapból áll a fájl és a folyamat ezen pontján van olyan amaelyik üres) , majd a szürt sorokat töröltem, hogy késöbb mikor visszamásolom az adatokat akkor a duplikációt elkerüljem. Hogy a fejléc ne sérüljön beszúrtam egy üres sort legfelülre és ott szűrtem le az adatokat. A kimásolt adatokakkal pedig már múködik a cut/paste, hiszen ez már tartomány nem szűrt adat.

                        Én valóban végig csináltam kézzel és akkor nekem működött….

                        Köszönöm a segítséget!

                        Üdv.: Gábor

                        #5223
                        horvimi
                        Adminisztrátor

                          Örülök, hogy sikerült.

                        11 bejegyzés megtekintése - 1-11 / 11
                        • Be kell jelentkezni a hozzászóláshoz.