Das Makro soll ausserhalb des sichtbaren Bildschirms seine Aufgaben erledigen und und der Cursor soll stehen bleiben, wo er beim Start des Makros stand. Am Ende evtl. ein "Refresh", aber kein Hüpfen der Anzeige während der Ausführung.
ein Hallo zu Beginn und ein Gruß am Ende läst den Beitrag doch gleich viel freundlicher aussehen. Auch wenn Du den Beitrag am Computer eingibst sitzen an der anderen Seite doch Leute und keine Maschinen die Deine Frage beantworten und da sollte Zeit für die paar Worte doch vorhanden sein.
In VBA kannst Du zu 99% auf Select; Activate und ähnliche Befehle verzichten. Das mit dem Recorder aufgezeihnete NMakro muß noch bereibnigt werden.
Ein behelf
Bildschirmaktualsierung, Makro laufen lassen ohne Anzeige
damit die Ausführung des Makros nicht angezeigt wird, kann man vor den Code schreiben
application.screenupdating = False im Hintergrund ohne Anzeige
Man darf dann nur nicht vergessen, dieses wieder auf True zu setzen.
Generell sollte man aber alles mit Activate und Select vermeiden
Der Code wurde getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.
Microsoft MVP für Excel
Zur Zeit ist die automatische E-Mailbenachrichtigung abgeschaltet. Damit ist es dem Zufall überlassen, ob ich auf Rückfragen antworte.
Ich habe keine Lust in gewissen Abständen das Forum nach meinen Beiträgen zu durchsuchen, um zu sehen ob Rückfragen gibt.
Ein kleiner Gruss, wie "Guten Morgen Forum" o.s.ä., lässt DEINE Frage gleich viel freundlicher erscheinen und erhöht die Bereitschaft darauf zu antworten ;-)
... und mit
True
wieder einschalten
Gruss Rainer
Sub ZeileEinfügen()
'
' ZeileEinfügen Makro
' Makro am 22.05.2003 von Hans Jürgen aufgezeichnet
'
' Tastenkombination: Strg+k
'
Dim ac As Range
Application.ScreenUpdating = False
Set ac = ActiveCell
ac.Select
ActiveSheet.Unprotect
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Copy
Selection.Insert Shift:=xlDown
Range("L3").Select
ActiveCell.FormulaR1C1 = "=IF(RC2=R[1]C2,"""",RC2)"
Range("M3").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-11]=R[1]C[-11],"""",RC[-3])"
Range("L3:M3").Select
Application.CutCopyMode = False
Selection.Copy
Range("L4").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
ActiveCell.Offset(0, -3).Range("A1").Select
Range("A4").Select
Application.CutCopyMode = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ac.Select
Application.ScreenUpdating = True
End Sub
Das Makro funktioniert so, also kein dringender Handlungsbedarf. Würde mich nur interessieren, ob es durch Umstellung der Formeln in Spalte L z.B. einfacher geht.
Gruß
Hans Jürgen
es läuft schon aber bei größeren Programmen spielt die Zeit schon eine Rollle. Lasse mal die Beiden Makro laufen.
Der Code wurde getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.
Microsoft MVP für Excel
Zur Zeit ist die automatische E-Mailbenachrichtigung abgeschaltet. Damit ist es dem Zufall überlassen, ob ich auf Rückfragen antworte.
Ich habe keine Lust in gewissen Abständen das Forum nach meinen Beiträgen zu durchsuchen, um zu sehen ob Rückfragen gibt.