Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Image
BildScreenshot zu Image Image-Seite mit Beispielarbeitsmappe aufrufen

Excel bremmst Makro | Herbers Excel-Forum


Betrifft: Excel bremmst Makro von: Andy
Geschrieben am: 03.02.2010 19:27:59

Hi @ all,

hab ein Makro gemacht das mir gewisse Werte rechnet und das in einen Bereich vom Blatt schreibt. Diese Bereiche müssen immer an der selben Stelle sein. (zB. für Etiketten)
Jetzt will ich so um die 200 Blätter mit dem Makro berechnen lassen die ich danach drucken möchte. Da es sich um Etiketten Papier handelt müssen die Druckbereiche exakt stimmen.
Wenn ich jetzt die Seitenränder so einstelle das die Bereiche richtig aufgeteilt sind und das Makro starte, dauert es ewig bis das Makro mir 20 Blätter berechnet (1 Blatt = 21 Etiketten).
Wenn ich das Makro auf einem neuen Sheet starte mit der Standard Seitenaufteilung und gebe 200 Blatt ein, so sind die in 10 Sekunden fertig.

Die Seitenaufteilung hatte ich erst in meinem Code integriert,
danach hab ich das Tabellen Blatt fertig formatiert und mit
ActiveWorkbook.Sheets("Tabelle xy").Activate gearbeitet, in der Hoffnung das es schneller gehen wird was leider nicht der Fall war.

Im Internet hab ich mal geforscht und paar Sachen darüber gelesen aber leider keine Lösung gefunden.

Wenn ich die Seitenaufteilung ändere, braucht Excel erst mal ne Bestätigung vom Drucker ob er das noch drucken kann etc. Das Abfragen des Druckers dauert lange und bremst mein Makro total ab.

Wie kann ich die Abfrage abschalten? Ich weiß ja, dass der Drucker das drucken kann. Oder kann ich eventuell das früher machen so das , dass Makro normal rechnen kann ohne zeit Einbußen .
Ich denke mal das Problem ist den meisten schon bekannt und es dafür auch eine einfache Lösung gibt.

Oder hat sich da Microsoft ein eigen Tor geschossen? So wie das jetzt funktioniert ist es nicht im sinne des Erfinders.

Bedanke mich schon mal für die Hilfe

Gruß Andy

  

Betrifft: AW: Excel bremmst Makro von: Klaus-Dieter
Geschrieben am: 03.02.2010 19:52:17

Hallo Andy,

ohne dein Makro zu kennen, kann man da wenig sagen.

Allerdings stellt sich für mich die Frage, warum du die Etiketten nicht mit der Serienbrieffunktion von Word druckst. Die ist bestens darauf eingerichtet. Die Adressen kannst du dazu aus einer Exceldatei beziehen.



Viele Grüße Klaus-Dieter

Klaus-Dieter's Excel und VBA Seite
Online-Excel



  

Betrifft: AW: Excel bremmst Makro von: Andy
Geschrieben am: 03.02.2010 22:09:42

hallo Klaus-Dieter,

ich versuch vba zu lernen.
Da ich das erst seit ende dezember 2009 mache kann ich leider noch nicht viel.

Jetzt hab ich halt so ein Projetct gestartet wo ich ma alles aus vba raushollen kann. mein gesamtes Makro ist schon wie ein Programm und ist fast 900 kb groß in excel 2007.

Nur zum lernen halt das ich mal ne programier sprache lerne.


  

Betrifft: AW: Excel bremmst Makro von: Daniel
Geschrieben am: 03.02.2010 20:15:50

Hi

wenn ich es richtig verstanden habe, dann ist der Zeitfresser das Einstellen der Seitenränder.
ja, das ist in Excel nicht ganz glücklich gelöst.

eventuell bieten sich folgende Abhilfen an:
Variante 1:
du hast nur ein Sheet, die Druckvorlage mit den richtigen Einstellungen. Das Makro berechnet jetzt für jede Seite den Inhalt, füllt diese in das Blatt, druckt es aus, löscht das Sheet und fährt dann mit der nächsten Seite fort.
Da du immer das gleiche Sheet verwendest, muss der Seitenrand nie verstellt werden.

Variante 2:
die Seiteneinstellung funktioniert wesentlich schneller über Excel4Makros.
hier das Makro dazu

Sub SetPageSetup()  
   ExecuteExcel4Macro _
      "PAGE.SETUP("""",""&L&""""Arial,Bold""""&" & _
      "8MeineFirma GmbH & Co. KG&R&""""Arial,Bold""""&8&F," & _
      "&D,Seite 1"",0.75,0.75,0.91,0.5,FALSE,FALSE,TRUE,FALSE" & _
      ",2,1,95,#N/A,1,TRUE,,0.75,0.25,FALSE,FALSE)"
End Sub  

die fett markierten Werte sind die Seitenränder.
das ganze ist bei mir c.a. 32x schneller als .PageSetup (mit Makro aufgezeichnet)
(0,06 zu 2 sec)

Gruß, Daniel


  

Betrifft: AW: Excel bremmst Makro von: Andy
Geschrieben am: 03.02.2010 21:51:38

Danke für deine Antwort

ich meinte eher was anderes.
Habe mal ein test Makro hochgeladen da stehen noch paar infos.

https://www.herber.de/bbs/user/67742.xls

Andy


  

Betrifft: AW: Schleifeninhalt reduzieren, von: Daniel
Geschrieben am: 03.02.2010 22:17:42

Hi
was du meinst, konnte ich leider erst erkennen, als du die Beispieldatei hochgeladen hast.

zur Beschleunigung des ganzen würde ich folgendes Vorschlagen:

erstmal erstellstst du genau 1 Ettikett, mit den Texten, die auf jedem Ettikett gleich sind, sowie mit allen Formatierungen. dann kopierst du dieses Ettikett in der erforderlichen Anzahl in die Breite und nach unten.

in der Schleife füllst du dann nur noch die veränderlichen Werte aus.

Das kopieren ist wesentlich schneller als das Ausfüllen einzelner Zellen per schleife, daher solltest du nur das in eine Schleife packen, was unbedingt notwendig ist. die fixen Bestandteile lassen sich per Copy-Paste schneller vervielfältigen.

Gruß, Daniel


  

Betrifft: AW: Schleifeninhalt reduzieren, von: Andy
Geschrieben am: 03.02.2010 23:29:54

hi,

danke für den Hinweis. Ich werde mal probieren ob ich das so hinbekomme.

Gruß Andy