Anzeige
Archiv - Navigation
1892to1896
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

Können sich zwei Makros überholen?

Können sich zwei Makros überholen?
19.08.2022 13:07:52
Schneemann58
Werte Excel-Gemeinde
ich habe ein Problem, bei dem ich nicht mehr weiterkomme:
In einem ersten Schritt erzeuge ich eine Menge von Diagrammen:

Sub AlleDiagrammeErzeugen()
Tabelle3.AltersstrukturdiagrammErstellen
Tabelle5.KomplexesSituationenDiagrammFormatieren
Tabelle6.VollkostendiagrammKLVFormatieren
Tabelle6.VollkostendiagrammHWFormatieren
Tabelle18.PersonalkostendiagrammKLVFormatieren
Tabelle18.PersonalkostendiagrammHWFormatieren
Tabelle7.DatenpunktFormatierenLeistungskomplexität
Tabelle12.DatenpunktFormatierenPflegeleistungen
Tabelle13.VerrechenbarkeitsDiagrammFormatieren
Tabelle14.FluktuationsDiagrammFormatieren
Tabelle15.VerrechneteKLVStundenFormatieren
Tabelle8.WegZeitenDiagrammFormatieren
Tabelle9.ArbeitspensumDiagrammFormatieren
Tabelle16.KrankheitsratenDiagrammFormatieren
Tabelle17.DurchschnittsalterDiagrammFormatieren
Application.Goto Reference:="ErsteZelle" 'Springe ins Dashboard ganz zuoberst
' 3 Sekunden warten, sonst gibt es einen Runtime-Fehler!
Application.Wait Now + TimeValue("0:00:03")
End Sub
Excel braucht ca. 3 Minuten, um alle Diagramme zu erzeugen. Der letzte Schritt in jedem Makro besteht immer darin, dass ich das erzeugte Diagramm nehme und eine Kopie davon in ein Sheet "Dashboard" kopiere. In "Dashboard" habe ich also 15 Diagramme. Mit den Erklärungen zu den Diagrammen umfasst ein Ausdruck davon rund 40 Seiten.
In einem zweiten Makro erzeuge ich dann aus den Resultaten ein pdf:

Sub Ein_PDF_Erstellen_Entwicklung()
Dim dateiname As String
' Schritt 1: Alle Diagramme dieser Organisation neu erzeugen
AlleDiagrammeErzeugen
' Schritt 2: PDF erstellen:
' Hole die Organisationsnummer
dateiname = Range("H9") 'Hole den Code der Organisation
dateiname = Range("R14") & dateiname & ".pdf"  ' Pfad noch hinzufügen
ActiveWorkbook.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=dateiname, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
...
An sich läuft die ganze Geschichte so. Was jetzt passiert, ist, dass Excel so etwa jedes dritte, vierte Mal nicht alle 40 Seiten als pdf erzeugt, sondern nur eine Seite mit dem zuletzt kopierten Diagramm! Ich habe den Eindruck, dass Excel mit dem Erzeugen des PDFs beginnt, bevor das letzte Diagramm (DurchschnittsalterDiagramm) in "Dashboard" zur Verfügung steht.
Deshalb habe ich am Ende von "AlleDiagrammeErzeugen()" eine Pause von drei Sekunden eingebaut. Ohne Wirkung!
ich komme nicht mehr weiter und freue mich über jede Antwort.
Herzliche Grüsse Schneeemann58

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

Betreff
Datum
Anwender
Anzeige
AW: Können sich zwei Makros überholen?
19.08.2022 13:34:58
peterk
Hallo
WAIT friert Excel ein umd bringt Dir keine Änderung. Versuch stattdessen folgendes:

tt = timer()
Do
doevents
loop until timer() >= (tt+3)
Peter
AW: Können sich zwei Makros überholen?
19.08.2022 14:08:24
Beverly
Hi,
Frage: weshalb erstellst du die Diagramme zuerst in jedem Tabellenblatt und kopierst sie dann? M.E. geht es doch schneller, die Diagramme sofort im endgültigen Tabellenblatt zu erstellen. Außerdem macht die doppelte Anzahl an Diagrammen die Mappe doch wesentlich weniger handlich.
Bis später
Karin

Anzeige
AW: Können sich zwei Makros überholen?
19.08.2022 15:05:03
Schneemann58
Sali Karin
wie isst man einen Elefanten?
Zum Zusammensuchen der Daten für das Diagramm brauche ich jeweils eine Tabelle. Dort hole ich mir dann aus drei verschiedenen Arbeitsblättern die Rohdaten zusammen und berechne die Diagrammdaten. Häufig muss ich auch beim Auftraggeber rückfragen, welche Spalte er denn jetzt wirklich im Diagramm haben will. Da ist es viel einfacher, wenn ich pro Diagramm ein Arbeitsblatt habe und am Ende das Resultat in das Dashboard kopiere. Nur so bin ich sicher, dass das Diagramm korrekt ist. Im Arbeitsblatt habe ich eine Tabelle links und rechts das entsprechende Diagramm. Da kann ich direkt anhand der zusammengesuchten Daten kontrollieren, ob das Diagramm richtig ist. Wenn ich das im Dashboard mit 13 Diagrammen mache, habe ich keinen Überblick. Das ist dann mein Elefant...
Herzliche Grüsse
Schneemann58
PS: Es gibt zwei richtige Antworten auf meine eingangs gestellte Frage: 1. Portionenweise; 2. Mit Messer und Gabel
Anzeige
AW: Können sich zwei Makros überholen?
19.08.2022 15:18:39
Beverly
Hi,
wenn du die Daten erst kontrollieren willst, kann ich das nachvollziehen - das erklärt jedoch noch lange nicht, wozu du eine Kopie des Diagramms im Dashboard benötigst: stelle das Dashboard erst dann zusammen, wenn alle Daten kontrolliert sind und verschiebe die Diagramme dann dort hin. Falls du dann doch noch mal eins ändern musst, kannst du es ja wieder zurück verschieben. Wie du geschrieben hast: mit Messer und Gabel und nicht mit dem Holzhammer...
Bis später
Karin

AW: Können sich zwei Makros überholen?
19.08.2022 14:31:32
Schneemann58
Sali Peter
danke für Deine blitzschnelle Antwort.
Warten (wie auch immer) scheint das Problem nicht zu lösen! ich habe Deinen Code ohne Verbesserung eingebaut...
Mir ist aufgefallen, wenn ich das Diagramm ins "Dashboard" hineinkopiere, dass es dann nach dem Kopieren immer noch aktiv ist (Vier blaue kleine Kreise an den vier Eckpunkten des Diagramms. Wenn ich dann drucke, wird nur das Diagramm gedruckt.
Ich habe jetzt einen Versuch gemacht mit
Sendkeys "{ESC}"
Dann stoppt Excel die Ausführung...
Herzliche Grüsse
Schneemann58
Anzeige
AW: Können sich zwei Makros überholen?
19.08.2022 14:40:36
peterk
Hallo
Verwende
Application.CutCopyMode = False
Peter
AW: Können sich zwei Makros überholen?
19.08.2022 14:27:48
Akatosh
Ich hatte vor einiger Zeit das selbe Problem. Tipp bzw. Quick Win: Bau nach jedem relevanten Schritt ein Calculate ein (ob du die automatische Berechung anhast, spielt keine Rolle).
Außerdem kannst du versuchen, die Makros aufzuteilen und geordnet ablaufen zu lassen:

Sub Aktivierung()
Call AlleDiagrammeErzeugen()
Calculate
Call Ein_PDF_Erstellen()
End Sub

AW: Können sich zwei Makros überholen?
19.08.2022 16:04:22
Schneemann58
Sali zusammen
ich habe jetzt eine Lösung gefunden. Ob die (langfristig) funktioniert, wird sich zeigen:

Sub AlleDiagrammeErzeugen()
Dim tt As Variant
Tabelle3.AltersstrukturdiagrammErstellen
Tabelle5.KomplexesSituationenDiagrammFormatieren
Tabelle6.VollkostendiagrammKLVFormatieren
Tabelle6.VollkostendiagrammHWFormatieren
Tabelle18.PersonalkostendiagrammKLVFormatieren
Tabelle18.PersonalkostendiagrammHWFormatieren
Tabelle7.DatenpunktFormatierenLeistungskomplexität
Tabelle12.DatenpunktFormatierenPflegeleistungen
Tabelle13.VerrechenbarkeitsDiagrammFormatieren
Tabelle14.FluktuationsDiagrammFormatieren
Tabelle15.VerrechneteKLVStundenFormatieren
Tabelle8.WegZeitenDiagrammFormatieren
Tabelle9.ArbeitspensumDiagrammFormatieren
Tabelle16.KrankheitsratenDiagrammFormatieren
Tabelle17.DurchschnittsalterDiagrammFormatieren
tt = Timer()
Do
DoEvents
Loop Until Timer() >= (tt + 3)
Sheets("Dashboard").Range("A1").Select
Sheets("Dashboard").Range("A1").Value = "Gugus"
Sheets("Dashboard").Range("A1").Value = ""
End Sub
Ich habe nach dem Erzeugen des letzten Diagramms 3 Sekunden Pause (Auf Anraten von Peter) eingebaut. Dann selektiere ich die Zelle A1, schreibe in die Zelle A1 irgendetwas und lösche den Eintrag wieder. Nur die eine Variante hat nichts gebracht. Es braucht beides :-)
Ich bedanke mich bei allen, die hier mit einem Tipp unterstützt haben!
Herzliche Grüsse
Schneemann58
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige