Fehlermeldung von Excel überschreiben
#1
Hallo zusammen,

ich habe eine Tabelle in die Daten importiert werden und anschließend Berechnungen ausgelöst werden. Nun soll es auch möglich sein, manuell Werte einzugeben. Dabei habe ich jedoch auch eine Berechnung für den prozentualen Unterschied zwischen zwei Werten.
Code:
Sub DeltaMEKProzent()

Dim Zeile As Integer

Zeile = 3

Set book = ActiveWorkbook

With book.Worksheets("Gehaltsdaten")

While (.Cells(Zeile, 1) <> "")
   
   .Cells(Zeile, 32).Value = (Cells(Zeile, 28) - Cells(Zeile, 48)) / Abs(Cells(Zeile, 48))
   
   .Cells(Zeile, 32).Style = "Percent"

Zeile = Zeile + 1

Wend

End With

End Sub

Wenn ich nun den Wert in Spalte 28 zuerst befülle erhalte ich eine Division durch Null und folgende Fehlermeldung:

Laufzeitfehler '11':
Division durch Null

Nun möchte ich jedoch die Fehlermeldung überschreiben, indem ich dem Benutzer mitteilen will, dass er erst den Wert in Spalte 48 eintragen soll.

Hat jemand eine Lösung für mein Problem? Bin über jede Hilfe dankbar :)
Antworten Top
#2
Hallo Jonas,

da schickt man einen schönen Link, wo einem das erklärt wird und dann frägt derjenige das nochmals  Confused  http://www.clever-excel-forum.de/Thread-...#pid125853

Versuche es mal so

Code:
Sub DeltaMEKProzent()

Dim Zeile As Integer

On Error GoTo Errorhandling
Zeile = 3

Set book = ActiveWorkbook

With book.Worksheets("Gehaltsdaten")

While (.Cells(Zeile, 1) <> "")
   
   .Cells(Zeile, 32).Value = (Cells(Zeile, 28) - Cells(Zeile, 48)) / Abs(Cells(Zeile, 48))
   
   .Cells(Zeile, 32).Style = "Percent"

Zeile = Zeile + 1

Wend

End With
Exit Sub
Errorhandling:
If Err.Number = 11 Then MsgBox "Bitte Wert in Spalte 48 eintagen", vbInformation

End Sub
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#3
@Steffl, oh tut mir leid. Da hatte ich die Benachrichtigung ausgeschaltet gehabt und es ist untergegangen bei mir leider dabei. Vielen Dank dir, ich werde mich damit auseinandersetzen.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste