Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Macro nach Druck sehr langsam

Forumthread: Macro nach Druck sehr langsam

Macro nach Druck sehr langsam
Max
Hallo an alle,
habe das Problem das nach einem Druck das Makro sehr, sehr langsam abgearbeitet wird.
Das Makro kopiert simble Werte einer Formel in das erste Tabellenblatt. Dabei werden nur Werte eingefügt. Zuvor und danach werden im Zielbereich die Zellen entsprechend gelöscht, getrennt und anschließend wieder verbunden.
Nach einem Neustart der Datei läuft das Macro wieder mit voller Geschwindigkeit.
Hat jemand eine Idee was hier die Ursache sein kann, und eine Lösung für gleiches?
Vielen Dank im vorraus!
Hier das Macro:

Sub Makro1()
' Makro1 Makro
Range("A1:F5").Select
Range("A5").Activate
Selection.ClearContents
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
Selection.UnMerge
Sheets("Tabelle2").Select
Range("A1:A5").Select
Selection.Copy
Sheets("Tabelle1").Select
Range("A1:A5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1:F1").Select
Range("F1").Activate
Application.CutCopyMode = False
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
Range("A2:F2").Select
Range("F2").Activate
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
Range("A3:F3").Select
Range("F3").Activate
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
Range("A4:F4").Select
Range("F4").Activate
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
Range("A5:F5").Select
Range("F5").Activate
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
Range("G1").Select
End Sub
Bye, Max
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Application.Screenupdating = False
13.02.2010 17:54:07
dieter(drummer)
Hi Max,
setzte am Anfang VOR dieser Zeile (Range("A1:F5").Select):

Application.Screenupdating = False

und am Ende NACH dieser Zeile (Range("G1").Select:

Application.Screenupdating = False
.
So wird die Bildschirmaktualisierung am Anfang abgeschaltet und am Ende wieder eingeschaltet.
Gruß Dieter(Drummer)
Anzeige
selten ein sinnloseres Makro gesehen!
13.02.2010 17:58:39
Josef
Hallo Max,

was soll den das werden?
Beschreib mal, was du erreichen willst.

Gruß Sepp

Anzeige
AW: Macro nach Druck sehr langsam
14.02.2010 00:21:18
Gerd
Hallo Max,
besser so.
Sub einmalig()
Dim C As Range
For Each C In Sheets("Tabelle1").Range("A1:F5")
If C.MergeCells = True Then C.UnMerge
Next
End Sub

Sub Plan_B()
Dim rw As Long
Sheets("Tabelle1").Range("A1:A5").Value = Sheets("Tabelle2").Range("A1:A5").Value
For rw = 1 To 5
Sheets("Tabelle1").Range("A" & rw & ":F" & rw).HorizontalAlignment =  _
xlCenterAcrossSelection
Sheets("Tabelle1").Range("A" & rw & ":F" & rw).VerticalAlignment = xlCenter
Next
End Sub
Gruß Gerd
Anzeige
AW: Macro nach Druck sehr langsam
14.02.2010 14:32:13
Max
Hallo und vielen Dank für dir Antworten!
@dieter: Dankeschön, damit scheint mein Problem behoben zu sein.
@Josef: Dieses "sinnlose"Macro erhält man mit der Rekorderfunktion und mit einer Portion geringer eigener Erfahrung :) Am Ende handelt es sich hier um ein Messprotokoll auf dem die Kundenadresse automatisiert eingefügt wird. Die Adresse wird vorab anhand einer Kundennummer mit Hilfe von S-Verweisen ausgewählt. Um flexibel zu bleiben werden nur die Werte der S-Verweise in das Protokoll kopiert.
@Gerd: Danke, werde Deinen Vorschlag mit übernehmen. Damit wird das Makro um einiges übersichtlicher.
Gruß
Max
Anzeige
AW: @Max. Danke für Rückmeldung. owT
14.02.2010 17:04:41
dieter(drummer)
owT = ohne weiteren Text.
Gruß Dieter(Drummer)
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige