Hallo Gemeinde,
habe folgendes Code Beispiel, wenn ich nun "Beleg_drucken" Starte dann wird am Bildschirm jeder Schrit angezeigt das heißt er springt von Tabelle zu Tabelle, fügt zeilen ein usw.
Das möchte ich nicht, ist es möglich dass die Anzeige auf dem Sheet "Eingabe 1" stehen bleibt wärend er das Makro abarbeitetn ?
Sub Beleg_drucken()
'
' Beleg_drucken Makro
'
'
Sheets("Beleg").Select
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _
:=True, IgnorePrintAreas:=False
DatenInArchiv
Sheets("Eingabe1").Select
Range("E15:I17").Select
Selection.ClearContents
Range("E15:I15").Select
End Sub
Sub DatenInArchiv()
'
' DatenInArchiv Makro
'
'
Sheets("Beleg-Archiv").Select
Rows("6:6").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Rows("2:2").Select
Selection.Copy
Rows("6:6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A2").Select
Application.CutCopyMode = False
End Sub
Hallo!
Das ganze selektieren ist völlig überflüssig.
Folgender "leicht" entschlackter Code macht exakt das Gleiche und dürfte erheblich schneller durchlaufen.
Diverse Default-Werte bei den Befehlen habe ich gestrichen, da überflüssig.
Mir ist klar, dass Dein Code vom Rekorder aufgezeichnet wurde.
Bei meinem Beispiel kann man aber schön sehen, dass er iaR überarbeitet werden sollte:
(Außerdem brauchst Du dann auch nicht die Bildschirmaktualisierung auszuschalten)
Code:
Sub Beleg_drucken()
Worksheets("Beleg").PrintOut
Call DatenInArchiv
Worksheets("Eingabe1").Range("E15:I17").ClearContents
End Sub
Sub DatenInArchiv()
With Worksheets("Beleg-Archiv")
.Rows(6).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
.Rows(2).Copy: .Rows(6).PasteSpecial xlPasteValues
End With
Application.CutCopyMode = False
End Sub
Gruß Ralf
Ergänzend:
Wenn Du DatenInArchiv nicht häufig aus anderen Subs aufrufst, kannst Du es natürlich auch gleich in Beleg_Drucken schreiben:
Code:
Sub Beleg_drucken()
Worksheets("Beleg").PrintOut
With Worksheets("Beleg-Archiv")
.Rows(6).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
.Rows(2).Copy: .Rows(6).PasteSpecial xlPasteValues
End With
Application.CutCopyMode = False
Worksheets("Eingabe1").Range("E15:I17").ClearContents
End Sub
Gruß Ralf
Funzt,
herzlichen Dankl an alle !!!
Carsten :\ Deine Variante sieht natürlich sehr schön schlank aus, würde ich auch bevorzugen wenn ich es schreiben könnte, diesen Aufwand möchte ich aber nicht betreiben.
für mich ist es einfacher wenn ich es mit dem Recorder aufnehme und ändere.
Die version von Ralf ist für mich derzeit "logisch" die kann ich immer so davor schalten und es funzt. Aber einen Aufgenommenen Code so zu veränder dass er geht kann ich leider ("noch") nicht.
Sorry, Namen verwechselt
Ralf >> Carsten
Carsten >> Ralf
Ist ja nicht tragisch, Rudi.
Mein alter Mathelehrer sagte allerdings: "Stillstand ist Rückschritt!"
Irgendwann kommst Du in eine Situation, dass Dein erstellter Code unerträglich langsam wird.
Dies kann man u.a. durch korrekte Referenzierung verhindern.
Lies Dir doch mal diesen interessanten Text durch:
http://www.online-excel.de/excel/singsel_vba.php?f=78
Gruß Ralf
(06.08.2015, 11:39)RPP63 schrieb: [ -> ]Ist ja nicht tragisch, Rudi.
Mein alter Mathelehrer sagte allerdings: "Stillstand ist Rückschritt!"
Irgendwann kommst Du in eine Situation, dass Dein erstellter Code unerträglich langsam wird.
Dies kann man u.a. durch korrekte Referenzierung verhindern.
Lies Dir doch mal diesen interessanten Text durch:
http://www.online-excel.de/excel/singsel_vba.php?f=78
Gruß Ralf
Ein Dozent von mir sagte "Du must nicht alles wissen, aber du musst wissen wo es steht"
Da Excel nicht zu meiner Kernkompetenz gehört, muss ich halt nachfragen.
Guter Link
Dafür gibt es ja die Speziallisten !!
Wünsche allen einen heißen Nachmittag ......
Hallo Rudi,
Zitat:Aber einen Aufgenommenen Code so zu veränder dass er geht kann ich leider ("noch") nicht.
... und wenn Du es nicht versuchst, dann kannst Du das auch in hundert Jahren
auch leider ("noch") nicht.
allerdings wirst Du Tausende von Dateien haben, die da mühsam durch den Code rumpeln.
Wohlan ... ans Werk .., wenn man sich daran gewöhnt hat, ist es plötzlich auch gar nicht mehr so schwer.
Hi,
(06.08.2015, 19:11)Käpt schrieb: [ -> ]wenn man sich daran gewöhnt hat, ist es plötzlich auch gar nicht mehr so schwer.
und wenn er an einer Kopie der Datei rumprobiert, kann ja auch nix passieren.