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

ThinkCell Aktualisierung

ThinkCell Aktualisierung
28.06.2016 15:57:22
Dave

Hallo zusammen,
hoffe ich finde hier Hilfe.
Habe ein Makro was zu 99% läuft. Nur diese Kleinigkeit ist zwischen mir und dem Ziel.
Zu meinem Problem.
Innerhalb einer Prozedur werden verschiedene Daten (Sheet 1) abgefragt und in Sheet 2 an eine festgelegte Stelle geschrieben (LÄUFT!)
An dieser Stelle ist eine ThinkCell Verknüpfung, die auf eine PowerPoint-Datei verweist (LÄUFT!)
Im Grunde sollen insgesamt 400 mal Daten von Sheet 1 zu Sheet 2 übertragen werden und die Datei soll nach dem aktualisieren des ThinkCell-Diagramms in PowerPoint diese als PDF speichern.
Alles funktioniert ABER das ThinkCell Diagramm aktualisiert sich nicht. Ja, ich habe die Datenverknüpfung in ThinkCell auf AUTO gestellt.
Es aktualisiert sich nur, wenn ich die Datei händisch öffne.
Da der Übertrag der Daten während das Makro läuft durchgeführt wird, werden die Werte nicht aktualisiert. Öffne ich die PowerPoint-Datei danach erneut, werden diese Werte aktualisiert.
Habe bereits mit der Application.Wait-Methode gearbeitet. (ohne Erfolg)
Im Grunde müsste das Makro nur warten, bis sich das Diagramm aktualisiert und dann weiter läuft.
Habt ihr da eine Idee?
Vielen Dank für die Hilfe.
Gruß,
Dave

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

Betreff
Datum
Anwender
Anzeige
Ohne Gewähr!
28.06.2016 20:29:01
RPP63
DoEvents
(an passender Stelle eingefügt) oder
Application.Calculate
Gruß Ralf

AW: Ohne Gewähr!
29.06.2016 08:21:45
Dave
Guten Morgen Ralf,
vielen Dank für den Tipp.
Application.Calculate hat leider nicht funktioniert.
Mit DoEvent habe ich bisher keine Erfahrungen gemacht. Habe diesbezüglich folgenden Code gefunden aber irgendwie bekomme ich das nicht so hin...

Public Function Wait(MilliSekunden As Double)
Dim I As Double, Ende As Double
Ende = Timer + (MilliSekunden / 1000)
Do While I < Ende
DoEvents
I = Timer
Loop
End Function
Bin gerade noch am rumprobieren, wie ich die Funktion (in Modul 3) in mein Makro (in Modul 2) einbauen kann.
Noch so am Rande. Habe die Funtion

Dim I As Double, Ende As Double
Ende = Timer + (MilliSekunden / 1000)
Do While I < Ende
DoEvents
I = Timer
Loop
direkt in mein Makro eingebaut... (leider ohne Erfolg)
Bin mir nicht ganz sicher, ob das so überhaupt geht oder ob ich die DoEvents-Funktion anders gestalten muss.
Habe nun auch getestet, wie lange ThinkCell benötigt, um sich zu aktualisieren.
Bei manuellem Öffnen der PowerPoint-Datei benötigt ThinkCell ca. 3 Sekunden bis es sich aktualisiert. Somit müsste ich das Makro mit Puffer ca. 5 Sekunden anhalten lassen um die Aktualisierung durchführen zu lassen. Nach Recherche im Internet ist die Idee mit der DoEvents-Funktion eine gute mögliche Lösung. Doch die Umsetzung gestaltet sich ein wenig schwierig.
Teste aber weiter.
Gruß,
David

Anzeige
AW: Ohne Gewähr!
29.06.2016 09:14:22
Dave
Hallo zusammen,
habe nun nach ein paar Versuchen verstanden, wie ich die Funktion

Public Function Wait(MilliSekunden As Double)
Dim I As Double, Ende As Double
Ende = Timer + (MilliSekunden / 1000)
Do While I < Ende
DoEvents
I = Timer
Loop
End Function
in meinem Sub aufrufen kann.
Nur bringt es nichts.
Meine Vermutung ist folgende.
Die Funktion lässt das Makro warten, damit ANDERE Programme im Hintergrund ihre Arbeit verrichten können. Da das ThinkCell Diagramm aber in der selben Datei wie das Makro ist, bringt glaub die Warte Funktion nichts.
Darum werde ich jetzt versuchen, eine UserForm zu basteln und in dieser Datei das Makro hinterlegen und die Datei mit den Daten und der ThinkCell-Verknüpfung zu laden. Vielleicht geht es dann.
Melde mich schnellstmöglich.
Gruß

Anzeige
AW: Ohne Gewähr!
29.06.2016 11:00:06
Dave
Hi,
auch der Versuch mit der Nutzung einer UserForm inkl. DoEvents-Funktion brachte leider keinen Erfolg.
Es muss doch eine Möglichkeit geben, das ThinkCell-Diagramm zu aktualisieren...
Ich schreib jetzt den Support von ThinkCell an.
Rückmeldung gibt es...
Und falls jemand eine Idee hat, immer her damit.
Gruß

Support von ThinkCell
29.06.2016 11:13:19
RPP63
Gute Idee!
Schließlich kosten das Leasing ja ein wenig.
Ich lasse hier offen, die Lösung interessiert mich.
Gruß Ralf

AW: Support von ThinkCell
29.06.2016 15:39:47
Dave
Hallo,
anbei die Antwort vom Think-Cell Support.
_________________________________________________________________
Sehr geehrter Herr....
haben Sie in der PowerPoint Datei im Datenverknüpfungen… Dialog (Einfügen - think-cell - Mehr - Datenverknüpfungen…) die Aktualisierung auf automatisch gesetzt?
Ansonsten können Sie think-cell’s Funktion PresentationFromTemplate() verwenden, um mit Excel verknüpfte Diagramme zu aktualisieren (sofern aktualisierte Daten vorhanden sind). Bitte beachten Sie, dass nach der Ausführung die Excel-Links in der resultierenden PowerPoint Datei gebrochen sind, um spätere Änderungen vorzubeugen.
Informationen dazu finden Sie in unserem Benutzerhandbuch im Anhang E Programmierung von think-cell:
h**ps://www.think-cell.com/support/manual/programming.shtml
Bitte lassen Sie uns wissen, sollten Sie weitere Fragen dazu haben.
Mit freundlichen Grüßen,
Anke Blume
_________________________________________________________
Werde nun versuchen, die Programmierung auf der Homepage zu verwenden. Gebe diesbezüglich natürlich Rückmeldung.
Solange bleibt der Umfang als NICHT GELÖST!!!!
Für weiter Lösungsvorschläge bin ich natürlich offen.
Gruß

Anzeige
AW: Support von ThinkCell
01.07.2016 08:45:18
Dave
Anbei ein Update...
Bin mit dem Think-Cell Support im Austausch. Habe dem Support eine Testdatei per Mail zugesendet, in welcher das Problem ebenso auftritt. Sobald es eine Antwort oder eine Lösung gibt, wird diese hier veröffentlicht.
Gruß
Dave

AW: Support von ThinkCell
04.07.2016 08:24:58
Dave
Hallo zusammen,
nach mehrmaligen Kontakt mit dem Think-Cell Support ist das Thema als gelöst anzusehen.
Zuerst einmal muss man nur auf drei Sachen achten.
- Deklaration von tcaddin als Object
- Bezug auf das COMAddin von Thinkcell
- Bezug auf PresentationFromTemplate --> in meinem Beispiel wurde eine TESTDATEI auf dem Desktop als MASTER-DATEI angelegt --> wird geöffnet, Daten übertragen Name der Datei im Code "ThinkCell Testdatei_TEST.ppt"

Dim tcaddin As Object
Set tcaddin = Application.COMAddIns("thinkcell.addin").Object
Set pres = tcaddin.PresentationFromTemplate(Excel.ActiveWorkbook, "C:\Users\" & Environ(" _
UserName") & "\Desktop\ThinkCell Testdatei_TEST.ppt", ppapp)
Zur Historie:
- Tabelle in Sheet 1 mit verschiedenen Werten
- Zweite Tabelle inkl. Think-Cell Verknüpfung in Sheet 2
- Vorgefertigte MASTER-Datei welche auf dem Desktop abgespeichert ist
- Alle Dateien werden als .PDF gespeichert
- Speicherort ist ein Ordner auf dem Desktop mit dem Namen "Speicherort Test"
Anbei der vollständige Code

Option Explicit
Sub Test()
'Anbei ein Beispiel mit fiktien Werten
'Daten aus Sheet 1 werden in das Diagramm im Sheet 2 übertragen
'Der Zellenwert in Spalte A dient als Dateiname
'Zwischen den Säulen wird die Differenz berechnet
'Ziel:
'Daten werden übertragen und dabei soll sich Think-Cell innerhalb der Schleife  _
aktualisieren und dies dann speichern
'Variablen deklarieren
Dim i, j, k, l As Integer
Dim lrow_1, lcol_1 As Integer
Dim DateiName As String
Dim ppapp As PowerPoint.Application
Set ppapp = New PowerPoint.Application
'Code fuer PresentationFromTemplate
Dim tcaddin As Object
Set tcaddin = Application.COMAddIns("thinkcell.addin").Object
Dim pres As PowerPoint.Presentation
'letzte Zeile und Spalte im Sheete 1 bestimmen
lrow_1 = ActiveWorkbook.Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
lcol_1 = ActiveWorkbook.Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Column
'PowerPoint-Datei öffnen
ppapp.Presentations.Open Filename:="C:\Users\" & Environ("UserName") & "\Desktop\ThinkCell  _
Testdatei_TEST.ppt"
'Schleife zum Übertrag der Testdaten aus Sheet 1
For i = 4 To lrow_1
For j = 2 To lcol_1
'Schleife der Testdateien aus Sheet 2
For k = 9 To 10
For l = 3 To 11
'Abfrage Säule
If ActiveWorkbook.Sheets(1).Cells(2, j).Value = ActiveWorkbook.Sheets(2). _
Cells(7, l).Value Then
'Abfrage Test
If ActiveWorkbook.Sheets(1).Cells(3, j).Value = ActiveWorkbook.Sheets(2) _
.Cells(k, 2).Value Then
'Übertrag der Daten
ActiveWorkbook.Sheets(2).Cells(k, l).Value = ActiveWorkbook.Sheets(1) _
.Cells(i, j).Value
End If
End If
Next l
Next k
Next j
'Dateiname in Spalte A im Sheet 1 zuweisen, welcher später als Dateiname für die  _
PowerPoint-Datei dient
DateiName = ActiveWorkbook.Sheets(1).Cells(i, 1).Value
'Aktualisiere mit PresentationFromTemplate
Set pres = tcaddin.PresentationFromTemplate(Excel.ActiveWorkbook, "C:\Users\" & Environ( _
"UserName") & "\Desktop\ThinkCell Testdatei_Test.ppt", ppapp)
'PowerPoint-Datei speichern: Auf dem Desktop ist ein Ordner "Speicherort Test" angelegt
pres.SaveAs "C:\USERS\" & Environ("UserName") & "\Desktop\Speicherort Test\" &  _
DateiName & ".pdf", ppSaveAsPDF
Next i
End Sub
Muss noch anmerken, dass Support von Think-Cell wirklich sehr gut ist und das dort einem geholfen wird.
Wichtig ist: Support ist in der Think-Cell Lizenz enthalten.
Excel-Datei:
https://www.herber.de/bbs/user/106717.xlsm
PowerPoint-Datei
https://www.herber.de/bbs/user/106718.ppt
BITTE BEACHTEN
--> Speicherort ist ein Ordner auf dem Desktop mit dem Namen "Speicherort Test"
--> Think-Cell ist Voraussetzung. Am besten in der aktuellen Version
--> Die beigefügte TESTDATEI ist im Format ppt da ich hier keine pptx hochladen kann
Für die, die es brauchen viel Spaß damit.

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige