Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1136to1140
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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)
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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige