Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: excel stürzt ab bei vba befehl

excel stürzt ab bei vba befehl
Sascha

hallo experten .
beim folgenden code stürzt immer mein excel ab .
was mache ich falsch?
ich habe in den zellbereichen AZ3:BC33 formeln drin.
nun moechte ich dass die bereiche C3:D33 die wette automatisch übernehmen, ohne
dass ich das jeweilige tabellenblatt aktivieren muss.

Private Sub Worksheet_Calculate()
With Range("AZ3:AZ33")
Range("C3:C33").Value = Range("AZ3:AZ33").Value
end with
with range("BA3:BA33")
Range("E3:E33").Value = Range("BA3:BA33").Value
end with
Range("D3:D33").Value = Range("BB3:BB33").Value
with range("BC3:BC333")
Range("F3:F33").Value = Range("BC3:BC33").Value
End With
End Sub
lg sascha
Anzeige
AW: excel stürzt ab bei vba befehl
12.01.2012 13:37:34
MatthiasG
Hallo Sascha,
versuch mal die automatische Berechnung vorübergehend abzuschalten:

Private Sub Worksheet_Calculate()
Dim CalcMode As Long
CalcMode = Application.Calculation
Application.Calculation = xlCalculationManual
With Range("AZ3:AZ33")
Range("C3:C33").Value = Range("AZ3:AZ33").Value
End With
With Range("BA3:BA33")
Range("E3:E33").Value = Range("BA3:BA33").Value
End With
Range("D3:D33").Value = Range("BB3:BB33").Value
With Range("BC3:BC333")
Range("F3:F33").Value = Range("BC3:BC33").Value
End With
Application.Calculation = CalcMode
End Sub

Gruß Matthias
Anzeige
Man kann CalcMode auch As XlCalculation ...
12.01.2012 13:53:22
Luc:-?
…definieren, Matthias.
Nur ein Tipp.
Gruß Luc :-?
Danke dafür! Außerdem...
12.01.2012 13:58:32
MatthiasG
...finde ich deine Verbindung von Betreff und Text immer wundervoll, Luc:-?.
Das wollte ich Dir immer schon sagen.
Gruß Matthias
Dito danke dafür... ;-)
12.01.2012 14:06:36
Luc:-?
Wenn ich's zu allgemein halte, habe ich allerdings beim Wiederfinden Probleme, Matthias;
das ist dann die Kehrseite! ;-)
Gruß Luc :-?
Anzeige
AW: Man kann CalcMode auch As XlCalculation ...
12.01.2012 15:16:24
Sascha
NACHTRAG:
Es funktioniert doch nicht :-( sobald ich die Userform starte, stürzt Excel wieder ab!
Gibt es noch eine andere Variante (zb Bedingte Formatierung), um die Zellen die eine Formel enthalten,
in andere Zellen schreiben zu lassen, ohne dass das Tabellenblatt aktiviert wird?
LG Sascha
Anzeige
AW: excel stürzt ab bei vba befehl
12.01.2012 14:57:08
Sascha
Hey Super!!! :-))
Vielen Dank. das wars was ich suchte :-)
Liebe Grüsse
Sascha
DAnn nimm aber bitte auch diese WITH.. raus
12.01.2012 15:29:17
NoNet
Hallo Sascha,
ich kann den Excel-Absturz unter Excel 2010 ebenfalls reproduzieren !
Was mich an Deinem Code aber zusätzlich stört ist diese absolut überflüssige und in diesem Fall völlig wirkungslose Verwendung der WITH...END WITH Anweisungen.
Ändere den Code bitte folgendermassen :
Private Sub Worksheet_Calculate()
Dim CalcMode As Long
CalcMode = Application.Calculation
Application.Calculation = xlCalculationManual
Range("C3:C33").Value = Range("AZ3:AZ33").Value
Range("E3:E33").Value = Range("BA3:BA33").Value
Range("D3:D33").Value = Range("BB3:BB33").Value
Range("F3:F33").Value = Range("BC3:BC33").Value
Application.Calculation = CalcMode
End Sub

Gruß, NoNet
Anzeige
AW: DAnn nimm aber bitte auch diese WITH.. raus
12.01.2012 15:37:11
Sascha
Das habe ich gemacht. Funktioniert einwandfrei in den tabellenblättern. Nur sobald ich die Userform (zur Eingabe in die Tabellenblätter) starte, Absturz... :-(
AW: Vielleicht doch ein With:
12.01.2012 15:42:09
MatthiasG
Hallo Sascha,
wenn der Code vom Userform ausgelöst wird, probier mal diesen Code im Arbeitsblatt:

Private Sub Worksheet_Calculate()
Dim CalcMode As Long
CalcMode = Application.Calculation
Application.Calculation = xlCalculationManual
With Me
.Range("C3:C33").Value = .Range("AZ3:AZ33").Value
.Range("E3:E33").Value = .Range("BA3:BA33").Value
.Range("D3:D33").Value = .Range("BB3:BB33").Value
.Range("F3:F33").Value = .Range("BC3:BC33").Value
End With
Application.Calculation = CalcMode
End Sub

Gruß Matthias
Anzeige
AW: Vielleicht doch ein With:
12.01.2012 15:46:28
Sascha
Immernoch Absturz...
Es ist zum Verzweifeln ... Das geht mir einfach nicht in Kopf...
Danke und Gruss Sascha
AW: Vielleicht doch ein With:
12.01.2012 15:50:04
MatthiasG
Hallo Sascha,
was heißt Absturz: Friert Excel ein oder schließt es sich einfach, oder kommt noch eine Fehlermeldung?
Wielleicht doch mal eine Beispieldatei hochladen?
Gruß Matthias
Anzeige
AW: Nachtrag
12.01.2012 15:53:50
MatthiasG
Hallo Sascha,
was spricht eigentlich dagegen, in die Zellen einen direkten Verweis auf die Zellen mit den Formeln zu setzen?
Also in C3 "=AZ3", usw.
Gruß Matthias
AW: Nachtrag
12.01.2012 15:57:02
Sascha
Hallo mathias. das problem dabei ist, wenn die userform startet
und die daten einliest, überschreibt es mir die formel,
Obwohl ich nicht speichere..
Anzeige
AW: Nachtrag
12.01.2012 16:00:38
MatthiasG
Hallo Sascha,
also du kannst mit die Datei schon schicken (goessner -at- gmx.com), aber besser wäre es du baust eine Mappe mit den nötigsten Elementen nach und stellst sie hier rein, damit die anderen ihre Hilfe auch anbieten können!
Zumal der Nachbau der Mappe dich evtl. selbst auf den Fehler bringt.
Gruß Matthias
Anzeige
AW: Nachtrag
12.01.2012 16:15:11
Sascha
Ok... ich kann ja beides machen. sende sie dir sobald ich zurueck bin. ca 1 std
Problem gelöst
12.01.2012 19:53:56
Sascha
Hallo zusammen,
Ich habe soeben das Problem gelöst...
Dank Deinem Tip, Matthias.... :-)
Ich wollte meine Mappe abspecken um diese hochzuladen.
Bei der Durchsicht der Codes, bin ich auf folgende Zeile gestossen:
Cells(Zei, n).Value = Datenmaske.Controls("TB" & n).Value
Als ich diese Zeile für das jeweilige Tabellenblatt herausgelöscht habe, hat es funktioniert.
Da dies der Code ist, der beim Klick auf den Speichern - Button ausgelöst wird, hat es mir die Formel überschrieben...
Demnach ist nun alles OK.
Ich danke Euch allen für Eure wertvolle Hilfe im Forum. Ich schätze das sehr.
Es ist mir auch bewusst dass wenn Ihr den Code nicht sehen könnt, nur bedingt Hilfestellung leisten könnt...
Da meine Mappe aber sehr gross ist, und sehr viele Codes, sowie auch heikle Daten, wollte ich diese nicht voll und ganz publizieren.
Hätte ichs gemacht, bin ich sicher, hätten die meisten von Euch den Fehler auf anhieb gefunden.
Vielen Dank für Euer Verständnis. und nochmals Danke für all Eure Hilfe
Liebe Grüsse und bis bald
Sascha
Anzeige
AW: Vielleicht doch ein With:
12.01.2012 15:54:03
Sascha
Das excel friert ein. ohne fehler !
Die mappe ist sehr komplex aufgebaut.
wegen datenschutz darf ich sie leider nicht veroeffentlichen.
Kann ich sie dir per email schicken?
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel VBA: Absturzprobleme beheben


Schritt-für-Schritt-Anleitung

Wenn Excel beim Ausführen von VBA-Code abstürzt, kannst du folgende Schritte unternehmen:

  1. Automatische Berechnung deaktivieren: Manchmal führt die automatische Berechnung zu Abstürzen. Füge diesen Code ein, um die Berechnung vorübergehend abzuschalten:

    Private Sub Worksheet_Calculate()
       Dim CalcMode As Long
       CalcMode = Application.Calculation
       Application.Calculation = xlCalculationManual
       ' Dein Code hier
       Application.Calculation = CalcMode
    End Sub
  2. Überflüssige With...End With Anweisungen entfernen: Diese können in manchen Fällen Probleme verursachen. Verwende stattdessen direkten Zugriff auf die Zellen:

    Range("C3:C33").Value = Range("AZ3:AZ33").Value
  3. Fehlerquellen identifizieren: Achte darauf, dass der Code nicht auf Zellen zugreift, die möglicherweise Fehler enthalten oder auf ein anderes Tabellenblatt verweisen.


Häufige Fehler und Lösungen

  • Excel stürzt ab ohne Fehlermeldung: Oft ist dies ein Zeichen dafür, dass der Code eine Endlosschleife oder einen zu großen Datenbereich verarbeitet. Stelle sicher, dass alle Schleifen korrekt terminiert sind.

  • Excel friert ein: Dies kann passieren, wenn der Code zu viele Berechnungen in kurzer Zeit ausführt. Reduziere die Anzahl der Berechnungen oder verwende DoEvents, um Excel zu erlauben, zwischen den Berechnungen zu reagieren.


Alternative Methoden

Falls der VBA-Code weiterhin Probleme verursacht, kannst du alternative Methoden ausprobieren:

  • Direkte Zellverweise: Setze in den Zielzellen direkte Verweise auf die Quellzellen. Beispiel:

    Range("C3").Formula = "=AZ3"
  • Bedingte Formatierung: Falls es dir nur um die Übertragung von Werten geht, kannst du auch bedingte Formatierungen verwenden, um visuelle Hinweise zu geben, ohne die Zellen aktiv zu verändern.


Praktische Beispiele

Hier ist ein Beispiel, das zeigt, wie du den Absturz vermeiden kannst:

Private Sub Worksheet_Calculate()
    Dim CalcMode As Long
    CalcMode = Application.Calculation
    Application.Calculation = xlCalculationManual

    ' Übertragung der Werte
    Range("C3:C33").Value = Range("AZ3:AZ33").Value
    Range("E3:E33").Value = Range("BA3:BA33").Value
    Range("D3:D33").Value = Range("BB3:BB33").Value
    Range("F3:F33").Value = Range("BC3:BC33").Value

    Application.Calculation = CalcMode
End Sub

In diesem Beispiel wird die Berechnung manuell verwaltet, um zu verhindern, dass Excel ständig abstürzt.


Tipps für Profis

  • Debugging nutzen: Verwende Debug.Print, um den Status von Variablen zu überprüfen, bevor du sie verwendest. Das hilft, Probleme frühzeitig zu identifizieren.

  • Fehlerprotokollierung: Implementiere eine einfache Fehlerprotokollierung, um zu verstehen, an welcher Stelle dein Code möglicherweise abstürzt.

  • Ereignisprozeduren optimieren: Achte darauf, dass deine Ereignisprozeduren nicht zu viel Arbeit auf einmal erledigen. Teile sie in kleinere, handhabbare Abschnitte auf.


FAQ: Häufige Fragen

1. Warum stürzt Excel ständig ab?
Excel kann abstürzen, wenn der Code ineffizient ist oder auf nicht vorhandene Zellen zugreift. Überprüfe deinen Code auf solche Fehler.

2. Wie kann ich verhindern, dass Excel bei der Ausführung von Makros abstürzt?
Deaktiviere die automatische Berechnung zu Beginn deines Makros und stelle sicher, dass alle Daten korrekt referenziert werden.

3. Was ist xlCalculationManual?
xlCalculationManual ist eine Einstellung in Excel VBA, die es dir ermöglicht, die Berechnung manuell zu steuern, um Abstürze zu vermeiden.

4. Was kann ich tun, wenn Excel bei der Verwendung einer Userform abstürzt?
Stelle sicher, dass alle Daten, die du in die Userform eingibst, keine Konflikte mit bestehenden Formeln in deinen Arbeitsblättern verursachen.

5. Wie kann ich meine Excel-Datei auf Fehler überprüfen?
Du kannst die Datei in den abgesicherten Modus starten oder die Excel-Diagnose-Tools verwenden, um mögliche Fehlerquellen zu identifizieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige