-
Fototrend
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
-
Fferi50
Topikgazda
válasz
the radish
#28551
üzenetére
Szia!
Úgy gondolom, az a probléma, hogy a meghívott makróból nem ugyanabba a helyzetbe térsz vissza, ahonnan meghívtad:
Rows(tol & ":" & ig).copy WSM.Range("A2") Ezzel átmásolod a sorokat a forrás munkalapról a cél munkalapra
proba
Itt a másolandó munkafüzet innen nevű munkalapja az aktív.
Itt viszont:
Sub proba()
Range("A1:E3693").Select ' még mindig a másolandó munkafüzet aktív, annak az A:E oszlopát másolod
Selection.copy
Windows("B.xls").Activate 'átváltasz a cél munkafüzetre
Sheets("Munka2").Select 'abban is a Munka2 munkalapra
Range("A1").Select 'és ide másolod be a kijelölt részeket
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A1").Select
Sheets("ide").Select ' itt pedig a cél munkafüzet ide nevű munkalapját aktíválod - a cél munkafüzet marad az aktív!!! - Pedig a másolandó munkalap volt aktív, amikor a makrót meghívtad!!!
'Azaz ide a Windows("A.xls").Activate sor kellene ezen sor helyett.
MsgBox "Makró"
End SubTovábbá nem egészen értem, miért kell a Select - Copy - Paste és munkafüzet aktíválások sora (amiben el is vesztél szépen
).
A Copy metódusnak van egy Destination paramétere, amivel megadhatod, hogy hova másolja át az adott tartományt. (Ráadásul ezt alkalmazod is a fejléc másolásánál!).
Vagyis a másolás egy sorral megoldható:
Range('A1:E3693").copy destination:=WSM.parent.Sheets("Munka2").range("A1")
Magyarázat: A WSM.parent eredménye a B munkafüzet, így a másolás egyből annak Munka2 munkalapjára megy át.A rövidebb makród azért "tökéletes", mert abban csak egy üzenet van és nem végzel vele semmilyen egyéb - munkalap, munkafüzet megváltoztatási - feladatot.
A leírtakból az is kiderül, ha nem kell mást csinálnia a meghívott makrónak, csak ezt a másolást, akkor nincs is rá szükség, mert az egy sort be lehet oda is szúrni a meghívás helyére.
Bocsi, hogy egy "lerágott csontot" próbáltam meg egy kicsit kibogozni eléggé elkésve, de csak most volt időm foglalkozni vele.
Üdv.
-
Delila_1
veterán
válasz
the radish
#28551
üzenetére
Az Else ágba írtam be két sort, és akkor nincs szükség a külön makróra.
Else
ig = Application.Match(sorszam, Columns(1), 1)
Rows(tol & ":" & ig).copy WSM.Range("A2")
Range("A:E").copy WSM.Sheets("Munka2").Range("A1") '1
WSI.Activate '2
' Masolas 'Itt indul a saját makród ****** megjegyzésbe tettem
sorszam = sorszam + 1 'növeljük a keresendő értéket
End IfHiába írtam át a makród nevét, még mindig van valami disznóság, másképp a VBE átírta volna a copy-t Copyra.
Új hozzászólás Aktív témák
- Megbüntették, ezért feloszlatná az EU-t Elon Musk
- Töltő már van a Galaxy S26 Ultrához
- Bestbuy játékok
- Temu
- Chieftec-Prohardver nyereményjáték
- Házimozi belépő szinten
- Hat év támogatást csomagolt fém házba a OnePlus Nord 4
- Irodát kért, de gyárat kapott Elon Musk a Samsungtól
- HiFi műszaki szemmel - sztereó hangrendszerek
- MasterDeeJay: Harc a DDR5 árak ellen
- További aktív témák...
- iPhone 14 128GB /Akku 85%/Független/Újszerű állapot/
- HP EliteBook 840 G7 i5-10210U 16GB 512GB FHD 400nit 1 év garancia
- HIBÁTLAN iPhone 15 Pro Max 512GB E-SIM Blue Titanium-1 ÉV GARANCIA - Kártyafüggetlen, MS4262, 95% Ak
- Honor 200 Lite / 8/256GB / Kártyafüggetlen / 12HÓ Garancia
- SanDisk Extreme Portable 8TB (SDSSDE61-8T00-G25)
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
).
Fferi50
