Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
368to372
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
368to372
368to372
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige