Microsoft Excel

Herbers Excel/VBA-Archiv

Berechnung deaktivieren! | Herbers Excel-Forum


Betrifft: Berechnung deaktivieren! von: Gordon
Geschrieben am: 13.01.2010 13:16:14

Moin moin,

hab das ganze zwar vorhin schon mal geschrieben, aber irgendwie wurde das wohl nicht übernommen. Naja, ich schreibe dann jetzt nochmal! :-)

Also folgendes Problem:

Ich habe eine große Excel-Datenbank (120MB), wo auch viele Formeln (u.a. sverweise) drin vorhanden sind. Die braucht beim Öffnen immer etwa 10min bis sie einsatzfähig ist. Sobald ich ein Feld ändere, beginnt die Berechnung von vorne. Daher habe ich auch in den Options die Berechnung von automatisch auf manuell geschaltet. Das ging dann wunderbar.

Nun habe ich aber eine zweite Datei mit einem VBA-Makro. Diese greift auf die Datenbank zu bzw. öffnet diese und zieht sich Werte raus. Als Beispiel gelten nun mal diese drei Code-Zeilen - es sind natürlich viel mehr im anzen Code:

ThisWorkbook.Sheets("KST").Range("B2:B" & count - 2).Value = NeueDatei.Sheets("DB").Range("R9:R" _
 & count).Value
    ThisWorkbook.Sheets("KST").Range("E2:E" & count - 2).Value = NeueDatei.Sheets("DB").Range(" _
S9:S" & count).Value
    ThisWorkbook.Sheets("KST").Range("A2:A" & count - 2).Value = NeueDatei.Sheets("DB").Range(" _
Q9:Q" & count).Value
Hier werden Werte einfach übertragen. Leider ist es nun so, dass es bei der Ausführung jeder der einzelnen Zeile wieder die Berechnung im Excel-Blatt startet. D.h. ich muss dann jedes mal etwa 10min für jeder dieser drei Code-Zeilen rechnen. das geht natürlich beim gesamten Quellcode ins Extreme!

Hat vielleicht jemand eine Idee, wie ich das umgehen kann bzw. so bekomme, dass diese Berechnung nicht mehr stattfindet? Wäre sehr zu Dank verpflichtet!

Besten Gruß
Gordon

  

Betrifft: AW: Berechnung deaktivieren! von: Mario
Geschrieben am: 13.01.2010 13:37:58

Hi!

probier mal


Application.Calculation = xlCalculationManual

Dein Code

Application.Calculation = xlCalculationAutomatic


Gruß
Mario


  

Betrifft: AW: Berechnung deaktivieren! von: Gordon
Geschrieben am: 13.01.2010 14:11:29

Moin,

danke für die Antwort. Klappt auch wunderbar. Leider schaltet das auch die Berechnungen in der anderen datei aus, was nicht so sein soll. Ich habe jetzt aber noch eine andere Möglichkeit gefunden:

Worksheets("Tabelle1").EnableCalculation = False
Nur das ist jetzt für ein einzelnes Blatt. Geht das auch für die ganze Mappe?


  

Betrifft: AW: Berechnung deaktivieren! von: Mario
Geschrieben am: 13.01.2010 14:27:17

Hi,

würd's dann mit einer Schleife machen.

bspw.:

For i = 1 To Sheets.Count

Sheets(i).EnableCalculation = False 'bzw. true

Next i

Gruß

Mario


  

Betrifft: AW: Berechnung deaktivieren! von: Gordon
Geschrieben am: 13.01.2010 14:48:38

Ja,

hatte ich mir auch schon gedacht. Hatte nur gehofft, dass es da vielleicht noch einen Weg gibt. Aber so geht's natürlich auch. Danke! :-)

Gruß
Gordon


Beiträge aus den Excel-Beispielen zum Thema "Berechnung deaktivieren!"