zu langes Makro
28.10.2021 10:13:58
stef26
ich könnte mal Hilfe von VBA Profis gut gebrauchen.
Ich habe ein extrem langes Makro, welches mir Daten aus einer anderen Tabelle in meine Vorlage kopiert.
D.h. Das Makro an sich ist sehr einfach nur sehr lange.
Irgandwann hab ich mal die Meldung bekommen, dass das Makro zu lange ist,
Ich habe daraufhin Teile davon in Untermakros gemacht, welche ich mit Call aufrufe.
Nun hab ich jedoch das Problem, dass auch die Untermakros nicht mehr vollständig bearbeitet werden.
Das Makro springt einfach aus dem Untermakro raus und beginnt das nächste Untermakro, ohne dass das vorherige bis zum Schluss durchgelaufen ist.
Kennt dies Problem jemand von euch?
Ein Teilbereich des Makros, an dem er aktuell einfach aus dem Programm springt.
Ist mir erst nicht aufgefallen, da er keine Fehlermeldung bringt.
Es fehlen jedoch die Daten in der Vorlage...
With wbAlt.Worksheets("Selektivloeten")
.Range("C4:C6").Copy Destination:=wbNeu.Worksheets(.Name).Range("C4:C6") 'Nutzen
.Range("J4:J6").Copy Destination:=wbNeu.Worksheets(.Name).Range("J4:J6") 'Nutzen Hinweis
.Range("F12").Copy Destination:=wbNeu.Worksheets(.Name).Range("F12") 'Pins
.Range("G13:G14").Copy Destination:=wbNeu.Worksheets(.Name).Range("G13:G14")
.Range("H15").Copy Destination:=wbNeu.Worksheets(.Name).Range("H15") 'Programmlaufzeit
.Range("J12:J15").Copy Destination:=wbNeu.Worksheets(.Name).Range("J12:J15") 'Bemerkungen
.Range("Y3:Y40").Copy Destination:=wbNeu.Worksheets(.Name).Range("Y3:Y40")
'Parallele Tätigkeiten zur Anlagenzeit
.Range("R19").Copy Destination:=wbNeu.Worksheets(.Name).Range("R19")
.Range("V19").Copy Destination:=wbNeu.Worksheets(.Name).Range("V19")
.Range("W19").Copy Destination:=wbNeu.Worksheets(.Name).Range("W19")
.Range("R24:R25").Copy Destination:=wbNeu.Worksheets(.Name).Range("R24:R25")
.Range("V24:V25").Copy Destination:=wbNeu.Worksheets(.Name).Range("V24:V25")
.Range("W24:W25").Copy Destination:=wbNeu.Worksheets(.Name).Range("W24:W25")
.Range("R28:R31").Copy Destination:=wbNeu.Worksheets(.Name).Range("R28:R31")
.Range("V28:V31").Copy Destination:=wbNeu.Worksheets(.Name).Range("V28:V31")
.Range("W28:W31").Copy Destination:=wbNeu.Worksheets(.Name).Range("W28:W31")
.Range("R34:R48").Copy Destination:=wbNeu.Worksheets(.Name).Range("R34:R48")
.Range("V34:V48").Copy Destination:=wbNeu.Worksheets(.Name).Range("V34:V48")
.Range("W34:W48").Copy Destination:=wbNeu.Worksheets(.Name).Range("W34:W48")
.Range("R51:R53").Copy Destination:=wbNeu.Worksheets(.Name).Range("R51:R53")
.Range("V51:V53").Copy Destination:=wbNeu.Worksheets(.Name).Range("V51:V53")
.Range("W51:W53").Copy Destination:=wbNeu.Worksheets(.Name).Range("W51:W53")
.Range("R55:R58").Copy Destination:=wbNeu.Worksheets(.Name).Range("R55:R58")
.Range("V55:V58").Copy Destination:=wbNeu.Worksheets(.Name).Range("V55:V58")
.Range("W55:W58").Copy Destination:=wbNeu.Worksheets(.Name).Range("W55:W58")
.Range("R60:R68").Copy Destination:=wbNeu.Worksheets(.Name).Range("R60:R68")
.Range("V60:V68").Copy Destination:=wbNeu.Worksheets(.Name).Range("V60:V68")
.Range("W60:W68").Copy Destination:=wbNeu.Worksheets(.Name).Range("W60:W68")
.Range("N67").Copy Destination:=wbNeu.Worksheets(.Name).Range("N67")
.Range("R70:R93").Copy Destination:=wbNeu.Worksheets(.Name).Range("R70:R93")
.Range("V70:V93").Copy Destination:=wbNeu.Worksheets(.Name).Range("V70:V93")
.Range("W70:W93").Copy Destination:=wbNeu.Worksheets(.Name).Range("W70:W93")
.Range("R96:R97").Copy Destination:=wbNeu.Worksheets(.Name).Range("R96:R97")
.Range("V96:V97").Copy Destination:=wbNeu.Worksheets(.Name).Range("V96:V97")
.Range("W96:W97").Copy Destination:=wbNeu.Worksheets(.Name).Range("W96:W97")
.Range("V106:V110").Copy Destination:=wbNeu.Worksheets(.Name).Range("V106:V109")
.Range("R101").Copy Destination:=wbNeu.Worksheets(.Name).Range("R101") 'hier springt er dann in das nächste Makro?
.Range("V101").Copy Destination:=wbNeu.Worksheets(.Name).Range("V101")
.Range("W101").Copy Destination:=wbNeu.Worksheets(.Name).Range("W101")
.Range("R104").Copy Destination:=wbNeu.Worksheets(.Name).Range("R104")
.Range("V104").Copy Destination:=wbNeu.Worksheets(.Name).Range("V104")
.Range("W104").Copy Destination:=wbNeu.Worksheets(.Name).Range("W104")
end with
Gruß
Stefan