Telefonszámunk: 1-472-0679

cellák, sorok üritése dátum alapján

Kezdőlap Fórumok Excel programozás cellák, sorok üritése dátum alapján

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

15 bejegyzés megtekintése - 1-15 / 28
  • Szerző
    Bejegyzés
  • #4623

    Potus
    Résztvevő

    Sziasztok!
    Van egy táblázatom amiben közelgő események vannak feltüntetve dátum szerint. A már lejárt eseményeket szeretném automatikusan és folyamatosan törölni egy program vagy esetleg függvény segítségével. Ebben szeretnék segítséget kérni.
    A kékre színezett adatok egy másik főoldalon jelennek meg.
    A táblázat adatai egy a főoldalon felugró ablak “ürlapjának” kitöltése után kerülnek a táblázat következő üres sorába. Szeretnék határt szabni a táblázat nagyságának ezért a már lejárt adatokat törölni szeretném.
    De most jut eszembe, hogy ez egy másik problémát vet fel. Gondolom mivel az első sorok adatai törlödni fognak előbb utóbb azokba is írni kellene. Vagy van olyan lehetőég is, hogy a törölt adatok helyére ugrik a következő sor és így mindig a végén lesznek üres sorok????

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

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

    delila
    Résztvevő

    Szia!

    A leírásodból nem derült ki, hogy melyik oszlopok adatait akarod töröltetni. Úgy gondolom, hogy a B:I tartományban lévőket.
    Célszerű a füzet megnyitásakor eltüntetni a lejárt idejű bejegyzéseket, ezért az Open eseménybe érdemes betenni, a ThisWorkbook laphoz kell rendelni a makrót.

    Private Sub Workbook_Open()
        Dim sor As Long, usor As Long
        
        sor = 5
        Do While Cells(sor, 2) <> ""
            If Cells(sor, 2) < Date Then
                Range("B" & sor & ":I" & sor + 1).Delete Shift:=xlUp
            Else
                sor = sor + 2
            End If
        Loop
    End Sub

    A Do-Loop ciklussal megyünk végig a B oszlop dátumain, az 5. sortól kezdve.
    A Shift:=xlUp határozza meg a törlés irányát. Ha volt törlés, az alatta lévő adatok a törölt sor helyére ugranak fel, nem változtatjuk a sor változó értékét, ha nem volt, növeljük a sor értékét kettővel.
    A ciklus addig fut, míg a B oszlopban talál adatot.

    #4626

    Potus
    Résztvevő

    Szia Delila!

    Köszönöm az újabb segítséget.
    Kiprobáltam a makrót. Remekül működik. Hogyan is lenne máskép… 🙂 Mellékelem az eredményt.
    Az megoldható, hogy a feladat elvégzése után megtartsa az eredeti formátumot, színezést? Valamint, még az is kérdés, hogyan alakul a program, ha mindezt egy több munkafüzetből (fülböl) álló file egyik fülén kellene futtatni?

    Előre is köszönöm a további fáradozást!

    Üdvözlettel: Potus

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

    delila
    Résztvevő

    Itt az újabb makró:

    Private Sub Workbook_Open()
        Dim sor As Long, usor As Long
        
        sor = 5
        
        With Sheets("Munka1")   'ide a saját lapod nevét írd a Munka1 helyett
            'lejárt időpontok adatainak törlése
            Do While .Cells(sor, 2) <> ""
                If .Cells(sor, 2) < Date Then
                    .Range("B" & sor & ":I" & sor + 1).Delete Shift:=xlUp
                Else
                    sor = sor + 2
                End If
            Loop
            
            'formátum másolása
            If .Cells(5, 2) > "" Then
                .Range("B5:I6").Copy
                .Range("B7:I49").PasteSpecial xlPasteFormats
                Application.CutCopyMode = False
            End If
        End With
    End Sub
    #4631

    Potus
    Résztvevő

    Szia!

    Tökéletesen működik a makró, mindaddig amig van mit másolnia, amig van olyan dátumu bejegyzés ami >= mint az aktuális dátum. Ha nincs ilyen bejegyzés akkor persze, mert nincs mit másolnia, csak a nagy feketeség van. Megoldás lenne esetleg ha valahol távolabb lenne egy üres formázott sor amit ilyenkor – ill. mindig – másolhatna?

    Üdv Potus

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

    Potus
    Résztvevő

    amikor nincs adat….

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

    Potus
    Résztvevő

    a távoli formázott sor másolás úgy tűnik nem megoldás

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

    delila
    Résztvevő

    Igazad van, ez a kézenfekvő megoldás nem jutott eszembe.

    A feltétel (If .Cells(5, 2) > “” Then) sem kell, elég ez:

            .Range("CH3:CO4").Copy
            .Range("B7:I28").PasteSpecial xlPasteFormats
            Application.CutCopyMode = False

    Figyeld meg, hogy a másolandó formátumba a CH4:CO4 tartományt is be kell venni, hogy az alacsony sorok fekete háttere is másolódjon.

    #4638

    Potus
    Résztvevő

    ezt miért csinálja??? 🙁

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

    Titok
    Résztvevő

    #HIV! hibát ad neked a képlet. Azt is be kellene írni törlés után.
    Ha az a baj, hogy jönnek felfelé a fehér cellák, akkor a feketeséget a 90. sorig mindig formázd le.

    #4641

    Potus
    Résztvevő

    Hello Titok!

    Jajj, igen értem, értem…. A “folyamatos” törlés miatt előbb utóbb elfogynak a fekete sorok. Úgy kellett volna kezdeni az oldalt, hogy az egész fekete.
    Köszönöm mindenkinek a segítséget!

    Pacsi! Potus

    #4681

    Potus
    Résztvevő

    Szia Delila!

    Ominózus naptárprojectem nap mint nap újabb kihívások elé állít. Ami nem baj, talán így a szép és szórakoztató. De így “időnként” segítségre is szorulok.
    A fenti kódot kissé átírva és egy másik userform-ra alkalmazva picit megakadtam.
    Ha jól figyeltem meg jelen esetben – az átírt formátummal- olyan sort is töröl amit még nem kellene. Bár most így utólag belegondolva azért lehet, mert el kellene tolni a dátum keresést egy oszloppal c helyett d -re. N jó, ezt most már értem, ez rendben…. 🙂
    De ellentétben a fenti kóddal amikor is nem voltak képletek a táblázatban így elég volt egy szimpla formátum másolás , most viszont vannak képletek a törölt sorokban ill. nem azokban hanem a törölt sorokra hivatkozó képletek vannak a fentebbi sorokban. De azt sem értem, hogy ha a törölt sor helyére kerül egy másik ugyan olyan formátumú sor akkor a képlet miért veszti el a hívatkozását. Bár gondolom az idő játszik közre, nem ? Nem lehetne ezt valahogy kiküszöbölni, mert ha mindig újra kell írni képletet a lényegét veszti az egész project. 🙂
    Közben arra is rájöttem, hogy a két multi akcióját egymás alá, felváltva kellene kiírni.
    Azt hiszem ennyi probléma elég is egyszerre…
    Mellékelek a leírtakhoz néhány file-t is. Az átírt kódot nem is tudom miért, de nem töltöttem fel a vázlatos naptárba…

    Előre is köszönöm a segítséget! Pacsi! Potus

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

    Potus
    Résztvevő

    az átírt kód…

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

    Potus
    Résztvevő

    előtte:

    #4686

    Potus
    Résztvevő

    most előtte…

    Attachments:
    You must be logged in to view attached files.
15 bejegyzés megtekintése - 1-15 / 28

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