Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro beschleunigen

Forumthread: Makro beschleunigen

Makro beschleunigen
25.01.2004 08:44:12
Rolf St.
Hallo Excel Experten!
Ich habe mir Dank eurer Hilfe folgendes Makro zusammengebaut!
Gibt es eine Möglichkeit das Makro zu beschleunigen?

Sub Uebertragen()
Dim rng As Range
Dim zelle As Range
Dim lRow As Long
Dim zell As Range
Application.ScreenUpdating = False
Sheets("bitburger").Activate
Range(Cells(2, 1), Cells(1000, 11)).ClearContents
Sheets("Eingabe").Activate
With Worksheets("bitburger")
lRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
Range("F2:F1000").Copy .Cells(lRow, 1)
End With
With Worksheets("bitburger")
lRow = .Cells(Rows.Count, 2).End(xlUp).Row + 1
Range("E2:E1000").Copy .Cells(lRow, 2)
End With
With Worksheets("bitburger")
lRow = .Cells(Rows.Count, 3).End(xlUp).Row + 1
Range("J2:J1000").Copy .Cells(lRow, 3)
End With
With Worksheets("bitburger")
lRow = .Cells(Rows.Count, 4).End(xlUp).Row + 1
Range("I2:I1000").Copy .Cells(lRow, 4)
End With
With Worksheets("bitburger")
lRow = .Cells(Rows.Count, 11).End(xlUp).Row + 1
Range("G2:G1000").Copy .Cells(lRow, 11)
End With
With Worksheets("bitburger")
lRow = .Cells(Rows.Count, 7).End(xlUp).Row + 1
Range("B2:B1000").Copy .Cells(lRow, 7)
End With
With Worksheets("bitburger")
lRow = .Cells(Rows.Count, 8).End(xlUp).Row + 1
Range("A2:A1000").Copy .Cells(lRow, 8)
End With
With Worksheets("bitburger")
lRow = .Cells(Rows.Count, 9).End(xlUp).Row + 1
Range("D2:D1000").Copy .Cells(lRow, 9)
End With
With Worksheets("bitburger")
lRow = .Cells(Rows.Count, 10).End(xlUp).Row + 1
Range("L2:L1000").Copy .Cells(lRow, 10)
End With
Application.CutCopyMode = False
Sheets("bitburger").Select
Range("A1").Select
Dim i As Integer
For i = 2 To 1000
Cells(i, 5).Value = Cells(i, 11).Value & Cells(i, 10).Value
Next i
Sheets("bitburger").Select
Range("A1").Select
Set rng = Worksheets("bitburger").Range("E2:E1000")
rng.Offset(0, 1).Clear
For Each zelle In rng
If zelle <> "" Then
zelle.Offset(0, 1) = WorksheetFunction.CountIf(Range("E2:E" & zelle.Row), zelle.Value)
End If
Next
Range("I2:I1000").Select
Selection.NumberFormat = "h:mm:ss"
Range("A1").Select
For Each zell In Range("G2:G1000")
zell = Left(zell, 1)
Next zell
Range("F2:I1000").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Columns("E:E").Select
Selection.EntireColumn.Hidden = True
Columns("J:K").Select
Selection.EntireColumn.Hidden = True
Range("A1").Select
Application.ScreenUpdating = False
End Sub

Vielen Dank für eure Hilfe!
Tschüß
Rolf
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro beschleunigen
25.01.2004 09:37:37
Josef Ehrensberger
Hallo Rolf!
Versuchs mal so.
Bei Deinem Tabellenaufbau ist recht viel mehr, so glaube ich
nicht möglich.


Sub Uebertragen()
Dim wksE As Worksheet
Dim wksB As Worksheet
Dim rng As Range
Dim zelle As Range
Dim lRow As Long
Dim zell As Range
   With Application
   .ScreenUpdating = False
   .EnableEvents = False
   .Calculation = xlCalculationManual
   .Cursor = xlWait
   End With
Set wksE = Sheets("Eingabe")
Set wksB = Sheets("bitburger")
   With wksB
   .Range(.Cells(2, 1), .Cells(1000, 11)).ClearContents
   lRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
   wksE.Range("F2:F1000").Copy .Cells(lRow, 1)
   lRow = .Cells(Rows.Count, 2).End(xlUp).Row + 1
   wksE.Range("E2:E1000").Copy .Cells(lRow, 2)
   lRow = .Cells(Rows.Count, 3).End(xlUp).Row + 1
   wksE.Range("J2:J1000").Copy .Cells(lRow, 3)
   lRow = .Cells(Rows.Count, 4).End(xlUp).Row + 1
   wksE.Range("I2:I1000").Copy .Cells(lRow, 4)
   lRow = .Cells(Rows.Count, 11).End(xlUp).Row + 1
   wksE.Range("G2:G1000").Copy .Cells(lRow, 11)
   lRow = .Cells(Rows.Count, 7).End(xlUp).Row + 1
   wksE.Range("B2:B1000").Copy .Cells(lRow, 7)
   lRow = .Cells(Rows.Count, 8).End(xlUp).Row + 1
   wksE.Range("A2:A1000").Copy .Cells(lRow, 8)
   lRow = .Cells(Rows.Count, 9).End(xlUp).Row + 1
   wksE.Range("D2:D1000").Copy .Cells(lRow, 9)
   lRow = .Cells(Rows.Count, 10).End(xlUp).Row + 1
   wksE.Range("L2:L1000").Copy .Cells(lRow, 10)
   Dim As Integer
      For i = 2 To 1000
      .Cells(i, 5).Value = .Cells(i, 11).Value & .Cells(i, 10).Value
      Next i
   Set rng = .Range("E2:E1000")
   rng.Offset(0, 1).Clear
      For Each zelle In rng
         If zelle <> "" Then
         zelle.Offset(0, 1) = WorksheetFunction.CountIf(Range("E2:E" & zelle.Row), zelle.Value)
         End If
      Next
   .Range("I2:I1000").NumberFormat = "h:mm:ss"
      For Each zell In .Range("G2:G1000")
      zell = Left(zell, 1)
      Next zell
      With Range("F2:I1000")
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
      End With
   .Columns("E:E").EntireColumn.Hidden = True
   .Columns("J:K").EntireColumn.Hidden = True
   End With
   With Application
   .ScreenUpdating = True
   .EnableEvents = True
   .Calculation = xlCalculationAutomatic
   .Calculate
   .Cursor = xlDefault
   End With
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5

Gruß Sepp
Anzeige
AW: Makro beschleunigen
25.01.2004 18:09:35
Rolf St.
Hallo Josef!
Vielen Dank funktioniert super!
Tschüß
Rolf
;

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