Hirdetés
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Meggyi001: Áram nélkül....méltóság nélkül.....
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- gban: Ingyen kellene, de tegnapra
- Hieronymus: Az igaz barátság kezdete
- Mr Dini: Mindent a StreamSharkról!
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- Meggyi001: Amire figyelned kell Párizsban is...
-
LOGOUT
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
- Fotók, videók mobillal
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Xbox tulajok OFF topicja
- Valami baja van a tápomnak
- Víz- gáz- és fűtésszerelés
- Minden a BlackBerry telefonokról és rendszerről
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- 3D nyomtatás
- Nyíregyháza és környéke adok-veszek-beszélgetek
- Horgász topik
- További aktív témák...
- HIBÁTLAN iPhone SE 2020 64GB Black-1 ÉV GARANCIA - Kártyafüggetlen, MS4001
- Asus ProART Gaming PC! i9-13900K / RTX 4080 Super / 32GB DDR5 / 1TB NVMe / 1000w Gold! BeszámítOK
- 277 - Lenovo Legion Pro 7 (16IAX10H) - Intel Core U9 275HX, RTX 5080
- GYÖNYÖRŰ iPhone 15 Pro Max 256GB Blue Titanium-1 ÉV GARANCIA - Kártyafüggetlen, MS4240
- AKCIÓ! Intel Core i9 9900K 8 mag 16 szál processzor garanciával hibátlan működéssel
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
).
Fferi50