Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Ausgabe Variablen die on Error beansprucht haben


Betrifft: Ausgabe Variablen die on Error beansprucht haben von: Nici
Geschrieben am: 18.07.2018 09:40:34

Guten Morgen,
ich hol mir seit Jahren schon immer wider mal Infos aus dem Forumsarchiv und hatte bisher alles dann selbst umgesetzt bekommen. Nun steh ich aber vor einer Aufgabe, die ich irgendwie nicht gelöst bekomme und hoffe nun auf eure Hilfe.
Ich arbeite in einer Neuproduktkalkulation mit einer Zielwertsuche, um zu ermitteln, wann der Barwert auf 0 geht. Das funktioniert auch einwandfrei. Nun ist es so, dass es in meiner Arbeitsmappe mehrere Einzelkalkulationen hat und ich die Zielwertsuche mittels eines Makros für alle Kalkulationen starte. Bisher hatte ich ein Makro das die Kalkulationen von 1 bis x durchgerechnet hat und dann als MsgBox ausgegeben hat, bei welcher Kalkulation er gestoppt hat, weil dort eine Berechnung nicht möglich war (in der Regel, weil nicht alle Einzelkalkulationen genutzt wurden, aber auch wenn es einen Fehler gab). Nun ist es aber so, dass teilweise aus einem Projekt Bestandteile gestrichen werden und daher zum Beispiel die Daten aus Kalkulation 2 gelöscht werden, aber in Kalkulation 3 wieder Werte stehen. Hier würde mein Makro bei 2 abbrechen und den Rest nicht durchrechnen, was natürlich falsch wäre. Mein Kollege hatte nun ein Makro programmiert, dass die Fehler einfach ignoriert und weiterrechnet, aber damit bin ich nicht zufrieden, weil der Nutzer so ja nicht weiß, ob auch eine Kalkulation nicht berechnet wurde, die Daten enthält, aber es irgendeinen anderen Fehler in den Daten gibt. Meine Idee war nun in einer MsgBox ausgeben zu lassen, bei welchen Variablen der Code in die Fehlerbehandlung lief, aber ich bekomm das irgendwie nicht abgebildet. Habt ihr noch eine Idee? Vielen Dank schon mal vorab. Und wenn irgendetwas unklar ist, einfach nachfragen.

Private Sub Schwellenwerte_ermitteln_Click()

Dim i As Integer

intQuestion = MsgBox("blabla" _
& vbNewLine & "Calculate thresholds?", vbYesNo, "Threshold calculation")

If intQuestion = vbYes Then

Application.ScreenUpdating = False

On Error Resume Next

For i = 1 To 21
Worksheets("Kalk (" & i & ")").Activate
Call Schwellenwertberechnung
Next i

MsgBox "Calculations are done."

End If

Worksheets("Kalk Overview").Activate

Application.ScreenUpdating = True

End Sub

  

Betrifft: AW: Ausgabe Variablen die on Error beansprucht haben von: Rudi Maintaire
Geschrieben am: 18.07.2018 12:57:26

Hallo,
z.B.

Private Sub Schwellenwerte_ermitteln_Click()
  Dim i As Integer, objERR As Object
  
  intQuestion = MsgBox("blabla" _
    & vbNewLine & "Calculate thresholds?", vbYesNo, "Threshold calculation")
  
  If intQuestion = vbYes Then
    Set objERR = CreateObject("scripting.dictionary")
    Application.ScreenUpdating = False
    On Error GoTo ERRHDL
    
    For i = 1 To 21
      Worksheets("Kalk (" & i & ")").Activate
      Call Schwellenwertberechnung
NEXT_I:
    Next i
    
    MsgBox "Calculations are done."
    
  End If
  
  Worksheets("Kalk Overview").Activate
  
  If objERR.Count Then MsgBox "Fehler in Blatt " & vbLf & Join(objERR.keys, vbLf)
  Exit Sub
ERRHDL:
  objERR("Kalk (" & i & ")") = 0
  Resume NEXT_I
End Sub

Gruß
Rudi


  

Betrifft: AW: Ausgabe Variablen die on Error beansprucht haben von: Nici
Geschrieben am: 18.07.2018 14:31:57

Hey Rudi,

vielen Dank für die schnelle Hilfe. Der Code läuft einwandfrei durch und ist genau das was ich gesucht hatte. Nochmals vielen Dank!

Gruß Nicole


Beiträge aus dem Excel-Forum zum Thema "Ausgabe Variablen die on Error beansprucht haben"