Hirdetés
- HiFi műszaki szemmel - sztereó hangrendszerek
- Alaplap javítása
- AMD Navi Radeon™ RX 9xxx sorozat
- Milyen processzort vegyek?
- Így építs kiegyensúlyozott gamer PC-t – CPU, GPU és FPS viszonya
- Melyik tápegységet vegyem?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Milyen egeret válasszak?
- OLED monitor topic
- Milyen billentyűzetet vegyek?
-
PROHARDVER!
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Mutt
senior tag
válasz
Salex1
#16983
üzenetére
Hello,
A második munkalapon van egy név és egy dátum, ha ez a dátum a mainál régebbi, akkor a nevet kellene áttenni az első munkalap következő üres sorába.
2 megoldást is találsz itt.
Az egyik makró mentes, és kimutatást használ.
Nálam Referencia nevű lapon van az adatsor, ebben van a dátum és egy számított mező (a pivot miatt kell) amely megmondja, hogy lejárt-e már a dátum. Az egész egy igazi táblázatban van, amely biztosítja hogy amikor új sort viszel be akkor a számított mező automatikusan létrejön (nem kell neked másolnod) és hogy a pivot az újabb értékeket is megtalálja. Az első munkalapon pedig van egy kimutatás, amely a fájl minden megnyitásakor automatikusan frissül és a számított mező alapján szűr. Ami gond, hogy a kiimutatás sorba rendez, így nem a dátum szerint fogod látni az eredményeket. És csak akkor frissül ha újra megnyitod a fájlt.A másik megoldás pedig egy makró használata, amely a munkalapra váltáskor mindig lefut. Azonban hogy feleslegesen ne vigyen át adatok kell neki egy jelzés azon sorokról amelyeket már átmásolt, ez van a negyedik oszlopban (ez elrejthető ha zavar). Az eredményt a Makroval lapra rakja.
A kód pedig:
Private Sub Worksheet_Activate()
Dim vLastRow As Long
Const vTargetSheet As String = "Makroval" 'a lap neve ahova másolni kell a lejártakat
Const vDatumOszlop As Long = 2 'hanyadik oszlopban van a dátum
Const vFlagOszlop As Long = 4 'jelzés hogy melyik lett másolva már
Dim i As Long
'megnézük a cél helyen az utolsó sort
vLastRow = Application.WorksheetFunction.CountA(Sheets(vTargetSheet).Range("A:A")) + 1
'az aktuális lap sorain végigmegyünk
For i = 2 To Application.WorksheetFunction.CountA(Range("A:A"))
'ahol nincs kitöltve a másolás oszlop és a dátum a múltban van azokat másoljuk
If IsEmpty(Cells(i, vFlagOszlop)) And Cells(i, vDatumOszlop) < Date Then
Range(Cells(i, 1), Cells(i, vDatumOszlop)).Copy Destination:=Sheets(vTargetSheet).Range("A" & vLastRow)
'flaget beállítjuk
Cells(i, vFlagOszlop) = "x"
vLastRow = vLastRow + 1
End If
Next i
End Subüdv.
Új hozzászólás Aktív témák
- Milyen autót vegyek?
- Óvodások homokozója
- Highguard
- HiFi műszaki szemmel - sztereó hangrendszerek
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Telekom mobilszolgáltatások
- Autós topik
- LEGO klub
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- One otthoni szolgáltatások (TV, internet, telefon)
- További aktív témák...
- Antivírus szoftverek, VPN
- PC Game Pass előfizetés
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- Alienware 17r4 olvass
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RTX 5060 8GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! ASUS ROG GL10DH brand számítógép - R7 3700X 32GB DDR4 512GB SSD RTX 2060S 8GB 500W W11
- Használt iPhone 13 felvásárlás gyors, korrekt, biztonságos
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Fferi50

