Thema Datum  Von Nutzer Rating
Antwort
Rot Makro Geschwindigkeit verbessern
11.06.2016 10:33:22 Björn
NotSolved
11.06.2016 11:35:21 Lukas
NotSolved
11.06.2016 11:48:52 Gast89287
NotSolved
11.06.2016 12:08:24 Björn
NotSolved
11.06.2016 15:29:13 Gast16948
NotSolved
11.06.2016 18:53:06 Björn
NotSolved
11.06.2016 19:13:09 Gast21949
NotSolved
12.06.2016 10:16:45 Björn
NotSolved
12.06.2016 10:41:01 Björn
NotSolved
12.06.2016 12:06:56 Gast11427
NotSolved
12.06.2016 12:14:28 Björn
NotSolved
12.06.2016 12:35:43 Gast23786
NotSolved

Ansicht des Beitrags:
Von:
Björn
Datum:
11.06.2016 10:33:22
Views:
1449
Rating: Antwort:
  Ja
Thema:
Makro Geschwindigkeit verbessern

Guten Tag an das Forum,

ich habe ein Makro erstellt (siehe unten) das Funktioniert auch ganz gut.

Allerdings ist es sehr langsam, bei einer Übergabe von 5000 Zeilen benötigt es ca. 40 Minuten.

Meine Frage kann man das Beschleunigen oder habe ich hier ein Fehler drin?

Sub Übergabe_Kalku()
Application.EnableEvents = False 'Bildschirm abschalten
' Übergibt die Werte der Ausarbeitung an die Kalkulation
On Error Resume Next 'Fehler beim Auftreten unterdrücken und das Makro weiterlaufen lassen
Worksheets("Ausarbeitung").Unprotect Password:="xxx" 'Blattschutz AUS
Worksheets("Kalkulation").Unprotect Password:="xxx"  'Blattschutz AUS
Dim lr As ListRow
Dim lo1 As ListObject
Dim lo2 As ListObject
Dim zMax1 As Long
Dim zMax2 As Long
Dim diff As Long
Dim i As Long

Set lo1 = Worksheets("Ausarbeitung").ListObjects("Tab_Ausarbeitung")
Set lo2 = Worksheets("Kalkulation").ListObjects("Tab_Kalkulation")
zMax1 = lo1.ListRows.Count
zMax2 = lo2.ListRows.Count
diff = zMax1 - zMax2

If diff > 0 Then

For i = 1 To diff
Set lr = lo2.ListRows.Add
Next i

ElseIf diff < 0 Then

For i = zMax2 To zMax2 + diff Step -1
lo2.ListRows(i).Delete
Next i

End If
Range("Tab_Kalkulation[Pos.]").Value = Range("Tab_Ausarbeitung[Pos.]").Value
    Range("Tab_Kalkulation[KD Text 1]").Value = Range("Tab_Ausarbeitung[KD Text 1]").Value
    Range("Tab_Kalkulation[Lieferant]").Value = Range("Tab_Ausarbeitung[Lieferant]").Value
    Range("Tab_Kalkulation[Sonepar-Nr.]").Value = Range("Tab_Ausarbeitung[Sonepar-Nr.]").Value
    Range("Tab_Kalkulation[Artikeltext]").Value = Range("Tab_Ausarbeitung[Artikeltext]").Value
    Range("Tab_Kalkulation[Hersteller Artikel-Nr.]").Value = Range("Tab_Ausarbeitung[Hersteller Artikel-Nr.]").Value
    Range("Tab_Kalkulation[Menge]").Value = Range("Tab_Ausarbeitung[Menge]").Value
    Range("Tab_Kalkulation[PE]").Value = Range("Tab_Ausarbeitung[PE]").Value
    Range("Tab_Kalkulation[ME]").Value = Range("Tab_Ausarbeitung[ME]").Value
Worksheets("Ausarbeitung").Protect Password:="xxx" 'Blattschutz EIN
Worksheets("Kalkulation").Protect Password:="xxx"  'Blattschutz EIN

 Application.EnableEvents = True ' Bildschierm einschalten
End Sub


Ich würde mich freuen wenn mir jemand Hefen könnte, meine Erfahrungen mit VBA sind da nicht ausreichend.

 

Vielen Dank in voraus.

Björn

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Makro Geschwindigkeit verbessern
11.06.2016 10:33:22 Björn
NotSolved
11.06.2016 11:35:21 Lukas
NotSolved
11.06.2016 11:48:52 Gast89287
NotSolved
11.06.2016 12:08:24 Björn
NotSolved
11.06.2016 15:29:13 Gast16948
NotSolved
11.06.2016 18:53:06 Björn
NotSolved
11.06.2016 19:13:09 Gast21949
NotSolved
12.06.2016 10:16:45 Björn
NotSolved
12.06.2016 10:41:01 Björn
NotSolved
12.06.2016 12:06:56 Gast11427
NotSolved
12.06.2016 12:14:28 Björn
NotSolved
12.06.2016 12:35:43 Gast23786
NotSolved