Telefonszámunk: 1-472-0679

[Resolved] Beszúrás

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

Topic Resolution: Resolved

Ennek a témakörnek tartalma 10 hozzászólás, 3 résztvevő. Utolsó frissítés:  horvimi 1 hét, 4 napja telt el a bejegyzés óta.

11 bejegyzés megtekintése - 1-11 / 11
  • Szerző
    Bejegyzés
  • #5162

    liszekga
    Résztvevő

    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
    Kulcsmester

    Szia!

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

    Imre

    #5178

    liszekga
    Résztvevő

    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
    Kulcsmester

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

    Imre

    #5180

    Titok
    Résztvevő

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

    #5182

    Titok
    Résztvevő

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

    #5194

    liszekga
    Résztvevő

    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
    Résztvevő

    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
    Kulcsmester

    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
    Résztvevő

    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
    Kulcsmester

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

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

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