Code Einlesen gezielt unterbrechen
31.01.2010 11:55:07
Bernd
Hallo, liebe Excel-Gemeinde,
ich habe nachstehenden Code über einen link dieses Excel-Forums erhalten. Mein Problem ist, dass ich die Ausführung des Einlesens nicht abbrechen kann. Wenn ich auf ESC drücke, kommt Meldung "#Bezug" und abschließend der Msg.-Hinweis "Projekte-Verrechnungen' importiert". Wäre sehr dankbar für einen Tipp.
Public Function GetDataClosedWB(SourcePath As String, _
SourceFile As String, _
sourceSheet As String, _
SourceRange As String, _
TargetRange As Range) As Boolean
'Holt einen Bereich aus einer _geschlossenen_ Arbeitsmappe
'Nur in VBA zu verwenden; nicht aus einer Tabellenzelle heraus
'© t.ramel@mvps.org
Dim strQuelle As String
Dim Zeilen As Long
Dim Spalten As Byte
Dim i As Integer
Dim x As Integer
On Error GoTo InvalidInput
strQuelle = "'" & SourcePath & "[" & SourceFile & "]" & _
sourceSheet & "'!" & _
Range(SourceRange).Cells(3, 1).Address(0, 0) 'Cells(Zeile,Spalte)
Zeilen = Range(SourceRange).Rows.Count
Spalten = Range(SourceRange).Columns.Count
With TargetRange.Cells(1, 1).Resize(Zeilen, Spalten)
.Formula = "=IF(" & strQuelle & "="""",""""," & strQuelle & ")"
.Value = .Value
End With
'evt. übernommene Projektkosten_Summe_wieder eleminieren
x = Worksheets("Projektkosten - Verrechnungen").Cells(1, 1).Select
For i = 1 To 90
If Cells(i, 1) = ("Projektkosten gesamt") Then Cells(i, 4).Value = 0
Next i
GetDataClosedWB = True
Exit Function
InvalidInput:
MsgBox "Die Quelldatei oder der Quellbereich ist ungültig!", _
vbExclamation, "Get data from closed Workbook"
GetDataClosedWB = False
End Function
Public Sub HoleDaten_Projektkosten_Verrechnungen()
Dim Pfad As String
Dim Dateiname As String
Dim Blatt As String
Pfad = "D:\a_temp\"
Dateiname = "02 Leerblatt Forecast V 2.0"
Blatt = "Projektkosten - Verrechnungen"
If GetDataClosedWB(Pfad, _
Dateiname, _
Blatt, _
"A1:F68", _
Worksheets("Projektkosten - Verrechnungen").Range("A3")) Then
MsgBox "Daten 'Projekte-Verrechnungen' importiert"
End If
'Datumsformat sicherstellen nach Import
Range("E3:F91").Select
Selection.NumberFormat = "[$-407]mmm/ yy;@"
End Sub
Danke, Bernd