Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
284to288
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
284to288
284to288
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeichen ausschneiden

Zeichen ausschneiden
25.07.2003 18:12:53
dietrich
Hallo zusammen,
ich durchsuche ein Verzeichnis nach Excel-Tabellen. Mit der unten gezeigten Methode listet Excel mir den vollständigen Pfad und Dateinahmen zusammen auf. Ich bräuchte aber den Dateinamen auch nochmal getrennt, d.h. ich suche nun die Möglichkeit aus einem Ergebnis:
"h:\verzeihnis1\verzeichnis2\verzeichnis3\datei.xls"
nur "datei.xls" herauszufiltern. Gibt's vielleicht sogar eine Methode (?) bei .foundfiles(i)? Etwas wie .foundfiles.name(i)?
Folgenden Code benutze ich dazu:
Set fs = Application.FileSearch
lfdnr = 1
With fs
.LookIn = "H:\0_Aktuelles\SLA-Exceldaten\SLA-Exceldaten\SLA-Messdaten\"
.SearchSubFolders = True
.FileType = msoFileTypeExcelWorkbooks
If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
Workbooks(Datei).Worksheets("Dateien").Range("A" & lfdnr).Value = .FoundFiles(i)
lfdnr = lfdnr + 1
Next i
End If
Kann mir da jemand helfen?
Grüße
Dietrich

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeichen ausschneiden
25.07.2003 18:25:23
"h:\verzeihnis1\verzeichnis2\verzeichnis3\datei.xls" muss bei dir natürlich .FoundFiles(i) stehen.
Hallo Dietrich,
Beispiel:

Option Explicit
Public Sub test()
Dim FSyObjekt As Object, FiObjekt As Object
Set FSyObjekt = CreateObject("Scripting.FileSystemObject")
Set FiObjekt = FSyObjekt.GetFile("h:\verzeihnis1\verzeichnis2\verzeichnis3\datei.xls")
MsgBox FiObjekt.Name
End Sub


Code eingefügt mit: Excel Code Jeanie
Gruß
Nepumuk

Anzeige
AW: Zeichen ausschneiden
25.07.2003 18:45:12
dietrich
Danke!
klappt prima.
äehm. hüstel. Ich hätt da jetzt ein neues Problemchen bekommen...
Mit GetObject hole ich mir der Reihe nach die Dateien, von denen ich Werte kopieren muss. Die Kopiermethode ist wie folgt:
Set fs = Application.FileSearch
lfdnr = 1
With fs
.LookIn = "H:\0_Aktuelles\SLA-Exceldaten\SLA-Exceldaten\SLA-Messdaten\"
.SearchSubFolders = True
.FileType = msoFileTypeExcelWorkbooks
x = fs.Execute
If .Execute > 0 Then
For i = 1 To .FoundFiles.Count

' Jetzt die gefundenen Dateien der Reihe nach aufnehmen
Set FSyObjekt = CreateObject("Scripting.FileSystemObject")
Set FiObjekt = FSyObjekt.GetFile(.FoundFiles(i))
Basisdatei = FiObjekt.Name

' Variablen mit Werten füllen
SLA_Bereich = Workbooks(Basisdatei).Worksheets("AllMess_AllAg").Range("b2").Value
(Hier geht's dann weiter ....)
-------------------------------
Der letzte Code (Wertzuweisung zu SLA_Bereich) schlägt fehl. Excel sagt mir der Index wäre ausserhalb des Bereiches. Ich kann anscheindend das Objekt so nicht verwenden.
Hast Du dafür vielleicht auch noch einen Tip? ;-)
Danke
Dietrich

Anzeige
AW: Zeichen ausschneiden
25.07.2003 19:20:05
Nepumuk
Hallo Dietrich,
wo ist der Befehl GetObject in deinem Code? Unsichtbar?
Gruß
Nepumuk

AW: Zeichen ausschneiden
25.07.2003 19:46:17
dietrich
Autsch,
Du hast recht (ist beim einfügen von Deinem Code "verloren" gegangen)
Ich versuch's dann nochmal ;-)
Gruß und Dank
Dietrich

AW: Zeichen ausschneiden
25.07.2003 20:06:35
dietrich
Hm,
mein Versuch, Dein
Set FiObjekt = FSyObjekt.GetFile(.FoundFiles(i))
einfach durch
Set FiObjekt = FSyObjekt.GetObject(.FoundFiles(i))
zu ersetzen, um dann mit
Basisdatei = FiObjekt
und
SLA_Bereich = Workbooks(Basisdatei).Worksheets("AllMess_AllAg").Range("b2").Value
einen Wert aus der Datei herausziehen zu können hat leider auch nicht geklappt. Irgendwie hab ich die Objekte hier wohl nicht verstanden...
Gruß
Dietrich

Anzeige
AW: Zeichen ausschneiden
25.07.2003 20:34:01
Nepumuk
Hallo Dietrich,
das FileObject öffnet dir nicht die Datei. Das ganze sollte so funktionieren:

Option Explicit
Public Sub test()
Dim FSyObjekt As Object, FiObjekt As Object, index As Long
Set FSyObjekt = CreateObject("Scripting.FileSystemObject")
With Application.FileSearch
.LookIn = "H:\0_Aktuelles\SLA-Exceldaten\SLA-Exceldaten\SLA-Messdaten\"
.SearchSubFolders = True
.FileType = msoFileTypeExcelWorkbooks
If .Execute > 0 Then
For index = 1 To .FoundFiles.Count
Workbooks(Datei).Worksheets("Dateien").Cells(index, 1).Value = .FoundFiles(index)
Set FiObjekt = FSyObjekt.GetFile(.FoundFiles(index))
Basisdatei = FiObjekt.Name
GetObject .FoundFiles(index)
SLA_Bereich = Workbooks(Basisdatei).Worksheets("AllMess_AllAg").Range("b2").Value
'
'                hier dein Code den ich nicht kenne
'
Workbooks(Basisdatei).Close
Next
End If
End With
End Sub


Code eingefügt mit: Excel Code Jeanie
Gruß
Nepumuk

Anzeige
AW: Zeichen ausschneiden
25.07.2003 20:44:14
dietrich
Hi Nepumuk,
Daran hab ich jetzt wohl etwas länger zu knabbern, um es zu verstehen ;-))
Ich melde mich, wenn es klappt!
Habe Vielen Dank für Deine Hilfe!
Darauf wäre alleine nie gekommen...
Dietrich

AW: Zeichen ausschneiden
25.07.2003 23:32:03
dietrich
Hallo Nepomuk,
es funktioniert einwandfrei! Freu!!!
Das mit den Indices ist noch etwas verwickelt und mit den beiden FI und FY-Objekten erst recht (seufz!) aber echt spannend.
Das ganze soll dem Zweck dienen, Messwerte Vorgabewerten gegenüberzustellen und die Ergebnisse wiederum gegen Toleranzrahmen je Messtyp abzugleichen. Das Einhalten oder Überschreiten hat Folgen in Form von unterschiedlichen Beurteilungen der Qualität. (Eigentlich ist das eine Aufgabe für eine Datenbank...)
Hab Vielen Dank für die Mühe, die Du Dir gemacht hast ;-)
Ich bin jetzt ein ganzes Stück weitergekommen!
Gruß und schönes Wochenende
Dietrich

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige