AW: VBA Fehlermeldung
10.02.2015 11:06:11
fcs
Hallo Mario,
der Fehlerwert wird angezeigt, wenn im Pfad in dem die aktiven Datei gespeichert ist kein Unterverzeichnis "\Betriebsjournal\" vorkommt. Dieser Fehler pflanzt sich dann in andere Formeln fort.
Ein weiteres Problem: Die verwendeten Formel aktualisieren sich nicht automatisch sondern nur bei einer Neuberechnung
Da die Zellen Q4, R4, S4 und T4 im Makro ausgewertet werden gibt es dort auch Fehler.
Der 1. Schritt zur besseren Performance:
In der Activate-Prozedur wird eine Neuberechnung eingebaut und die 4 Zellen werden geprüft.
Private Sub UserForm_Activate()
'Angepasst auf Ausgabe 3.0
'Beim Aufruf der Maske Datumsfeld mit aktueller Systemzeit vorbelegen
TextBox1.Value = Date
'...und die Combobox mit den Vorgabewerten füllen,
' die in Tabellenblatt "Kalendarium" in Spalte A (1) ab Zeile 2 stehen
With ThisWorkbook.Sheets("Kalendarium")
.Calculate
If IsError(.Range("Q4")) Or IsError(.Range("R4")) _
Or IsError(.Range("S4")) Or IsError(.Range("T4")) Then
MsgBox "Es gibt Probleme mit den Formelergebnissen in Zellen Q4:T4" & vbLf _
& "Q4: " & .Range("Q4").Text & vbLf _
& "R4: " & .Range("R4").Text & vbLf _
& "R4: " & .Range("S4").Text & vbLf _
& "R4: " & .Range("T4").Text & vbLf _
& "Bitte Userform schliessen und Datei-Pfad ""...\Betriebsjournal\"" " _
& "und ggf. Dateiname prüfen!", _
vbInformation + vbOKOnly, "Diese Datei = " & ActiveWorkbook.FullName
End If
Transporteur.RowSource = Range(.Cells(2, 16), _
.Cells(.Cells(Rows.Count, 16).End(xlUp).Row, 16)).Address(External:=True)
'...und als Vorbelegung das erste Produkt wählen
Transporteur.Value = .Cells(2, 16)
ComboBox1.RowSource = Range(.Cells(2, 12), _
.Cells(.Cells(Rows.Count, 12).End(xlUp).Row, 12)).Address(External:=True)
'...und als Vorbelegung das erste Produkt wählen
ComboBox1.Value = .Cells(2, 12)
ComboBox2.RowSource = Range(.Cells(2, 13), _
.Cells(.Cells(Rows.Count, 13).End(xlUp).Row, 13)).Address(External:=True)
'...und als Vorbelegung das erste Produkt wählen
ComboBox2.Value = .Cells(2, 13)
ComboBox3.RowSource = Range(.Cells(2, 14), _
.Cells(.Cells(Rows.Count, 14).End(xlUp).Row, 14)).Address(External:=True)
'...und als Vorbelegung das erste Produkt wählen
ComboBox3.Value = .Cells(2, 14)
End With
End Sub
Für die zu öffnende Datei aus dem Archiv-Verzeichnis solltest du ggf. auch eine Prüfung mit Dir (Pfad+Datei) machen, ob die Datei vorhandne ist.
Gruß
Franz