Activex elemek törlése másolt munkalapról

Activex elemek törlése másolt munkalapról
2020-03-21T23:16:37+01:00
2020-03-21T23:52:09+01:00
2022-10-15T21:25:21+02:00
Pados
Hali.

Egy adott munkalap adott területét kéne átmásolni egy új munkafüzetbe.
A problémám, hogy ha így csinálom:
WB.Worksheets(WS).Range("A1:H124").Copy Workbooks(Név).Worksheets("Munka1").Range("A1").Paste
nem tudom a cellaformátumokat hogy másolja át. Azt külön "manuálisan" kell megadni neki?

ha meg átmásolom az egész munkalapot, 

WB.Worksheets(WS).Copy after:=Workbooks(Név).Worksheets("Munka1") Workbooks(Név).Worksheets("lap").Name = Fájlnév
 akkor átmásolja a vezérlő gombokat is, amit nem tudom hogy kell törölni,csak visible=false -val tudom eltüntetni. Törölni nem lehet VB-ből? 
már megint bénázok ezzel a problémával vagy másfél órája.
Mutasd a teljes hozzászólást!
Szia!
A munkalapon levő vezérlők alakzatként (Shape) vagy rajzolt objektumként (Drawingobject) érhetők el és természetesen törölhetők is VBA-ból.
Törölni egyenként For Each ciklussal lehet a Shapes használatával vagy egy menetben a DrawingObjects használatával.

Workbooks(Név).Worksheets("lap").DrawingObjects.Delete
Vagy egyenként:

For Each sh In Workbooks(Név).Worksheets("lap").Shapes: sh.Delete:Next illetve For Each drw In Workbooks(Név).Worksheets("lap").DrawingObjects: drw.Delete:Next
Az egyenkénti törlésnek az lehet az előnye, hogy törlés előtt megnézheted pl. a nevét és eldöntheted, hogy valóban törölni kell-e.

Üdv.
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd