online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon snailhouse vom 06.08.2020, 00:10 Options

Lösung

Excel VBA: FileSearch - Problem

Hallo zusammen,

ich habe ein Problem, das vmtl. im Zusammenhang mit FileSearch auftritt.

Hintergrund: Ich durchlaufe mit FileSearch nacheinander ein paar Ordner, deren Pfad ich aus einer separaten Tabelle hole und suche dabei nach .xls-Tabellen, die bestimmte Voraussetzungen erfüllen.
Diese Dateien kopiere ich dann in einen gemeinsamen Ordner.
Wenn Dateien mit gleichem Namen auftreten, benenne ich die
ältere der Dateien um in "_Alt_Datum_...Dateiname.

In der fett markierten Zeile bekomme ich einen Laufzeitfehler
Zitat:

Laufzeitfehler '-2147467259 (80004005)':
Automatisierungsfehler
Unbeannter Fehler


Interessant ist auch, dass wenn ich die xls-Datei schließe, in der das Makro steckt, die Nachfrage kommt, ob die Änderungen in den Dateien, die das Makro zuvor "gelesen" hat, gespeichert werden sollen. (?!)

Das sind die meiner Meinung nach wichtigsten Zeilen des Codes:

With Application.FileSearch
    .NewSearch              '--> auf Standardeinstellungen setzen
    .LookIn = strPfadnameAktuell
    .SearchSubFolders = True
    .Filename = oWSBearbeitung.Cells(25, 2)
    .MatchTextExactly = True
    .FileType = msoFileTypeAllFiles
    
If .Execute() > 0 Then 
.
.
.
For lDateiZaehler = 1 To .FoundFiles.Count
VDatumAktuelleDatei = FileDateTime(.FoundFiles(lDateiZaehler))
[b]
Set oWBExtern = GetObject(.FoundFiles(lDateiZaehler))
[/b]

In der obenstehenden Zeile tritt wie gesagt der Fehler auf. Ich definiere hier die Datei als oWBExtern und lese im Anschluß daraus den Dateinamen und den Pfad (über .name und .path). Diese Info verwende ich dann anschließend für die Dateioperationen.

' bestehende Datei umbenennen
Name strDateiAlt As strDateiNeu


Hat jemand eine Idee, wo der Fehler liegen könnte bzw. vielleicht gibt es ja eine einfachere Lösung, mit der man das Problem "umschiffen" kann?

Für Eure Hilfe im voraus vielen Dank!


Antwort schreiben

Antwort 1 von nighty vom 06.08.2020, 08:20 OptionsLösung

Lösung
hi snailhouse

2 tips

gruss nighty

name einer datei
Dir(.FoundFiles(lDateiZaehler ))


pfad der datei ist in der variable
strPfadnameAktuell

Antwort 2 von snailhouse vom 07.08.2020, 22:49 Options

Hallo nighty,

vielen Dank für den Tipp.
Das hat mir ein Stück weitergeholfen, allerdings bekomme ich über strgPfadnameAktuell nur den Grundpfad, in meiner Suche berücksichtige ich aber auch Unterordner.

Nun habe ich es folgendermaßen gelöst:


            strPfadAktuell = Application.FileSearch.FoundFiles.Item(lDateiZaehler)  ' Pfad mit Dateiname
            strDateiNameAktuell = Dir(.FoundFiles(lDateiZaehler))                   ' Dateiname
            strPfadAktuell = Left(strPfadAktuell, (Len(strPfadAktuell) - Len(strDateiNameAktuell))) ' Dateiname aus Pfad herausschneiden


d.h. ich hole über .item den Dateiname mit Pfad und schneide anschließend den Dateinamen aus dem string raus.

Due Kopierfunktion habe ich folgendermaßen gelöst (dann tritt auch nicht das Problem auf, dass die Dateien irgendwo im Hintergrund, aber nicht sichtbar , geöffnet werden.
Mit FileCopy traten ebenfalls Probleme auf..:


' Benötigte API-Deklaration für Kopierfunktion
Private Declare Function CopyFile Lib "kernel32" _
  Alias "CopyFileA" ( _
  ByVal lpExistingFileName As String, _
  ByVal lpNewFileName As String, _
  ByVal bFailIfExists As Long) As Long
.
.
.
' Neue Kopierfunktion "DateiKopieren", Aufruf wie in VBA FileCopy
Public Function DateiKopieren(ByVal sSourceFile As String, _
  ByVal sDestFile As String, _
  Optional ByVal bAlwaysOverwrite As Boolean = True) As Boolean
 
  Dim nResult As Long
 
  nResult = CopyFile(sSourceFile, sDestFile, CLng(Abs(Not bAlwaysOverwrite)))
  DateiKopieren = (nResult <> 0)
End Function
.
.
.
public sub DasEigentilicheMakro
.
DateiKopieren strPfadAktuell & strDateiNameAktuell, strAusgabePfad & strDateiNameAktuell
.
end sub


Trotzdem nochmals Danke für die Hilfe!

Ähnliche Themen

Excel schließen (VBA)
Jugo  15.03.2007 - 312 Hits - 1 Antwort

Excel VBA: Buchtipps ?
Rolf___  14.08.2007 - 24 Hits - 1 Antwort

VBA mit Excel - Problem bei Schleife
schmidt206  01.12.2007 - 68 Hits - 4 Antworten

Excel VBA
drphilgonzo  17.01.2008 - 34 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026