VBA Makroänderung
06.04.2016 15:33:42
Bernd
ich habe eine bitte an Euch. Könnte mir jemand meinen Code, welchen ich mit dem Makrorecorder aufgezeichnet habe, etwas verfeinern bzw. verschönern und/oder kürzer machen?
Sub Löschen()
' Löschen Makro
ActiveSheet.Unprotect
Range( _
"C4:V4,C9:V11,C13:V13,C18:V20,C22:V22,C27:V29,C5:D8,F5:H8,J5:L8,N5:P8,R5:T8,V5:V8,C14: _
_
D17,F14:H17,J14:L17,N14:P17,R14:T17,V14:V17,C23:D26,F23:H26,J23:L26,N23:P26,R23:T26,V23:V26" _
).Select
Range("V23").Activate
ActiveWindow.SmallScroll Down:=24
Union(Range( _
"R32:T35,V32:V35,C42:D45,F42:H45,J42:L45,N42:P45,R42:T45,V42:V45,C4:V4,C9:V11,C13:V13, _
_
C18:V20,C22:V22,C27:V29,C5:D8,F5:H8,J5:L8,N5:P8,R5:T8,V5:V8,C14:D17,F14:H17,J14:L17,N14:P17,R14: _
T17,V14:V17,C23:D26,F23:H26,J23:L26,N23:P26,R23:T26,V23:V26" _
), Range("C31:V31,C36:V38,C41:V41,C46:V48,C32:D35,F32:H35,J32:L35,N32:P35")). _
Select
Range("V42").Activate
ActiveWindow.SmallScroll Down:=21
Union(Range( _
"R32:T35,V32:V35,C42:D45,F42:H45,J42:L45,N42:P45,R42:T45,V42:V45,C50:V50,C55:V57,C59: _
V59,C64:V66,C68:V68,C73:V75,C60:D63,F60:H63,J60:L63,N60:P63,R60:T63,V60:V63,C69:D72,F69:H72,J69: _
L72,N69:P72,R69:T72,V69:V72,C51:D54,F51:H54,J51:L54,N51:P54,R51:T54,V51:V54" _
), Range( _
"C4:V4,C9:V11,C13:V13,C18:V20,C22:V22,C27:V29,C5:D8,F5:H8,J5:L8,N5:P8,R5:T8,V5:V8,C14: _
_
D17,F14:H17,J14:L17,N14:P17,R14:T17,V14:V17,C23:D26,F23:H26,J23:L26,N23:P26,R23:T26,V23:V26,C31: _
V31,C36:V38,C41:V41,C46:V48,C32:D35,F32:H35,J32:L35,N32:P35" _
)).Select
Range("V51").Activate
ActiveWindow.ScrollRow = 42
ActiveWindow.ScrollRow = 34
ActiveWindow.ScrollRow = 27
ActiveWindow.ScrollRow = 24
ActiveWindow.ScrollRow = 20
ActiveWindow.ScrollRow = 19
ActiveWindow.ScrollRow = 16
ActiveWindow.ScrollRow = 15
ActiveWindow.ScrollRow = 13
ActiveWindow.ScrollRow = 12
ActiveWindow.ScrollRow = 10
ActiveWindow.ScrollRow = 9
ActiveWindow.ScrollRow = 7
ActiveWindow.ScrollRow = 6
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 4
ActiveWindow.ScrollRow = 3
ActiveWindow.ScrollRow = 2
ActiveWindow.ScrollRow = 1
Selection.ClearContents
ActiveWindow.ScrollRow = 34
ActiveWindow.ScrollRow = 22
ActiveWindow.ScrollRow = 9
ActiveWindow.ScrollRow = 4
ActiveWindow.ScrollRow = 1
Range("C4:F4").Select
ActiveSheet.Protect
End Sub
Dieses Makro bezieht sich jedoch nur auf das aktive Tabellenblatt. Ich würde es aber gerne so lösen, dass ich nur eine Schaltfläche erstellen muss und mir das Makro meine gesamten Bereiche aller 12 Tabellenblätter löscht.Meine Tabellenblätter habe ich nach den Monatsnamen betitelt, also Jänner, Februar, März usw. bis Dezember.
Der zu löschende Bereich (siehe mein aufgezeichnetes Makro) ist IMMER derselbe.
Hoffe dies ist auch ohne Beispielmappe für Euch lösbar, ansonsten werde ich morgen eine dementsprechend abgespeckte Version hochladen.
Danke vorab und nette Grüße,
Bernd