Microsoft Excel

Herbers Excel/VBA-Archiv

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

Fehler abfangen im VBA-Code

Betrifft: Fehler abfangen im VBA-Code von: Torsten K.
Geschrieben am: 13.08.2004 14:43:14

Hallo zusammen,

in der nachfolgenden Datei habe ich einen VBA-Code erarbeitet, mit dem ich verschiedene Dateien aktualisieren kann und gleichzeitig über Variablen Summen zu bestimmten Daten ziehen und in ein WS schreiben kann:

https://www.herber.de/bbs/user/9593.xls

Im Einzelnen: In einer Zentraldatei habe ich pro Kostenstelle die Gehälter und Incentives hinterlegt. Diese Daten gelangen über eine SVerweis-Verknüpfung in die Budgetdateien der Kostenstellen. Nachdem die Personalkostendaten aktualisiert wurden, möchte ich natürlich nicht alle einzelnen Budgetdateien der Kostenstellen manuell öffnen, aktualisieren, speichern und schließen sondern
mit Hilfe meines VBA-Codes updaten. Gleichzeitig möchte ich aus Kontrollzwecken jeweils die Summen der Incentives/Gehälter in meine UpDate-Datei eintragen lassen. Das ist mir mit meinem Code auch alles gelungen (und mit Hilfe von Udo aus'm Pott).
Allerdings brauche ich für folgenden offenen Punkt Eure Hilfe:

Die zu aktualisierenden Budgetdateien (NL1_TEST.xls, NL2_TEST.xls, INDUS_TEST.xls) werden im Code nacheinander (über das Sheet("FILES")) aktualisiert. Ich hätte zusätzlich gern, daß Excel, wenn dabei etwas schiefläuft, abbricht und eine MsgBox bringt, mit dem Hinweis bei welcher Datei der Abbruch erzeugt wurde.
Ich wäre Euch daher sehr dankbar, wenn Ihr mir helfen könnt.

Viele Grüße
Torsten

  


Betrifft: AW: Fehler abfangen im VBA-Code von: Uduuh
Geschrieben am: 13.08.2004 17:38:06

Hallo,
war eine Zeit lang nich online.
Private Sub cmb_UPDATE_Click()

If MsgBox("Sollen die Kostendateien jetzt aktualisiert werden?", vbYesNo) = vbYes Then

Dim EI As Long  'Estimate Incentive
Dim EG As Long  'Estimate Gehalt
Dim BI As Long  'Budget Incentive
Dim BG As Long  'Budget Gehalt
Dim i As Integer
Dim irow As Integer
Dim wbName As String
On Error GoTo errHandler
Application.ScreenUpdating = False
Application.StatusBar = "Dieser Vorgang dauert ein paar Minuten. Bitte Geduld haben..."
Application.DisplayAlerts = False
Application.EnableEvents = False 'die MsgBoxen beim Schließen der Kostendateien werden unterdrückt

For i = 1 To Sheets("FILES").Range("A1").End(xlDown).Row
wbName = Sheets("FILES").Cells(i, 1)
Workbooks.Open wbName, 3
    ActiveWorkbook.Save
        EI = EI + Sheets("ENTER").Range("I40").Value
        EG = EG + Sheets("ENTER").Range("I42").Value
        BI = BI + Sheets("ENTER").Range("O40").Value
        BG = BG + Sheets("ENTER").Range("O42").Value
    ActiveWorkbook.Close , True
Next i

   With Worksheets("UpDate")
      irow = .Cells(Rows.Count, 8).End(xlUp).Row + 1
      
            .Unprotect "maze"
            .Cells(irow, 2).Value = Date
            .Cells(irow, 3).Value = Time
            .Cells(irow, 4).Value = Environ("Username")
            .Cells(irow, 5).Value = EI
            .Cells(irow, 6).Value = EG
            .Cells(irow, 7).Value = BI
            .Cells(irow, 8).Value = BG
            .Protect "maze"
   End With

Application.DisplayAlerts = True
Application.StatusBar = False
Application.EnableEvents = True

MsgBox "Dateien wurden aktualisiert", vbOKOnly

Application.ScreenUpdating = True
End If
Exit Sub

errHandler:
Application.DisplayAlerts = True
Application.StatusBar = False
Application.EnableEvents = True
MsgBox "Beim Update der Datei " & wbName & " ist ein Fehler aufgetreten"
End Sub

Gruß aus'm Pott
Udo


  


Betrifft: AW: erledigt - mT von: Torsten K.
Geschrieben am: 16.08.2004 10:08:44

Hallo Udo,

ich habe nunmehr den Errorhandler eingebaut. Läuft natürlich bestens!
Vielen Dank für Hilfe.

Gruß
Torsten


 

Beiträge aus den Excel-Beispielen zum Thema "Fehler abfangen im VBA-Code"