Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Viele Makrodurchläufe automatisch starten

Viele Makrodurchläufe automatisch starten
07.03.2014 15:08:39
Joerschi
Hallo Excel-Freunde,
Folgendes Problem mit der Frage, ob das mittels Excel lösbar ist.
Wofür ist die Lösung gedacht?
Mittels eines erstellten Makros werden in einem Dokument zahlreiche Berechnungen durchgeführt.
Je Makrodurchlauf muss ich eine bestimmte Zahl eingeben (damit lese ich Zeilennummern aus), der Makro wird per Klick gestartet und es werden mehrere Ergebnisse ausgegeben, welche ich dann wieder händisch woanders hin kopieren muss.
Leider handelt es sich um einige Hundert Durchgänge, die per Hand ziemlich mühselig werden.
Userbild
Frage, ob möglich...
Kann man dies automatisieren?
Sprich, ich gebe in zwei Zellen einen Bereich vor (z. B. 100 bis 1000), wo der Makro dann mit dem Wert 100 startet (Rot 1 in Grafik), die Berechnungen des Makros durchführt Rot 2), die ausgerechneten Ergebnisse
in eine Tabelle kopiert (Rot 3).
Danach macht er das Gleiche mit dem Wert 101, solange bis er bis 1000 durch ist.
Hat jemand eine Idee, wie man das angehen könnte?
Anliegend mal eine Beispieldatei mit simpler Berechnung und wie es aufgeteilt sein könnte (in der Datei ist hinter dem Button kein Makro hinterlegt).
https://www.herber.de/bbs/user/89582.xls
Danke im Voraus für Tipps und Hinweise
Joerschi

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Viele Makrodurchläufe automatisch starten
07.03.2014 15:31:21
selli
hallo joerschi,
wäre gut, wenn das berechnende makro dabei wäre.
könnte man doch direkt in die schleife einbauen.
gruß
selli

AW: Viele Makrodurchläufe automatisch starten
07.03.2014 15:39:37
selli
hallo joerschi,
könnte dann so aussehen:
Sub durchlauf()
Z = 3
For i = Sheets("Tabelle1").Cells(4, 6) To Sheets("Tabelle1").Cells(4, 7)
'hier startet dein makro
Sheets("Tabelle1").Cells(Z, 9) = i
Sheets("Tabelle1").Cells(Z, 10) = Sheets("Tabelle1").Cells(12, 1)
Sheets("Tabelle1").Cells(Z, 11) = Sheets("Tabelle1").Cells(12, 2)
Sheets("Tabelle1").Cells(Z, 12) = Sheets("Tabelle1").Cells(12, 3)
Z = Z + 1
Next i
End Sub

gruß
selli

Anzeige
hab was vergessen, so ists besser
07.03.2014 15:43:56
selli
hallo joerschi,
nur wie gesagt, wenn dein makro bekannt wäre könnte man das eleganter lösen.
so wird immer erst die entsprechende zahl in zelle b3 geschrieben. das ist ziemlich brachial.
Sub durchlauf()
Z = 3
For i = Sheets("Tabelle1").Cells(4, 6) To Sheets("Tabelle1").Cells(4, 7)
Sheets("Tabelle1").Cells(3, 2) = i
'hier startet dein makro
Sheets("Tabelle1").Cells(Z, 9) = i
Sheets("Tabelle1").Cells(Z, 10) = Sheets("Tabelle1").Cells(12, 1)
Sheets("Tabelle1").Cells(Z, 11) = Sheets("Tabelle1").Cells(12, 2)
Sheets("Tabelle1").Cells(Z, 12) = Sheets("Tabelle1").Cells(12, 3)
Z = Z + 1
Next i
End Sub

gruß
selli

Anzeige
AW: hab was vergessen, so ists besser
07.03.2014 16:02:50
Joerschi
Hi Selli,
danke erstmal für Deine Hilfe.
Der eingängige Name des Makros wäre:"Ergebnisse_Toto_Bookiequotenauswertung_Version1_BasisAT_38_11.xlsm!Alles_kopieren_fuer_Analyse"
Ich glaube auch, ich muss da leider die "Brachialvariante" wählen. Denn das Makro beinhaltet Dutzende Hin- und Herkopien von Daten mit Zwischenrechnungen etc. In einer 150 MB Excel-Datei, weil es so viele Daten und Formeln sind :-).
Als Zwischenfrage:
Wo genau muss ich Deinen Codevorschlag hinkopieren?
Die Zellen auszulesenden Zellen (Bedingung) bzw. Zielzellen der Tabelle kann ich dann ja noch verändern, wenn ich das richtig gelesen habe.
Beste Grüße
joerschi

Anzeige
AW: hab was vergessen, so ists besser
07.03.2014 16:10:47
selli
hallo joerschi,
das makro kommt in ein ganz normales modul im vbaprojekt deiner datei.
gruß
selli

AW: hab was vergessen, so ists besser
07.03.2014 16:42:18
Joerschi
hmmm, habe es mal auf meine Bedürfnisse angepasst, aber scheinbar wird noch nicht der "Zwischenmakro" durchgeführt. Tippe mal drauf, dass ich was falsch eingegeben habe?
Sub durchlauf()
Z = 3
For i = Sheets("Analyse").Cells(1, 26) To Sheets("Analyse").Cells(1, 28)
Sheets("Analyse").Cells(1, 15) = i
'Ergebnisse_Toto_Bookiequotenauswertung_Version1_BasisAT_38_11.xlsm! _
Alles_kopieren_fuer_Analyse'
Sheets("Analyse").Cells(Z, 9) = i
Sheets("Analyse").Cells(Z, 10) = Sheets("Analyse").Cells(25, 2)
Sheets("Analyse").Cells(Z, 11) = Sheets("Analyse").Cells(25, 3)
Sheets("Analyse").Cells(Z, 12) = Sheets("Analyse").Cells(25, 4)
Z = Z + 1
Next i
End Sub
Frage: Jede Berechnung des "Zwischenmakros" dauert ca. 10 sek bis alle Ergebnisse da sind.
Kann es Probleme machen, wenn der Algho dann schon schneller zur nächsten Zahl springt?

Anzeige
AW: hab was vergessen, so ists besser
07.03.2014 16:50:23
selli
hallo jörg,
Sub durchlauf()
Z = 3
For i = Sheets("Analyse").Cells(1, 26) To Sheets("Analyse").Cells(1, 28)
Sheets("Analyse").Cells(1, 15) = i
Application.Run "Ergebnisse_Toto_Bookiequotenauswertung_Version1_BasisAT_38_11.xlsm! _
Alles_kopieren_fuer_Analyse"
Sheets("Analyse").Cells(Z, 9) = i
Sheets("Analyse").Cells(Z, 10) = Sheets("Analyse").Cells(25, 2)
Sheets("Analyse").Cells(Z, 11) = Sheets("Analyse").Cells(25, 3)
Sheets("Analyse").Cells(Z, 12) = Sheets("Analyse").Cells(25, 4)
Z = Z + 1
Next i
End Sub
gruß
selli

AW: hab was vergessen, so ists besser
07.03.2014 18:57:48
Joerschi
Besten Dank!
Funktioniert alles super :-)
Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige