Fehlerbehandlung VBA
24.06.2005 00:30:41
Brabandt
mit nachfolgender VBA-Programmierung möchte ich automatisch nach Abfrage/Eingabe des gewünschten Monats die zugehörige Monats-Exceldatei öffnen lassen. Ich glaube, dass meine beigefügte Lösung wesentlich verkürzt werden kann. Stimmt das ? Wenn ja, wie ?
Momentan wird, wenn die zugehörige Monatsdatei noch nicht existiert, ein Laufzeitfehler 1004 angezeigt. In diesem Fall möchte ich über eine MSG-Box den Hinweis geben "Datei nicht auffindbar.Bitte prüfen. Berichterstellung wird abgebrochen". Der Anwender soll dann über einen OK-Button bestätigen, dass der Abbruch erfolgt. Mit Betätigen des Buttons soll die Anwendung geschlossen und das Makro abgebrochen werden. Da ich jedoch VBA-Anfänger bin, fehlt mir für diesen Teil das Know-How. Ich bitte Euch , mir zu helfen....
Private Sub Kostenberichterstellen_Click()
'Eingabe auslesen in Variablen speichern
jjjjmm = Monat.Text
' sicherstellen, dass Eingabefelder nicht leer oder keine Zahl eingegeben
If jjjjmm = "" Or IsNumeric(jjjjmm) = False Or jjjjmm > 200512 Or jjjjmm MsgBox "Bitte Monat in korrekter Zahlenform eingeben, z.B. Mai 2005 als 200505"
Exit Sub
End If
'nun haben wir sichergestellt, dass die Monatseingabe
'im gewünschten Zahlenformat erfolgt ist.
'Bearbeiter kann jetzt wählen zwischen Kostenberichterstellen und abbrechen
'Fall 1 : Wahl = Abbrechen siehe Private Sub AbbrechenKostenbericht_Click()
'fall 2 : wahl = kostenbericht erstellen
'1.teil : datenübertragung von basisdatei in kostenbericht
'A öffnen datei Kst ausführlich, in Anhängigkeit von dem gewünschten Monat
If jjjjmm "" And IsNumeric(jjjjmm) = True Then
If jjjjmm = "200501" Then
workbooks.Open ("C:\Dokumente und Einstellungen\addy\Desktop\DVR1\TFH Wildau\AngewInformatik\Kst ausführlich 200501.xls")
Else
If jjjjmm = "200502" Then
workbooks.Open ("C:\Dokumente und Einstellungen\addy\Desktop\DVR1\TFH Wildau\AngewInformatik\Kst ausführlich 200502.xls")
Else
If jjjjmm = "200503" Then
workbooks.Open ("C:\Dokumente und Einstellungen\addy\Desktop\DVR1\TFH Wildau\AngewInformatik\Kst ausführlich 200503.xls")
Else
If jjjjmm = "200504" Then
workbooks.Open ("C:\Dokumente und Einstellungen\addy\Desktop\DVR1\TFH Wildau\AngewInformatik\Kst ausführlich 200504.xls")
Else
If jjjjmm = "200505" Then
workbooks.Open ("C:\Dokumente und Einstellungen\addy\Desktop\DVR1\TFH Wildau\AngewInformatik\Kst ausführlich 200505.xls")
Else
If jjjjmm = "200506" Then
workbooks.Open ("C:\Dokumente und Einstellungen\addy\Desktop\DVR1\TFH Wildau\AngewInformatik\Kst ausführlich 200506.xls")
Else
If jjjjmm = "200507" Then
workbooks.Open ("C:\Dokumente und Einstellungen\addy\Desktop\DVR1\TFH Wildau\AngewInformatik\Kst ausführlich 200507.xls")
Else
If jjjjmm = "200508" Then
workbooks.Open ("C:\Dokumente und Einstellungen\addy\Desktop\DVR1\TFH Wildau\AngewInformatik\Kst ausführlich 200508.xls")
Else
If jjjjmm = "200509" Then
workbooks.Open ("C:\Dokumente und Einstellungen\addy\Desktop\DVR1\TFH Wildau\AngewInformatik\Kst ausführlich 200509.xls")
Else
If jjjjm = "200510" Then
workbooks.Open ("C:\Dokumente und Einstellungen\addy\Desktop\DVR1\TFH Wildau\AngewInformatik\Kst ausführlich 200510.xls")
Else
If jjjjmm = "200511" Then
workbooks.Open ("C:\Dokumente und Einstellungen\addy\Desktop\DVR1\TFH Wildau\AngewInformatik\Kst ausführlich 200511.xls")
Else
If jjjjmm = "200512" Then
workbooks.Open ("C:\Dokumente und Einstellungen\addy\Desktop\DVR1\TFH Wildau\AngewInformatik\Kst ausführlich 200512.xls")
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
MOnatsabfrage.Hide
Schon mal im voraus vielen Dank !!
die Ilka