VBA fehler

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
InputBox MsgBox
Bild

Betrifft: VBA fehler von: ludowic
Geschrieben am: 27.02.2005 21:19:33

Hallo,
ich hab folgendes Makro erstellt und bekomm das mit der Fehlerbehandlung nicht hin.
und zwar durch Abruch durch Benutzer, oder wenn keine Eingabe gemacht wurde, oder die Datei schon existiert.
Für Hilfe wäre ich Dankbar



Sub Produktion_Tagesplan() ' Productionplanplan anlegen für den Tag 
ChDrive "z" 'Laufweksauswahl 
ChDir "z:\Excel\Production" 'Verzeichnisauswahl 
Workbooks.Open "Production.xls" 
Workbooks("Production.xls").Activate 
Dim Jahr As String 
Jahr = Application.InputBox("Monat und Tag eingeben z.B. 0102_ 01 für den Monat 02 für den Tag") 
Workbooks("Production.xls").Activate 
ActiveWorkbook.SaveAs Filename:="Production-" & (Jahr) & ".xls" 
End 

Sub 
Bild


Betrifft: AW: VBA fehler von: Luc
Geschrieben am: 28.02.2005 11:48:56

Hallo Ludowic,
habe jetzt keine Zeit, deshalb erstmal nur der Teil für den InputBox-Abbruch. Dann ist Jahr="". Danach musst du fragen, z.B.:
if Jahr="" then exit sub
Du kannst auch einen default-Wert in der InputBox angeben. Der wird dann immer angezeigt. Wenn du ihn auf Jahr legst und Jahr als static-Variable deklarierst (static statt dim) bleibt der Wert von Jahr zwischen den Aufrufen der sub erhalten, d.h. das InputBox-Default zeigt immer deine letzte Eingabe, die du, wenn sie weiter gültig ist, nur bestätigen, nicht neu eingeben musst.
Gruß Luc


Bild


Betrifft: AW: VBA fehler - Pardon - teiloffen - owT von: Luc
Geschrieben am: 28.02.2005 11:51:24




Bild


Betrifft: AW: VBA fehler von: Roland Hochhäuser
Geschrieben am: 01.03.2005 11:27:28

Hallo ludowic,

hier mal ein Ansatz. Das kann man bis zum Exczess treiben, aber die häufigsten Fälle müssten berücksichtigt sein:

Sub Produktion_Tagesplan()
Dim Jahr As String
On Error GoTo errorhandler
ChDrive "z"
ChDir "z:\Excel\Production"
Workbooks.Open "Production.xls"
Jahr = Application.InputBox("Monat und Tag eingeben z.B." & vbLf & "0102_ 01 für den Monat 02 für den Tag", "Dateinamen eingeben", Format(Date, "ddmm_yy"))
If Jahr = vbNullString Or Jahr = "Falsch" Then
    MsgBox "Eine namenlose Datei kann nicht gespeichert werden", 0, "Knapp daneben  . . . "
    ActiveWorkbook.Close (False)
End If
If Dir("z:\Excel\Production" & "\" & "Production-" & Jahr & ".xls") <> "" Then
    If MsgBox("Die Datei " & vbLf & Jahr & vbLf & "existiert bereits. Soll sie überschrieben werden?", 4) = vbNo Then
        ActiveWorkbook.Close (False)
        Exit Sub
    End If
End If
MsgBox Jahr / 2
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="Production-" & (Jahr) & ".xls"
Application.DisplayAlerts = True
Exit Sub
errorhandler:
If Err.Number = 68 Then
MsgBox "Das Netzlaufwerk steht nicht zur Verfügung." & vbLf & "Benachrichtigen Sie ihren Administrator.", vbExclamation, "Irgendwann musste es ja so kommen!"
ElseIf Err.Number = 1004 Then
MsgBox "Der Datenträger kann nicht beschrieben werden." & vbLf & "Bitte überprüfen.", vbExclamation, "Na toll . . . "
Else
MsgBox "Unbekannter Fehler im Modul Produktion_Tagesplan", vbCritical, "Das sieht böse aus . . . "
End If
End Sub

Gruß aus dem a....kalten Berlin
Roland Hochhäuser


Bild


Betrifft: AW: VBA fehler von: Roland Hochhäuser
Geschrieben am: 01.03.2005 11:30:35

Sorry,
die Zeile MsgBox Jahr / 2 ist natürlich Quatsch und muss raus.
Gruß Roland


 Bild

Beiträge aus den Excel-Beispielen zum Thema "VBA fehler"