Excel stürzt immer wieder ab

11/12/2008 - 14:19 von don H. Lee | Report spam
Hallo

Ich habe ein kleines Problem mit meiner Excel App.

Für die Dateneingabe brauche ich ein Form. Auf dieser Form habe ich
teilweise TextBoxen direkt mit der Zelle verbunden und teilweise schreibe
ich nach formatierungen die Daten über Activate und QueryClose.

Hier ein paar auszüge aus meinem Code zum besseren Verstàndnis:

1. Ich habe ein Modul mit ein paar Funktionen für die Formatierungen:

'Diese Funktion formattiert Nummer in eine Policennummer
Public Function FormatAsPoliceNumber(Num As Variant) As String
FormatAsPoliceNumber = Format(Num, "000000.000")
End Function

'Diese Funktion formattiert Nummer in eine Risikonummer
Public Function FormatAsRisikoNumber(Num As Variant) As String
FormatAsRisikoNumber = Format(Num, "0000")
End Function


2. In den Textboxen beim Event 'Exit' habe ich ca. 20x eine formatierung wie
(Teilweise zeigt es auf eine Funktion die ich nicht aufgeführt habe, sind
aber àhnlich wie oben):

'Saubere Formattierung in eine Policennummer 000000.000
Private Sub txtPolicenDatenPNR_UVG_Exit(ByVal Cancel As
MSForms.ReturnBoolean)
txtPolicenDatenPNR_UVG.Text =
FormatAsPoliceNumber(txtPolicenDatenPNR_UVG.Text)
End Sub

'Saubere Formattierung in eine Policennummer 000000.000
Private Sub txtPolicenDatenPNR_UVGE_Exit(ByVal Cancel As
MSForms.ReturnBoolean)
txtPolicenDatenPNR_UVGE.Text =
FormatAsPoliceNumber(txtPolicenDatenPNR_UVGE.Text)
End Sub

'Saubere Formatieren in eine Risiko-Nummer 0000
Private Sub txtBetriebRisikonNr_Exit(ByVal Cancel As MSForms.ReturnBoolean)
txtBetriebRisikonNr.Text = FormatAsRisikoNumber(txtBetriebRisikonNr.Text)
End Sub

'Sauberes Formatieren in eine Ganzzahl
Private Sub txtUVG_E_AbwTar_RabGrosse_Exit(ByVal Cancel As
MSForms.ReturnBoolean)
txtUVG_E_AbwTar_RabGrosse = FormatAsNumberFull(txtUVG_E_AbwTar_RabGrosse)
End Sub

3. Dann habe ich beim Activate-Event des Forms den Code, der die Werte aus
den Zellen liest:

Private Sub UserForm_Activate()
txtPolicenDatenPNR_UVG.Text = Worksheets("Antrag").Range("p12").Value
txtPolicenDatenPNR_UVGE.Text = Worksheets("Antrag").Range("p17").Value
txtBetriebRisikonNr.Text = Worksheets("Risiko_Nr.").Range("B1").Value

txtUVGAbwTarVWKBU.Text = Worksheets("Berechnung_UVG").Range("h3").Value
txtUVGAbwTarVWKNBU.Text = Worksheets("Berechnung_UVG").Range("h8").Value

end sub

4. Beim QueryClose das umgekehrte
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Worksheets("Antrag").Range("p12").Value = txtPolicenDatenPNR_UVG.Text
Worksheets("Antrag").Range("p17").Value = txtPolicenDatenPNR_UVGE.Text
Worksheets("Risiko_Nr.").Range("B1").Value = txtBetriebRisikonNr.Text

Worksheets("Berechnung_UVG").Range("h3").Value = txtUVGAbwTarVWKBU.Text
Worksheets("Berechnung_UVG").Range("h8").Value = txtUVGAbwTarVWKNBU.Text
Worksheets("Berechnung_UVG").Range("h13").Value =
txtUVGAbwTarVWKFreiVers.Text
Worksheets("Berechnung_UVG").Range("e3").Value =
txtUVGAbwTarErfTarifStufe.Text
end sub

Es sind noch ein paar mehr Werte drin, aber der lesbarkeit halber habe ich
das ganze kurz gehalten.

Wenn ich nun die Form öffnen und gleich wieder schliesse, dann schmiert
Excel ab mit dem Fehler, dass Excel aus einem unbekannten Grund beendet
wurde.

Das gleich passiert, wenn ich eine Zeit lang von Feld zu Feld springe (und
wahrscheinlich die Events ausgelöst werden).

Hat jemand eine Idee, wie das ganze 'stabil machen kann?

Danke für jede Hilfe.

Gruss

D.H. Lee
 

Lesen sie die antworten

#1 don H. Lee
11/12/2008 - 15:03 | Warnen spam
Hallo

Hier noch ein paar wichtige Infos:

1. Ich brauche Excel 2000 und 2003.

2. Die Zellen sind nicht speziell formatiert

3. Gesamthaft sind es ca. 30 textboxen die mit code gefüllt werden und 40,
welche direkt mit der Zelle verbunden sind.

4. Wenn ich den gesamten Code lösche und dann ausführe, dann crash Excel
nicht

Herzlichen Dank.

Gruss

D. H. Lee

"don H. Lee" schrieb im Newsbeitrag
news:
Hallo

Ich habe ein kleines Problem mit meiner Excel App.

Für die Dateneingabe brauche ich ein Form. Auf dieser Form habe ich
teilweise TextBoxen direkt mit der Zelle verbunden und teilweise schreibe
ich nach formatierungen die Daten über Activate und QueryClose.

Hier ein paar auszüge aus meinem Code zum besseren Verstàndnis:

1. Ich habe ein Modul mit ein paar Funktionen für die Formatierungen:

'Diese Funktion formattiert Nummer in eine Policennummer
Public Function FormatAsPoliceNumber(Num As Variant) As String
FormatAsPoliceNumber = Format(Num, "000000.000")
End Function

'Diese Funktion formattiert Nummer in eine Risikonummer
Public Function FormatAsRisikoNumber(Num As Variant) As String
FormatAsRisikoNumber = Format(Num, "0000")
End Function


2. In den Textboxen beim Event 'Exit' habe ich ca. 20x eine formatierung
wie (Teilweise zeigt es auf eine Funktion die ich nicht aufgeführt habe,
sind aber àhnlich wie oben):

'Saubere Formattierung in eine Policennummer 000000.000
Private Sub txtPolicenDatenPNR_UVG_Exit(ByVal Cancel As
MSForms.ReturnBoolean)
txtPolicenDatenPNR_UVG.Text =
FormatAsPoliceNumber(txtPolicenDatenPNR_UVG.Text)
End Sub

'Saubere Formattierung in eine Policennummer 000000.000
Private Sub txtPolicenDatenPNR_UVGE_Exit(ByVal Cancel As
MSForms.ReturnBoolean)
txtPolicenDatenPNR_UVGE.Text =
FormatAsPoliceNumber(txtPolicenDatenPNR_UVGE.Text)
End Sub

'Saubere Formatieren in eine Risiko-Nummer 0000
Private Sub txtBetriebRisikonNr_Exit(ByVal Cancel As
MSForms.ReturnBoolean)
txtBetriebRisikonNr.Text = FormatAsRisikoNumber(txtBetriebRisikonNr.Text)
End Sub

'Sauberes Formatieren in eine Ganzzahl
Private Sub txtUVG_E_AbwTar_RabGrosse_Exit(ByVal Cancel As
MSForms.ReturnBoolean)
txtUVG_E_AbwTar_RabGrosse = FormatAsNumberFull(txtUVG_E_AbwTar_RabGrosse)
End Sub

3. Dann habe ich beim Activate-Event des Forms den Code, der die Werte aus
den Zellen liest:

Private Sub UserForm_Activate()
txtPolicenDatenPNR_UVG.Text = Worksheets("Antrag").Range("p12").Value
txtPolicenDatenPNR_UVGE.Text = Worksheets("Antrag").Range("p17").Value
txtBetriebRisikonNr.Text = Worksheets("Risiko_Nr.").Range("B1").Value

txtUVGAbwTarVWKBU.Text = Worksheets("Berechnung_UVG").Range("h3").Value
txtUVGAbwTarVWKNBU.Text = Worksheets("Berechnung_UVG").Range("h8").Value

end sub

4. Beim QueryClose das umgekehrte
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Worksheets("Antrag").Range("p12").Value = txtPolicenDatenPNR_UVG.Text
Worksheets("Antrag").Range("p17").Value = txtPolicenDatenPNR_UVGE.Text
Worksheets("Risiko_Nr.").Range("B1").Value = txtBetriebRisikonNr.Text

Worksheets("Berechnung_UVG").Range("h3").Value = txtUVGAbwTarVWKBU.Text
Worksheets("Berechnung_UVG").Range("h8").Value = txtUVGAbwTarVWKNBU.Text
Worksheets("Berechnung_UVG").Range("h13").Value =
txtUVGAbwTarVWKFreiVers.Text
Worksheets("Berechnung_UVG").Range("e3").Value =
txtUVGAbwTarErfTarifStufe.Text
end sub

Es sind noch ein paar mehr Werte drin, aber der lesbarkeit halber habe ich
das ganze kurz gehalten.

Wenn ich nun die Form öffnen und gleich wieder schliesse, dann schmiert
Excel ab mit dem Fehler, dass Excel aus einem unbekannten Grund beendet
wurde.

Das gleich passiert, wenn ich eine Zeit lang von Feld zu Feld springe (und
wahrscheinlich die Events ausgelöst werden).

Hat jemand eine Idee, wie das ganze 'stabil machen kann?

Danke für jede Hilfe.

Gruss

D.H. Lee

Ähnliche fragen