Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1020to1024
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

Text trennen

Text trennen
12.11.2008 14:31:25
Helmut
Hallo Excel-Profis
In einer Excel-Tabelle bekomme ich eine Auflistung mit den Inhalten von verschiedenen Ordnern bzw. Unterordner nach folgendem Beispiel:
C:\Daten\Privat\Verein.xls
C:\Daten\Finanzen\Haushaltsbuch.xls
C:\Daten\Brief an xyz.doc
Nun suche ich eine Möglichkeit, mit VBA die Namen der Dateien inkl. der Erweiterungen (.xls, .doc, .txt ect.) herauszuziehen und in eine Tabelle schreiben zu lassen.
Es handelt sich also um Inhalte nach dem letzten Backslash (die Möglichkeit nach dem 1. Backslash kann ich mit VBA schon lösen !).
Eine ähnliche Aufgabenstellung ist Fall 2:
Ich möchte aus einer Artikelliste mit folgendem Aussehen den letzten Teil nach dem 2. Bindestrich herausziehen und auch wieder in eine Spalte stellen.
ABC-123-Haus Ergebnis: Haus
OATE-4567-Auto Ergebnis: Auto
ZA-XT-596182 Ergebnis: 596182
Gibt es eine Möglichkeit, diese Aufgaben mit VBA zu lösen?
Ich kenne zwar den Weg in Excel über den Weg „Daten, Text in Spalten usw.“, aber diese Möglichkeit ist für mich nicht geeignet.
Ich suche also die Möglichkeit Text ab dem letzten Backslash oder Bindestrich herauszulösen.
Vielen Dank für die Unterstützung im voraus
Helmut

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text trennen
12.11.2008 14:50:18
JogyB
Hallo.
Ein Beispiel für die Dateinamen:

Public Type dateiNamen
pFad As String
naMe As String
enDung As String
End Type
' Zerlegt den Dateinamen in Pfad (mit \ am Ende), Name und Endung (mit .)
Function datNameZer(ByVal daTei) As dateiNamen
Dim temp() As String
Dim i As Integer
' Wenn kein \ vorhanden --> keine Pfadangabe
If InStr(1, daTei, "\") = 0 Then
datNameZer.pFad = ""
ReDim temp(0 To 0)
temp(0) = daTei
Else
' Aufteilen nach Backslash
' --> im letzen Element ist der Name + Endung
' --> der Rest ist der Pfad ohne Backslash
temp() = Split(daTei, "\")
For i = 0 To UBound(temp) - 1
datNameZer.pFad = datNameZer.pFad & temp(i) & "\"
Next
End If
' Aufteilen nach Punkt
' --> im letzten Element ist die Endung
' --> der Rest ist der Dateiname ohe etwaige Punkte
temp() = Split(temp(UBound(temp)), ".")
' Falls keine Endung vorhanden (kommt nicht vor, da zumindest ein abschliessender Punkt  _
vorhanden)
If UBound(temp) = 0 Then
datNameZer.enDung = "."
datNameZer.naMe = temp(0)
' Normalfall
Else
datNameZer.enDung = "." & temp(UBound(temp))
datNameZer.naMe = temp(0)
For i = 1 To UBound(temp) - 1
datNameZer.naMe = datNameZer.naMe & "." & temp(i)
Next
End If
End Function

Gruss, Jogy

Anzeige
AW: Text trennen
12.11.2008 14:51:00
Chris
Servus,
einfacher:

Sub t()
Dim pfad As String
pfad = "C:\Daten\Privat\Verein.xls"
MsgBox Right(pfad, Len(pfad) - InStrRev(pfad, "\"))
End Sub


Gruß
Chris

AW: Text trennen
12.11.2008 17:03:44
JogyB
Hi.
Schon wieder was gelernt, danke.
Gruss, Jogy
AW: Text trennen
12.11.2008 15:21:22
Tino
Hallo,
hier noch eine Möglichkeit, Kommentare stehen im Code.
Sub Test()
Dim Bereich As Range
Dim varArea()
Dim A As Long
'Zellbereich mit Daten hier Spalte A 
Set Bereich = Range("A1", Cells(Rows.Count, "A").End(xlUp))
'Bereich in eine Area schreiben 
varArea = Bereich
'Area in einer Schleife abarbeiten 
    For A = 1 To Ubound(varArea)
     varArea(A, 1) = Right$(varArea(A, 1), Len(varArea(A, 1)) - InStrRev(varArea(A, 1), "\"))
    Next A
'Area eine Spalte daneben einfügen, hier Spalte B 
Bereich.Offset(0, 1) = varArea
End Sub


Gruß Tino

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige