Hi,
hallo allerseits. Bin total neu in der VB-Programmierung und sollte mir für einen Freund mal Problem anschauen warum beim importieren seiner Excel Datei, das Makro schreit "Das Verzeichnis existiert nicht" oder "Keine Daten im Verzeichnis gefunden!".
Beim debuggen habe ich gemerkt der Funktion irgendetwas nicht an der Variable strPath nicht schmeckt. Das "lustige" ist aber, das alles vorher auf ein externes Medium mit dem Laufwerksbuchstaben z: gespeichert wurde und es lief alles ohne Probleme. Nur wollten wir es mal auf der Festplatte speichern und es klappt nicht mehr. Hier ein Codeausschnitt:
Nun ich bin verwirrt, weil ich mir dachte, ich ändere einfach den Dateipfad String und fertig. Von wegen ! Nun debugge und suche ich schon eine Weile, komme aber als total VB Neuling nicht so recht weiter!
Wisst ihr Rat warum es mir in diese beiden "Error" Else-Fälle springt und wie ich das beheben könnte ? Der Pfad stimmt auf jeden Fall denke ich.
Lieben Gruß und dank im voraus.
Bruno
hallo allerseits. Bin total neu in der VB-Programmierung und sollte mir für einen Freund mal Problem anschauen warum beim importieren seiner Excel Datei, das Makro schreit "Das Verzeichnis existiert nicht" oder "Keine Daten im Verzeichnis gefunden!".
Beim debuggen habe ich gemerkt der Funktion irgendetwas nicht an der Variable strPath nicht schmeckt. Das "lustige" ist aber, das alles vorher auf ein externes Medium mit dem Laufwerksbuchstaben z: gespeichert wurde und es lief alles ohne Probleme. Nur wollten wir es mal auf der Festplatte speichern und es klappt nicht mehr. Hier ein Codeausschnitt:
Code:
Option Explicit
Public Function GetXLFiles(ByRef astrXLFiles() As String, _
ByVal strLookIn As String, Optional fSearchSubfolders _
As Boolean = False, Optional fname As String) As Boolean
Dim nFilesCnt As Long
Dim nFile As Long
Dim nCounter As Long
Dim strFileName As String
On Error Resume Next
With Application.FileSearch
.NewSearch
.LookIn = strLookIn
.SearchSubFolders = fSearchSubfolders
.filename = fname
.FileType = msoFileTypeExcelWorkbooks
If .Execute(SortBy:=msoSortByFileName, SortOrder:= _
msoSortOrderAscending, AlwaysAccurate:=True) > 0 Then
nFilesCnt = .FoundFiles.Count
ReDim astrXLFiles(0 To nFilesCnt - 1)
nCounter = -1
For nFile = 1 To nFilesCnt
strFileName = .FoundFiles(nFile)
If Len(Dir$(strFileName)) > 0 Then
nCounter = nCounter + 1
astrXLFiles(nCounter) = strFileName
End If
Next
If nCounter > -1 Then
ReDim Preserve astrXLFiles(0 To nCounter)
GetXLFiles = True
End If
End If
End With
On Error GoTo 0
End Function
Public Sub Findfile()
Dim strPath As String
Dim astrXLFiles() As String
Dim nFile As Long
Dim outstring As String
Dim i As Long
strPath = "c:\"
Sheets("Prüfen & Nacharbeiten").Select
For i = 12 To 65536
If Cells(i, 2) = "" Then
MsgBox "Importvorgang abgeschlossen", vbInformation + vbOKOnly, "Datenimport"
Exit For
End If
If Cells(i, 1) = "" Then
MsgBox "hier die strPath: " & vbCrLf & strPath & vbCrLf & " und vbDirectory:" & vbDirectory
If Len(Dir$(strPath, vbDirectory)) > 0 Then
If GetXLFiles(astrXLFiles(), strPath, True, "Ca" & Format(Cells(i, 2), "0000000")) Then
If UBound(astrXLFiles) > 0 Then
outstring = ""
For nFile = 0 To UBound(astrXLFiles)
outstring = outstring & astrXLFiles(nFile) & vbCrLf
Next
MsgBox "Prüfprotokoll wurde " & UBound(astrXLFiles) + 1 & " mal gefunden!" & vbCrLf & _
vbCrLf & outstring & vbCrLf & _
"Bitte überprüfen Sie die Protokolle!", vbCritical + vbOKOnly, "Datenimport"
Exit Sub
End If
Import astrXLFiles(0), i, Format(Cells(i, 2), "0000000")
Erase astrXLFiles
Else
MsgBox "Keine Daten im Verzeichnis " & _
vbCrLf & strPath & vbCrLf & "gefunden!", _
vbInformation, "Datemimport"
End If
Else
MsgBox "Das Verzeichnis " & vbCrLf & strPath & vbCrLf & _
"existiert nicht!", vbInformation, "Datenimport"
End If
End If
Next i
End Sub
Public Sub Import(fname As String, row As Long, serial As Long)
Dim currentfname As String
Dim Importfname As String
......
End Function
Wisst ihr Rat warum es mir in diese beiden "Error" Else-Fälle springt und wie ich das beheben könnte ? Der Pfad stimmt auf jeden Fall denke ich.
Lieben Gruß und dank im voraus.
Bruno