Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1368to1372
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

SQL Abfragen aktualisieren dann alles berechnen

SQL Abfragen aktualisieren dann alles berechnen
17.07.2014 10:12:05
Josef
Hallo liebe Gemeinde,
ich hab hier ein Problem und hoffe das ihr mir helfen könnt.
Ich habe eine Excelliste erstellt die mehrere SQL Abfragen und Formeln beinhaltet. Wenn ich nun alle Abfragen aktualisieren möchte, dann führt Excel nach jeder Aktualisierung einer Abfrage die Berechnung durch.
D. h. Excel geht folgender Maßen vor:
Abfrage 1 wird aktualisieren, danach wird berechnet
Nach der Aktualierung der 2 Abfrage, führt Excel wieder die Berechnung
Dann wird die 3 Abfrage aktualisert und Excel berechnet wieder usw.
Auf diese Weise benötigt meine Datei über 30min bis alles aktualisiert und berechnet wurde.
Die perfekt Lösung für mich wäre:
Wenn Excel per Commandbutton zuerst alle Abfragen aktualisiert, danach einmal die Berechnung durchführt, die Pivottabellen aktualisiert und die Excel hinterher auf Manuelle Berechnung setzt.
Ist das machbar?

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SQL Abfragen aktualisieren dann alles berechnen
17.07.2014 10:30:05
Nepumuk
Hallo,
wie aktualisierst du die Verknüpfungen bisher?
Gruß
Nepumuk

AW: SQL Abfragen aktualisieren dann alles berechnen
17.07.2014 10:32:31
Josef
Hallo Nepumuk,
aktuell mache ich es über das Menüband im Excel unter "Daten" - "Alle Aktualisieren"

AW: SQL Abfragen aktualisieren dann alles berechnen
17.07.2014 10:34:23
Josef
Was ich vergessen habe, nachdem ich alle Daten aktualisiert habe, gehe ich auf meine Pivottabelle - rechte Maustaste - und aktualisiere meine Pivot.

AW: SQL Abfragen aktualisieren dann alles berechnen
17.07.2014 10:46:09
Nepumuk
Hallo,
teste mal:
Private Sub CommandButton1_Click()
    With Application
        .Calculation = xlCalculationManual
        .ScreenUpdating = False
    End With
    ThisWorkbook.RefreshAll
    With Application
        .Calculation = xlCalculationAutomatic
        .ScreenUpdating = True
    End With
    Worksheets("Tabelle1").QueryTables(1).Refresh 'Tabellenname anpassen
End Sub

Gruß
Nepumuk

Anzeige
AW: SQL Abfragen aktualisieren dann alles berechnen
17.07.2014 10:49:57
Josef
Danke.
Ich lasse es gerade durchlaufen. Ich melde mich dann sobald es fertig ist. Kann etwas dauern :-)

AW: SQL Abfragen aktualisieren dann alles berechnen
17.07.2014 10:53:05
Josef
Funktioniert leider nicht.
Es kommt folgender Fehler: Laufzeitfehler 9: Index außerhalb des gültigen Bereichs. Und im Code wird folgender Text markiert: Worksheets("Gesamtübersicht").QueryTables(1).Refresh

AW: SQL Abfragen aktualisieren dann alles berechnen
17.07.2014 11:02:24
Nepumuk
Hallo,
ooooops mein Fehler. Du hast ja eine Pivot-Tabelle und keine Query-Abfrage. Am einfachsten, du startest den Makrorekorder und zeichnest das aktualisieren deiner Pivot-Tabelle auf. Die dabei entstehende Anweisung kannst du dann an Stele meiner falschen Zeile einfügen. Solltest du nicht genau wissen welche Zeile (falls es mehrere sind), dann zeig mir das aufgezeichnete Makro.
Gruß
Nepumuk

Anzeige
AW: SQL Abfragen aktualisieren dann alles berechnen
17.07.2014 11:22:57
Josef
Pivot wurde leider nicht aktualisiert. Mein Code sieht momentan so aus:
'

Private Sub CommandButton1_Click()
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
ThisWorkbook.RefreshAll
With Application
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
Worksheets("Gesamtübersicht").PivotTables("PivotTable2").PivotCache.Refresh
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
End Sub
'

AW: SQL Abfragen aktualisieren dann alles berechnen
17.07.2014 11:52:08
Luschi
Hallo Josef,
Pivot-Tabellen aktualisiere ich so:
Worksheets("Gesamtübersicht").PivotTables("PivotTable2").RefreshTable
Gruß von Luschi
aus klein-Paris

Anzeige
AW: SQL Abfragen aktualisieren dann alles berechnen
17.07.2014 12:39:52
Josef
Hallo Luschi,
nun funktioniert es. Danke.
Jetzt habe ich bei allem eins vergessen. Weißt du wie der Code auszusehen hat, wenn ich vor der Aktualisierung der Pivottabelle eine Spalte (Spalte G) aus Tabelle 2 kopieren möchte und in Spalte H in Tabelle 2 als Wert einfügen möchte?
Nach der Wert eingefügt worden ist, möchte ich, dass er dasselbe noch mal tut. Grund dafür ist, dass sich die Werte in Spalte G ändern, sobald sich die Werte in Spalte H geändert haben. Ich habe in meiner Excelformel einen Zirkelbezug daher musste ich es so lösen.

AW: SQL Abfragen aktualisieren dann alles berechnen
17.07.2014 14:30:30
Luschi
Hallo Josef,
eigentlich hatte ich erwartet, daß Du mal verratest, wast die beiden Tipps von Nepumuk und mir Dir an Zeiteinsparung gebracht haben, statt neue Fragen zu stellen.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: SQL Abfragen aktualisieren dann alles berechnen
17.07.2014 14:56:43
Josef
Hallo Luschi,
bisher sind es ca. 8min. Was bei einer normalen Aktualisierungszeit von ca. 30min schon erheblich ist.
Und beschleunigen könnte ich es hoffentlich, wenn das kopieren der Spalten funktioniert. Aktuell sieht mein code folgendermaßen aus:
'

Private Sub CommandButton1_Click()
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
ThisWorkbook.RefreshAll
With Application
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
Sheets("FA Übersicht").Range("Q:Q").Copy
Sheets("FA Übersicht").Range("R:R").PasteSpecial Paste:=xlPasteValues
Sheets("FA Übersicht").Range("Q:Q").Copy
Sheets("FA Übersicht").Range("R:R").PasteSpecial Paste:=xlPasteValues
With Application
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
Worksheets("Gesamtübersicht").PivotTables("PivotTable2").PivotCache.Refresh
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
MsgBox "Alle Daten wurden aktualisiert"
End With
MsgBox "Alle Daten wurden aktualisiert"
End With
End With
End With
End Sub
'
Nur leider scheint das nicht zu funktionieren. Es kopiert leider immer nur einmal die Spalte Q in Spalte R dabei muss es 2 mal geschehen. Und das nächste ist, dass nach dem die MsgBox aufpoppt, erneut aktualisiert und berechnet wird.

Anzeige
AW: SQL Abfragen aktualisieren dann alles berechnen
18.07.2014 08:37:00
Luschi
Hallo Josef,
wenn das Dein letzter Vba-Code ist, dann hast Du meinen Vorschlag nicht umgesetzt, denn ich sehe immer noch:
Worksheets("Gesamtübersicht").PivotTables("PivotTable2").PivotCache.Refresh
statt:
Worksheets("Gesamtübersicht").PivotTables("PivotTable2").RefreshTable
Warum Du 2mal hintereinander die gleiche Kopier-Operation durchführen mußt, verstehe ich nicht
Sheets("FA Übersicht").Range("Q:Q").Copy
Sheets("FA Übersicht").Range("R:R").PasteSpecial Paste:=xlPasteValues
Zudem sollte man nur das Kopieren, was man auch braucht und nicht ganze Spalten; also:
Sheets("FA Übersicht").Range("Q1:Q?").Copy usw.
? bekommt man so heraus:
Dim ws As Worksheet, n As Long
Set ws = Sheets("FA Übersicht")
n = ws.Cells(ws.Rows.Count, "Q").End(xlUp).Row
ws.Range("Q1:Q" & n).Copy
'usw.
Set ws = Nothing
Gruß von Luschi
aus klein-Paris
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige