Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
628to632
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
628to632
628to632
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Fehlerbehandlung VBA

Fehlerbehandlung VBA
24.06.2005 00:30:41
Brabandt
Hallo an alle VBA-Profis,
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

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehlerbehandlung VBA
24.06.2005 00:40:10
Matthias
Hallo Ilka,
die ganze riesige If-Abfrage kann ersetzt werden durch:

On Error Resume Next
Workbooks.Open ("C:\Dokumente und Einstellungen\addy\Desktop\DVR1\TFHWildau\AngewInformatik\Kst ausführlich " & jjjjmm & ".xls")
If Err.Number > 0 Then
MsgBox Err.Description, vbExclamation, "Laufzeitfehler " & Err.Number
Err.Clear
Exit Sub
End If

Mit Betätigen des Buttons soll die Anwendung geschlossen und das Makro abgebrochen werden.
wie meinst du das? Mappe schließen? Userform schließen?
Gruß Matthias
AW: Fehlerbehandlung VBA
24.06.2005 18:26:07
Ilka
Hallo Matthias,
vielen vielen Dank, werde es gleich mal ausprobieren.
Nun zu Deiner Frage : Mit Betätigen des Buttons sollen sowohl Mappe als auch Userform geschlossen werden.
Gruß
Ilka
Anzeige
AW: Fehlerbehandlung VBA
24.06.2005 18:53:41
Ilka
Hallo Matthias,
ich habe noch die Anweisungen eingefügt bzgl. Mappe schliessen und Userform schliessen.
Sind diese korrekt ?
.....
Err.Clear
'userform schliessen
Unload MOnatsabfrage
'Mappe schliessen
workbooks.Close
Exit Sub
End If
Noch eine Frage :
Ich möchte beim Öffnen der Exceldatei Kostenbericht (hier sind auch die Makros abgespeichert) die Makros automatisch starten lassen, so dass mit dem Öffnen der Datei bereits die Useform (hier "Monatsabfrage") erscheint. Geht das bzw. wie sieht die schnelle Lösung aus ? Über Deine / Eure Hilfe freue ich mich sehr....
Ilka
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige