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

Alle Daten aktualisieren während VBA läuft

Alle Daten aktualisieren während VBA läuft
30.07.2015 11:30:40
Simon
Hi Leute,
ich habe eine Frage an euch, da ich am verzweifeln bin. Habe keine große Erfahrungen mit VBA.
Ausgangssituation: Es besteht bereits ein Code (der auch funktioniert), der in einer Exceltabelle die Worksheets durchrotiert. Diese verschiedenen Sheets sind quasi Clons aus anderen Exceldateien welche via Pivot Zugriff auf eine Datenquelle haben.
Das Loopsheet ist quasi eine Demoansicht der anderen Ecxelfiles.
Die Daten sollen sich automatisch aktualisieren, sprich neue Zahlen mittels Pivot ziehen und dann in dem Loop angezeit werden. Wie muss ich den basierenden Code anpassen um dies zu ermöglichen? Bisher habe ich in dem Excel File eingestellt automatische Aktualisierung, diese wird jedoch durch den Loop blockiert.
Aktueller Code lautet:

Sub Start_Klicken()
Dim x As Long
Dim name As String
x = 1
Do While x 

Bitte helft mir :)
Viele Grüße
Simon

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle Daten aktualisieren während VBA läuft
30.07.2015 13:46:57
EtoPHG
Hallo Simon,
Keine guten Ideen in Deinem Code:
.Activate zu 99% überflüssig und kontraproduktiv
SendKeys "{F15}" Funktioniert manchmal, aber oft nicht
Application.Wait In diesem Fall völlig überflüssig
und nicht das Aktualisieren blockiert, sondern dein ewiger Loop zwischen 1..4-2..4-2..4...
Probiers so:
Sub Start_Klicken()
Dim ws As Worksheet
Dim ptS As PivotTable
For Each ws In ThisWorkbook.Worksheets
For Each ptS In ws.PivotTables
ptS.RefreshTable
Next ptS
Next ws
End Sub
Gruess Hansueli

Anzeige
AW: Alle Daten aktualisieren während VBA läuft
31.07.2015 16:31:20
Simon
Hi Hansueli,
vielen Dank für deine Antwort. Habe dein Code eingebaut, aber jetzt klappt der Präsentationsmodus gar nicht mehr. Es sollen ja in dem Excel alle Sheets durchrotiert werden und ein paar Sekunden lang eingeblendet (Präsentation). Zusätzlich sollen die Datenquellen aktualisiert werden. Damit ich nicht jedesmal das Makro stoppen muss, um manuel zu aktualisieren.
Weiteren TIpp?
Viele Grüße

Powerpoint statt Excel für Präsentation
03.08.2015 07:52:23
EtoPHG
Hallo Simon,
Jetzt versteh ich langsam, was du machen willst. Ich frage mich nur, warum willst du das (v.a. auch mit deinen VBA-Kentnissen) mit Excel lösen?
Dafür ist doch PowerPoint wie geschaffen!
Wenn das nicht in Frage kommt, wo liegt denn der Vorteil deines Ansatzes? Warum soll der Anwender die aktualisierten Pivottabellen nicht selbst (z.B. über die Register) auswählen und sie solange betrachten können, wie er/sie mag? Warum 5 Sekunden und dann zur nächsten Ansicht?
Gruess Hansueli

Anzeige
AW: Powerpoint statt Excel für Präsentation
03.08.2015 09:32:08
Simon
Hi Hansueli,
ok nochmal zur Ausgangslage, es ist auch wirklich ein wenig kompliziert. Es gibt verschiedene Excelberichte die seperat abgespeichert sind und sich automatisiert ihre Daten aus einer Pivottabelle ziehen. Dies klappt wunderbar, auch ohne VBA. Ein Sheet einer jeder (Berichts)Exceldatei wird dann in ein neues Excel kopiert, sodass diese Datei das Ergebnisshart jeder einzelnen Excel hat. In dieser Datei sind dann alle Ergebnisse der Berichte gespeichert. Diese bekommen täglich neue Daten. Die Datei soll dann als "Präsentationsmodus" auf einem TV angezeigt werden und durch alle "sheets" rotieren, sodass alle "Ergebnisse" angezeigt werden. Da täglich neue Daten hinzukommen, soll sich die Datei automatisch aktualisieren, sprich neue Daten aus den Pivottabellen ziehen.
Stand jetzt ist, dass mit dem besagten Code der "Präsentationsmodus" funktioniert. Jedoch wird die automatisch Aktualisierung der Excelsheets durch das VBA Skript geblogt. Kann ich dies irgendwie umgehen?
ICh hoffe es ist jetzt klarer was ich meine.
Viele Grüße

Anzeige
AW: Powerpoint statt Excel für Präsentation
03.08.2015 12:19:44
EtoPHG
Hallo Simon,
Du brauchst:
a) einen Startknopf mit der Zuweisung des Makros Start_Klicken und einen Beendenknopf mit der Zuweisung Stop_Klicken und folgenden Code in einem Modul:
Option Explicit
' Nächste Pivottabelle anzeigen, 0 = Stoppt Präsentation
Dim dNextStartTime As Double
' Anzeigedauer in Sekunden von Blättern mit Pivottabellen
Const iWaitLoopSecnds As Integer = 10
Sub Start_Klicken()
If dNextStartTime = 0 Then
dNextStartTime = Now()
ShowWS
End If
End Sub
Sub Stop_Klicken()
If dNextStartTime = 0 Then Exit Sub
On Error Resume Next
Application.OnTime EarliestTime:=dNextStartTime, Procedure:="ShowWS", Schedule:=False
dNextStartTime = 0
On Error GoTo 0
End Sub
Sub ShowWS()
Static lWSIndex As Long
Dim pts As PivotTable
If dNextStartTime = 0 Then Exit Sub
If lWSIndex = 0 Or lWSIndex = ThisWorkbook.Worksheets.Count Then
lWSIndex = getNextWSix(1)
Else
lWSIndex = getNextWSix(lWSIndex + 1)
End If
If lWSIndex = 0 Then lWSIndex = getNextWSix(1)
With ThisWorkbook.Worksheets(lWSIndex)
For Each pts In .PivotTables
With pts.PivotCache
.Refresh
End With
Next pts
.Activate
End With
dNextStartTime = Now + TimeSerial(0, 0, iWaitLoopSecnds)
Application.OnTime EarliestTime:=dNextStartTime, Procedure:="ShowWS"
End Sub
Function getNextWSix(lWSIndex As Long) As Long
Dim lIx As Long
For lIx = lWSIndex To ThisWorkbook.Worksheets.Count
If ThisWorkbook.Worksheets(lIx).PivotTables.Count > 0 Then
getNextWSix = lIx
Exit For
End If
Next lIx
End Function
Start klicken und jederzeit auf das Blatt mit den Buttons wechseln und Beenden klicken.
Gruess Hansueli

Anzeige
AW: Powerpoint statt Excel für Präsentation
03.08.2015 17:57:34
Simon
Hi Hansueli,
vielen Dank!!! Es läuft!!!! Habe noch zwei Kleinigkeiten angepasst, da die Pivottables nicht in der Präsentationsexcel, sondern in einer anderen Datei liegt. Aber sonst läuft. Tausend dank.
Simon

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige