Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
904to908
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
904to908
904to908
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Dateinamen aus lesen

Dateinamen aus lesen
14.09.2007 17:15:00
Peter
Hallo wertes Forum
habe mal wieder ein Problem
Mit Hilfe eines Makro werden aus mehreren Dateien in einem ordner(gleiche Dateistruktur) Daten in eine Datei eingelesen.
Mit Hilfe der Funktion wird der Pfad bestimmt.
jetzt mein problem :
Ich möchte gern das der Dateiname der Datei, die geöffnet wird in Spalte A ab Zeile 4 mit in die "Verdichtungsdatei" eingelesen wird.
Denke keine leichte Aufgabe, aber das Forum hat mir schon sehr viel geholfen Dank im Voraus
Gruß Peter
Hier mein Code mit Funktion:

Sub auslesen()
Dim wbMappe As Excel.Workbook
Dim strMappe As String
Dim strPfad As String
Dim loDateien As Long
Dim loZeile As Long
Dim boTabelle As Boolean
Dim inTabellen As Integer
loZeile = 4
strPfad = Ordner_Auswahl
With Application.FileSearch
.NewSearch
.LookIn = strPfad
.SearchSubFolders = False
.Filename = "*.*"
If .Execute() > 0 Then
For loDateien = 1 To .FoundFiles.Count
strMappe = Mid(.FoundFiles(loDateien), Len(strPfad) + 2)
Set wbMappe = GetObject(strPfad & "\" & strMappe)
With wbMappe
For inTabellen = 1 To .Worksheets.Count
If .Worksheets(inTabellen).Name = "Verdichtung" Then
boTabelle = True
Exit For
End If
Next inTabellen
If boTabelle = True Then
.Worksheets(inTabellen).Range("A4:BZ4").Copy
ThisWorkbook.Worksheets("Tabelle1").Cells(loZeile, 2).PasteSpecial Paste:=xlValues
boTabelle = False
End If
.Close
End With
loZeile = loZeile + 1
Next loDateien
End If
End With
End Sub



Function Ordner_Auswahl()
Const WINDOW_HANDLE = 0
Const FOLDERS_ONLY As Long = 1
Const DEFPATH As Variant = ""       ' z.B. Vorgabepfad "D:\" angeben
Dim Wscript As Application
Dim objShell As Object
Dim objFolder As Object
Dim objFolderItem As Object
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(WINDOW_HANDLE, "Wählen Sie einen Ordner aus: ", _
FOLDERS_ONLY, DEFPATH)
'Set objFolder = objShell.BrowseForFolder(0&, "Ordner wählen oder anlegen...", FOLDERS_ONLY, _
DEFPATH)
If objFolder Is Nothing Then Exit Function
Set objFolderItem = objFolder.Self
Ordner_Auswahl = objFolderItem.Path
End Function


=TEIL(ZELLE("Dateiname";A1);FINDEN("[";ZELLE("Dateiname";A1))+1;FINDEN("]";ZELLE("Dateiname";A1)) -FINDEN("[";ZELLE("Dateiname";A1))-1)

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateinamen aus lesen
15.09.2007 00:04:00
Peter
Hallo hier eine Teillösung zu meinem Problem
mit der Bitte um Hilfe
Diese makro habe ich bei der Recherche gefunden und ist genau das richtige.
leider reichen meine Fähigkeiten nicht ganz aus diese makro in mein erstes makro einzubinden.
hier das makro und die Funktion
Dim arr As Variant
Dim sPath As String, sPattern As String
Dim sFile As String

Sub Einlesen()
sPath = "d:\projekte\2003\montage\elektro"
sPattern = "*.xls"
arr = arrAll(sPath, sPattern)
For iCounter = 1 To UBound(arr)
Cells(iCounter, 1) = sPath & arr(iCounter)
Next iCounter
End Sub



Function arrAll(sPath As String, sPattern As String) As Variant
Dim arr()
If Right(sPath, 1)  "\" Then sPath = sPath & "\"
sFile = Dir(sPath & sPattern)
Do While sFile  ""
iCounter = iCounter + 1
ReDim Preserve arr(1 To iCounter)
arr(iCounter) = sFile
sFile = Dir()
Loop
arrAll = arr
End Function


Anzeige
AW: Dateinamen aus lesen
15.09.2007 07:17:00
Christian
Hallo Peter,
du hast den Dateinamen doch schon - nämlich "strMappe".
Oder auch den Kompletten Pfad mit zB. "wbMappe.FullName".
Dein Code könnte also zB wie folgt aussehen:

If boTabelle = True Then
ThisWorkbook.Worksheets("Tabelle1").Cells(loZeile, 1) = wbMappe.FullName
.Worksheets(inTabellen).Range("A4:BZ4").Copy
ThisWorkbook.Worksheets("Tabelle1").Cells(loZeile, 2).PasteSpecial Paste:=xlValues
boTabelle = False
End If

Gruß
Christian

AW: Dateinamen aus lesen
15.09.2007 14:45:34
Peter
Danke
das war die Lösung
Gruß Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige