Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1480to1484
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

Automatisches Einsetzten und Ausgeben

Automatisches Einsetzten und Ausgeben
22.03.2016 15:52:49
DMaier
Hallo,
ich bin dabei ein Makro zu schreiben, welches die Werte aus einer Zeile meiner Tabelle automatisch in eine Kalkulation in einem anderen Tabellenblatt eingibt.
Die damit berechneten Ergebnisse sollen anschließend in einer neuen Tabelle ausgegeben werden.
Das von mir geschriebene Makro funktioniert zwar, benötigt aber ewig.
Hat jemand eine Idee, wie das schneller geht?
Hier mein Makro:

Private Sub Calculate()
Dim x As Integer
Sheets("Input").Select
finalrow = Cells(Rows.Count, 2).End(xlUp).Row
Sheets("Output").Range("A5:F50000").Delete
For x = 6 To finalrow
Application.ScreenUpdating = False
Sheets("Input").Cells(x, 2).Copy
Sheets("Basic-LBO").Range("I1").PasteSpecial xlPasteValues
Sheets("Input").Cells(x, 3).Copy
Sheets("Basic-LBO").Range("J1").PasteSpecial xlPasteValues
Sheets("Input").Cells(x, 4).Copy
Sheets("Basic-LBO").Range("K1").PasteSpecial xlPasteValues
Sheets("Output").Range("A3:F3").Copy
Sheets("Output").Cells(x - 1, 1).PasteSpecial xlPasteValues
Sheets("Output").Cells(x - 1, 1).PasteSpecial xlPasteFormats
Next x
Application.ScreenUpdating = True
End Sub

Viele Grüße und schonmal Danke
Danièle

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatisches Einsetzten und Ausgeben
22.03.2016 16:06:54
selli
hallo danièle,
was sind das denn für berechnungen.
wäre es nicht einfacher gleich mit den werten der schleife zu rechnen als sie erst irgendwohin zu schieben, rechnen zu lassen und das ergebnis wieder zurückzuholen?
gruß
selli

Geht schon was: Faktor 20
22.03.2016 16:57:48
Michael
Hi zusammen,
zumindest mit ein paar simplen Berechnungen wie Summen, min, max... in Sheets("Output").Range("A3:F3")
Der Code:
Sub KalkulierenSchnell()
Dim x As Long, finalrow As Long, i As Long
Dim t0 As Single
Dim aIn As Variant, aOut As Variant, aa As Variant
t0 = Timer
finalrow = Inp.Cells(Inp.Rows.Count, 2).End(xlUp).Row
Ou.Range("A5:F50000").Clear
aIn = Inp.Range("B1:D" & finalrow)
aOut = Ou.Range("A5:F" & finalrow - 1)
Application.ScreenUpdating = False
For x = 6 To finalrow
LBO.Range("I1").Resize(1, 3) = WorksheetFunction.Index(aIn, x, 0)
aa = Ou.Range("A3:F3")
For i = 1 To 6: aOut(x - 5, i) = aa(1, i): Next
Next
Ou.Range("A5:F" & finalrow - 1) = aOut
Ou.Range("A3:F3").Copy
Ou.Range("A5:F" & finalrow - 1).PasteSpecial xlPasteFormats
Application.ScreenUpdating = True
Sheets("Input").Range("G4") = (Timer - t0) * 1000
End Sub
Die Datei: https://www.herber.de/bbs/user/104542.xlsm
Bitte beide Buttons testen, dann sieht man die Zeit ohne die Fehler...
Schöne Grüße,
Michael

Anzeige
AW: Automatisches Einsetzten und Ausgeben
22.03.2016 16:35:45
ChrisL
Hi Danièle
Der Anregung von selli kann ich mich anschliessen (lasse die Frage darum vorerst offen).
Aber vielleicht holst du mit einer gezielten Neuberechnung etwas raus, etwa so...
Sub t()
Application.Calculation = xlCalculationManual
' Input
Application.Calculate
' Output
Application.Calculation = xlCalculationAutomatic
End Sub

cu
Chris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige