VBA kopieren einfügen ohne sichtbaren sprung
#1
Hallo,
ich habe per VBA mehrere Kopierfunktionen erstellt nur leider springt beim Ausführen das Fenster so komisch hoch und runter, wahrscheinlich weil ich das Makro so aufgenommen habe. Kann man diese springerei unsichtbar machen?

Hier der Code:

Sub Übertrag_Februar()
Range("M9:T14").Select
Selection.Copy
Range("E122:L127").Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("M22:T28").Select
Selection.Copy
Range("E135:L141").Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("M34:T40").Select
Selection.Copy
Range("E147:L153").Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("M50:T61").Select
Selection.Copy
Range("E163:L174").Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("M69:T77").Select
Selection.Copy
Range("E182:L190").Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("M85:T89").Select
Selection.Copy
Range("E198:L202").Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("M97:T112").Select
Selection.Copy
Range("E210:L225").Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveWindow.SmallScroll UP:=76
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.SmallScroll ToLeft:=2
End Sub
Top
#2
Hi,

schreib am Anfange Deines Makros

Code:
Application.ScreenUpdating = False

und an das Ende schreibst Du

Code:
Application.ScreenUpdating = True

Gruß
Max
Top
#3
Vielen Dank :23:
Top
#4
Hi,

befreie zuerst einmal den Code von den ganzen Selects. Dann zu Beginn "Application.ScreenUpdating = False" eintragen und am Ende dasselbe mit =True. Damit schaltest du die Bildschirmaktualisierung aus und wieder ein.


Code:
Sub Übertrag_Februar()

Application.ScreenUpdating = False
Range("M9:T14").Copy
Range("E122:L127").PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("M22:T28").Copy
Range("E135:L141").PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("M34:T40").Copy
Range("E147:L153").PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("M50:T61").Copy
Range("E163:L174").PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("M69:T77").Copy
Range("E182:L190").PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("M85:T89").Copy
Range("E198:L202").PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("M97:T112").Copy
Range("E210:L225").PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.ScreenUpdating = True
End Sub

Nachtrag:

Du hast bestimmt gesehen, dass ich die letzten 4 Zeilen Code gelöscht habe. Die wurden mit aufgezeichnet und sind überflüssig. Wenn du nach dem Kopieren in einer bestimmten Zelle den Cursor haben willst, fügst du die Zeile Range ("A1").Activate ein. Damit landest du immer in Zelle A1
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#5
Vielen Dank! Super klappt!
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste