- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Milyen TV-t vegyek?
- Házimozi haladó szinten
- OLED TV topic
- Milyen billentyűzetet vegyek?
- Szellőzésre kihegyezett, "lopakodó" Corsair ház jött a megfizethető szegmensbe
- TCL LCD és LED TV-k
- OLED monitor topic
- Azonnali alaplapos kérdések órája
- Szélsebes portok az MSI legfrissebb, MAG szériás alaplapján
-
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
-
Delila_1
veterán
válasz
m.zmrzlina
#10421
üzenetére
Private Sub Worksheet_Change(ByVal Target As Range)
'A B.xls füzetből indulunk. A munkalaphoz rendelt eseménykezelő
'csak a saját munkalapján tud dolgozni, ezért innen indítunk
'olyan makrókat, amik nincsenek munkalaphoz rendelve.
Application.EnableEvents = False 'Eseménykezelés letiltása
Dim utvonal, Érték, sor%
sor% = Target.Row 'Adatbevitel sora
utvonal = Cells(sor%, 1) 'Az A oszlopba bevitt érték
If Target.Column = 1 Then 'Ha az A oszlopba vittél be adatot,
Darabteli utvonal, sor% 'meghívom a Darabteli makrót, átadva a 2 változót
End If
If Target.Column = 2 Then 'Ha a B oszlopba írsz értéket,
Érték = Cells(sor%, 2) 'az Érték változó vegye fel a bevitt értéket
Beír Érték 'Beír makró meghívása, az Érték változó átadásával
End If
Application.EnableEvents = True 'Eseménykezelés engedélyezése
End SubSub Darabteli(utvonal, sor%)
'Ez a makró az átvett "utvonal" változót keresi az A.xls Munka1 lapján, a B oszlopban,
'a COUNTIF (darabteli) függvénnyel. A B.xls A oszlopába történt beírás hívja meg a makrót.
Dim ws As Object, usor%
Set ws = Workbooks("A.xls").Sheets("Munka1") 'A ws változó tartalma innen kezdve az egyenlőség jobb oldala
usor% = ws.Range("B1").End(xlDown).Row + 1 'Első üres sor a ws.B oszlopában
If Application.WorksheetFunction.CountIf(ws.Range("B:B"), utvonal) = 0 Then
'Ha a B.xls A oszlopába beírt "utvonal" nem található az A.xls B oszlopában,
'vagyis a darabteli=0
ws.Cells(usor%, 2) = utvonal 'az utvonal változót írja be az ws.B oszlop első üres sorába
Else
'ha van "utvonal" a ws.B oszlopában, keresse meg, és a hozzá tartó H oszlopban lévő értéket
'írja be a kiinduló füzet (B.xls) B oszlopába.
'Itt nem kell a B.xls-re hivatkozni, mert nem léptünk át Select-tel az A.xls-be, csak leskelődtünk.
Cells(sor%, 2) = Application.WorksheetFunction.VLookup(utvonal, ws.Columns("B:H"), 7, 0)
End If
End SubSub Beír(Érték)
'A B.xls B oszlopába történt beírás hívja meg ezt a makrót.
'Akkor írsz értéket a B oszlopba, ha az fkeres nem talált A oszlopbeli útvonalat.
Dim ws As Object, usor%
Set ws = Workbooks("A.xls").Sheets("Munka1") 'Mint fent
usor% = ws.Range("H1").End(xlDown).Row + 1 'Mint fent
ws.Cells(usor%, 8) = Érték 'A ws.H oszlop első üres sorába beírja az értéket
End SubAz eseménykezelés letiltása azért kell a laphoz rendelt makróba, mert a munkalapon történt minden változásra beindul. Próbáld ki az Application.EnableEvents = False sor nélkül lépésenként futtatni, és meglátod, hányszor fut le feleslegesen. A lépésenként futtatáshoz tegyél a makró elejére egy stop-ot, majd írj a B.xls-be egy útvonalat, vagy km-t.
Az end sub előtt vissza kell állítani True értékkel!
Új hozzászólás Aktív témák
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Arc Raiders
- Milyen TV-t vegyek?
- Xiaomi 17 Ultra - jó az optikája
- Házimozi haladó szinten
- AirDrop támogatást kap a Galaxy S26 széria
- Szappanos topik (Dettol, Xiaomi, Lebath...)
- exHWSW - Értünk mindenhez IS
- Horgász topik
- AI, GitHub Copilot, Claude, Gemini
- További aktív témák...
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Game Pass Ultimate előfizetések 1 - 36 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN! AKCIÓ!
- PC Játékok
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- BESZÁMÍTÁS! ASRock A520M R5 5500 16GB DDR4 512GB SSD RTX 2060 6GB CM Masterbox MB311L ARGB 500W
- Telefon felvásárlás!! Samsung Galaxy S21/Samsung Galaxy S21+/Samsung Galaxy S21 Ultra
- HIBÁTLAN iPhone 15 Pro 128GB Black Titanium-1 ÉV GARANCIA - Kártyafüggetlen, MS4660
- iKing.Hu - Használt, karcmentes Google Pixel 9 Pro Fold Obsidian színben, 256 GB tárhellyel, 6 hónap
- GAMING PC! Intel i5-12400F / RTX 4060 Ti / 16GB DDR4 / H610 / 512GB NVMe / 600w! BeszámítOK
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Fferi50
