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

VBA Kalkulation unterdrücken bei Query.Refresh

VBA Kalkulation unterdrücken bei Query.Refresh
Boris
Hallo,
obwohl ich gemäß folgendem Skript die Kalkulationseinstellung auf manuell setze, wird (anscheinend durch das qt.refresh) nach jedem Schleifendurchlauf neu kalkuliert. Setze ich die Kalkulation dagegen per Hand vor dem Ausführen des Makros auf manuell, wird nicht kalkuliert. Woran liegt das? In anderen Makros funktioniert untenstehende Kalkulationsabfrage...
Sub Query_Update()
Dim oldDir As String
Dim newDir As String
Dim ws As Worksheet
Dim qt As QueryTable
Dim lngCalcStatus As Long
lngCalcStatus = Application.Calculation
If lngCalcStatus  -4135 Then Application.Calculation = xlCalculationManual
newDir = ThisWorkbook.Path
For Each ws In Worksheets
For Each qt In ws.QueryTables
If qt.QueryType = xlODBCQuery Then
oldDir = ExtractDir(qt.Connection)
If oldDir  "" Then
qt.Connection = Replace(qt.Connection, oldDir, newDir, compare:= _
vbTextCompare)
qt.CommandText = Replace(qt.CommandText, oldDir, newDir, compare:= _
vbTextCompare)
End If
End If
qt.Refresh
Next
Next
Application.Calculation = lngCalcStatus
End Sub

Viele Grüße...

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA Kalkulation unterdrücken bei Query.Refresh
04.02.2010 15:24:46
Ramses
Hallo
dann machs doch einfach mal direkt unter Umgehung der Abfrage
Anstelle von
lngCalcStatus = Application.Calculation
If lngCalcStatus -4135 Then Application.Calculation = xlCalculationManual
verwendest du einfach
Application.Calculation = xlCalculationManual
und am Ende
Application.Calculation = xlCalculationAutomatic
und nochmals probieren
Gruss Rainer
AW: VBA Kalkulation unterdrücken bei Query.Refresh
04.02.2010 18:34:32
Boris
Hallo,
das ist doch aber letztendlich das gleiche und führt genau wie vorher dazu, dass nach jedem Schleifendurchlauf kalkuliert wird.
Finde dies sehr merkwürdig. Welchen Unterschied macht es, ob ich die Einstellung manuell oder per Application.Calculation = xlCalculationManual auf manuell setze? Das müsste doch genau das gleiche bewirken?
Viele Grüße...
Anzeige
AW: VBA Kalkulation unterdrücken bei Query.Refresh
04.02.2010 19:32:39
Ramses
Hallo
"...das ist doch aber letztendlich das gleiche..."
Mag so aussehen.,... aber vielleicht ist das Ergebnis der Prüfung nicht das was du, oder EXCEL, erwartet.
Gruss Rainer
AW: VBA Kalkulation unterdrücken bei Query.Refresh
05.02.2010 09:43:31
Boris
Hallo
Ok, aber dennoch führt Dein Vorschlag zum gleichen Ergebnis...
Wenn ich dagegen die beiden Anweisungen Application.Calculation = xlCalculationManual und Application.Calculation = xlCalculationAutomatic je in getrennte Subs packe und dann diese Subs manuell hintereinander aufrufe, funktioniert es:
1 Sub Calc_Manuell () = Application.Calculation = xlCalculationManual
2 Sub Query_Update () = Update der Queries
3 Sub Calc_Automatic () = Application.Calculation = xlCalculationAutomatic
Allerdings löst das jetzt nicht unbedingt mein Problem, da ich ja nicht 3 Subs ausführen will...
Kennt jemand eine Lösung?
Viele Grüße
Anzeige

118 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige