Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1112to1116
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
Inhaltsverzeichnis

Ordnernamen auslesen mit VBA

Ordnernamen auslesen mit VBA
Franz
Hallo Fachleute,
ich hab gestern mit Eurer Hilfe einen Code zum Auflisten von Dateien im aktuellen Ordner verfeinert:
Sub auflisten()
Dim iCounter As Integer
Dim sPath As String
sPath = ThisWorkbook.Path
Columns("B:B").ClearContents
With Application.FileSearch
.NewSearch
'.FileType = msoFileTypeAllFiles
.Filename = "*.doc"
.LookIn = sPath
'.SearchSubFolders=True
.Execute
If .FoundFiles.Count = 0 Then
Beep
MsgBox "Keine Dateien gefunden!"
Else
For iCounter = 1 To .FoundFiles.Count
Cells(iCounter + 3, 2) = Mid(.FoundFiles(iCounter), InStrRev(.FoundFiles(iCounter), "\") _
_
+ 1, InStrRev(Mid(.FoundFiles(iCounter), InStrRev(.FoundFiles(iCounter), "\") + 1), " _
.") - 1)
Next iCounter
End If
End With
End Sub

Nun suche ich noch nach der Möglichkeit, den Namen des aktuellen Ordners - und wenn möglich auch des darüberliegenden Ordners - auszulesen und in eine Zelle zu schreiben. Darf ich Euch nochmal um Eure Hilfe bitten?
Danke schonmal und Grüße
Franz

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
mal ein Versuch ...
28.10.2009 09:40:03
Matthias
Hallo
meinst Du so?
Userbild
dann hinter End With aber noch vor End Sub ;o)
Cells(iCounter + 4, 1) = "ThisWorkbook.FullName"
Cells(iCounter + 4, 2) = ThisWorkbook.FullName
Cells(iCounter + 5, 1) = "ThisWorkbook.Name"
Cells(iCounter + 5, 2) = ThisWorkbook.Name
Cells(iCounter + 6, 1).Value = "Ordner"
Cells(iCounter + 6, 2).FormulaLocal = "=WECHSELN(B9;B10;"""")"
Cells(iCounter + 6, 2).Value = Cells(iCounter + 6, 2).Value
Ich bin aber sicher das geht noch eleganter.
Gruß Matthias
Anzeige
AW: mal ein Versuch ...
28.10.2009 10:01:21
Franz
Hallo Matthias,
ist leider nicht ganz das. Workbook.Name bzw. Workbook.Fullname geben ja wieder den Namen der Datei an - mal mit, und mal ohne Pfad. Aber nicht allein den Namen des beinhaltenden Ordners bzw. den Namen des darüberliegenden Ordners allein. Immer nur zusammen mit dem gesamten Pfad.
Vielleicht hab ich das bei meiner ersten Frage nicht klar genug gesagt (sorry!!): ich suche nach einer Möglichkeit, den Namen des aktuellen sowie des darüberliegenden Ordners ALLEIN, getrennt von der kompletten Pfadangabe, auszulesen.
Grüße
Franz
noch eine Korrektur von mir: Excel-Formel möglich
28.10.2009 10:27:41
mir:
....... nachdem ich mich bissl damit beschäftige, hab ich neue Ideen - und die ergibt eine neue Möglichkeit: es muss nicht per VBA gelöst werden, es dürften auch Excel-Formeln sein, wenn es die gibt für das Problem
Danke im Voraus und Grüße
Franz
Anzeige
AW: Ordnernamen auslesen mit VBA
28.10.2009 09:40:10
frigo
Hi Franz,
die gefundene Datei enthält bereits den Dateinamen inkl. Pfad, nur dass Du in der for...next iCounter Schleife aktuell den Pfad weglöschst:
Cells(iCounter + 3, 2) = Mid(.FoundFiles(iCounter), InStrRev(.FoundFiles(iCounter), "\") _
_
+ 1, InStrRev(Mid(.FoundFiles(iCounter), InStrRev(.FoundFiles(iCounter), "\") + 1), " _
.") - 1)
In der Zeile drunter kannst Du also das also ähnlich nocheinmal nutzen (ersetze SPALTE mit der Spaltennr, in der du den Pfad haben möchtest):
Cells(iCounter + 3, SPALTE) = Left(.FoundFiles(iCounter), InStrRev(.FoundFiles(iCounter), "\"))
Gruß,
frigo
Anzeige
AW: Ordnernamen auslesen mit VBA
28.10.2009 09:47:51
Franz
Hallo Frigo,
danke, ist ne gute Lösung. Allerdings wird damit der gesamte Pfad ab C:\..... angezeigt, und nicht nur der einzelne Ordnername.
Danke erstmal
Franz
AW: Ordnernamen auslesen mit VBA
28.10.2009 11:04:28
frigo
Hi Franz,
nichts leichter als das:
statt Cells(iCounter + 3, SPALTE) = Left(.FoundFiles(iCounter), InStrRev(.FoundFiles(iCounter), "\"))
folgendes
strPfad = Left(.FoundFiles(iCounter), InStrRev(.FoundFiles(iCounter), "\") - 1)
strPfadUeberordner = Left(strPfad, InStrRev(strPfad, "\") - 1)
strDirekterOrdner = Mid(strPfad, InStrRev(strPfad, "\") + 1, Len(strPfad) - InStrRev(strPfad, "\"))
strUeberOrdner = Mid(strPfadUeberordner, InStrRev(strPfadUeberordner, "\") + 1, Len(strPfadUeberordner) - InStrRev(strPfadUeberordner, "\"))
cells(iCounter + 3, SPALTE) = strDirekterOrdner
cells(iCounter + 3, SPALTE2) = strUeberOrdner
Gruß,
frigo
Anzeige
AW: Ordnernamen auslesen mit VBA
28.10.2009 11:21:06
Franz
Hallo Frigo,
genial, es funktioniert genau so wie ich es wollte - vielen Dank. Und wenn Du sagst "nichts leichter als das", dann werd ich mich mal reindenken, vielleicht kapier ich's ja...... :-))
Nochmal danke und Grüße
Franz

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige