Registriert seit: 30.04.2014
Version(en): Office 2013
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
Mit freundlichem Gruß
Rudi
WIN 7
Office 2010
Registriert seit: 28.07.2015
Version(en): 365
Hallo Rudi,
probiere es so:
Code:
Sub Beleg_drucken()
On Error GoTo Er
'
' Beleg_drucken Makro
'
'
Application.ScreenUpdating = False
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
Ex:
Application.ScreenUpdating = True
Exit Sub
Er:
Application.ScreenUpdating = True
MsgBox "Upps"
Resume Ex
End Sub
Gruß Carsten
Folgende(r) 1 Nutzer sagt Danke an DbSam für diesen Beitrag:1 Nutzer sagt Danke an DbSam für diesen Beitrag 28
• Rudi
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
06.08.2015, 12:11
(Dieser Beitrag wurde zuletzt bearbeitet: 06.08.2015, 12:14 von RPP63.)
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• Rudi
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• Rudi
Registriert seit: 30.04.2014
Version(en): Office 2013
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.
Mit freundlichem Gruß
Rudi
WIN 7
Office 2010
Registriert seit: 30.04.2014
Version(en): Office 2013
Sorry, Namen verwechselt
Ralf >> Carsten
Carsten >> Ralf
Mit freundlichem Gruß
Rudi
WIN 7
Office 2010
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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=78Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 30.04.2014
Version(en): Office 2013
(06.08.2015, 12: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 ......
Mit freundlichem Gruß
Rudi
WIN 7
Office 2010
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
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.
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi,
(06.08.2015, 20: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.