Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1836to1840
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

letztes Wort abschneiden - Korrektur

letztes Wort abschneiden - Korrektur
05.07.2021 09:53:38
Christian
Hallo,
ich bitte um eure Hilfe. Wie muss ich das Makro abändern, damit von jedem Text, den es in Spalte A ausgibt, das letze Wort gelöscht wird, sowie von jedem Text der in Spalte B ausgegeben wird, die letzten 4 Zeichen.
Danke für eure Hilfe
Christian

Public Sub DateienAuflisten()
Dim blnFound As Boolean
Dim lngZeile As Long
Dim objFileSystem As Object
Dim objVerzeichnis As Object
Dim objDateienliste As Object
Dim objDatei As Object
Dim objDrives As Object
Dim objDrive As Object
Set objFileSystem = CreateObject(Class:="Scripting.FileSystemObject")
Set objVerzeichnis = objFileSystem.GetFolder("D:\Bilder")
Set objDateienliste = objVerzeichnis.Files
For Each objDatei In objDateienliste
If objDatei.Name Like "MRS*" Then
lngZeile = lngZeile + 1
Cells(lngZeile, 1) = objDatei.Name
End If
Next objDatei
Set objDrives = objFileSystem.Drives
For Each objDrive In objDrives
If objDrive.DriveLetter = "F" Then
blnFound = True
Set objDrive = Nothing
Exit For
End If
Next
If blnFound Then
lngZeile = 0
Set objVerzeichnis = objFileSystem.GetFolder("F:\Bilder")
Set objDateienliste = objVerzeichnis.Files
For Each objDatei In objDateienliste
lngZeile = lngZeile + 1
Cells(lngZeile, 2) = objDatei.Name
Next objDatei
End If
Set objDrives = Nothing
Set objVerzeichnis = Nothing
Set objDateienliste = Nothing
Set objFileSystem = Nothing
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: letztes Wort abschneiden - Korrektur
05.07.2021 11:25:12
Oberschlumpf
Hallo,
Spalte B:

Cells(lngZeile, 2) = Left(objDatei.Name, Len(objDatei.Name) - 4)
Spalte A:
? = zu wenig Infos von dir
Was genau steht - pro Zelle - in Spalte A?
Stehen in Spalte A Wörter, getrennt durch Leerzeichen?
Oder meinst du mit "letztes Wort" in Spalte A den jeweils letzten Teil eines Dateinamens, z Bsp ".txt" für Textdateien?
Ich merk gerade: wenn es in A auch nur um das Entfernen der Dateierweiterung (z Bsp ".txt") geht, dann der gleiche Code wie in B
Zeig wegen Spalte A bitte eine Bsp-Datei per Upload.
Ciao
Thorsten
Anzeige
AW: letztes Wort abschneiden - Korrektur
05.07.2021 11:33:00
Christian
Hallo Thorsten,
zur Erklärung, da ich nicht mehreren Dateien denselben Namen geben kann haben die Dateinamen in Spalte A noch eine laufende Nummer, die auch entfernt werden soll.
das sieht dann in etwas so aus
Datei A 1.jpg
Datei A 2.jpg
Datei A 3.jpg
Datei B 1.jpg
Datei B 2.jpg
Datei B 3.jpg
Datei B 4.jpg
wobei es auch mehr als 9 sein können, es also nicht ausreicht, pauschal die letzten 5 Zeichen zu löschen.
Reicht dir das als Info?
Mit der Bsp Datei hab ich leider ein Problem, ich kann die Excel Datei nachbauen, jedoch nicht dein Dateisystem, auf das das Makro zugreifen soll. Hoffe du verstehst was ich meine?
Gruß
Christian
Anzeige
AW: letztes Wort abschneiden - Korrektur
05.07.2021 11:47:33
Oberschlumpf
Hi Christian,
du musst mein Dateisystem auch nich nachbilden.
Ich kann schon selbst ein Verzeichnis "Bilder" auf Partition/Festplatte "D:\" erstellen.
Mit Bsp-Datei von dir wäre es besser.
Außerdem...
...um deine Frage für Spalte A zu beantworten reicht doch schon eine Bsp-Datei von dir, in der einfach nur in A Wörter in der Art und Weise drin stehen, wie diese bei dir vorkommen.
...denn ich kann tatsächlich nicht Bsp-Einträge machen, da ich wirklich nicht deine Dateinamen nachbilden kann.
Und nur in der von dir gezeigten Bsp-Datei schreib bitte in Spalte B den Eintrag aus A so rein, wie du es später in A haben möchtest.
Denn zuerst schreibst du "damit von jedem Text, den es in Spalte A ausgibt, das letze Wort gelöscht wird"
Bei deinen "gezeigten" Texten wie...
Datei A 1.jpg
Datei A 2.jpg
...usw
würde nach Abzug der letzten 5 Zeichen UND letztes Wort das übrigbleiben:
Datei
Datei
...usw
Daher versteh ich jetzt für A alles noch weniger als vorher.
Ciao
Thorsten
Anzeige
AW: letztes Wort abschneiden - Korrektur
05.07.2021 11:54:31
Christian
Hallo Thorsten,
ok, das war dann wohl ein misverständnis, 5 Zeichen inkl. Leerzeichen. Sodass Datei A sowie Datei B stehen bleibt.
So war das gemeint, die laufende Nummer und die Dateiendung am Ende des Textes weg:
https://www.herber.de/bbs/user/146952.xlsm
Gruß und danke schonmal Christian
die Ergänzung zu spalte B klappt oWT
05.07.2021 11:37:54
Christian
.
AW: letztes Wort abschneiden - Korrektur
05.07.2021 14:59:45
Rudi
Hallo,

Sub aaa()
Dim rng As Range, tmp
For Each rng In Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
tmp = Split(rng)
If UBound(tmp) Then ReDim Preserve tmp(UBound(tmp) - 1)
rng = Join(tmp)
Next rng
End Sub
Gruß
Rudi
Anzeige
AW: letztes Wort abschneiden - Korrektur
05.07.2021 20:12:55
Christian
Hallo Rudi,
es funktioniert.
Jedoch sei mir bitte nicht böse, aber ich werde wohl Daniels Vorschlag nehmen, da ich es ohne Hilfe in mein bestehendes Makro integrieren kann.
Gruß und trotzdem danke für deine Mühe
Christian
AW: letztes Wort abschneiden - Korrektur
05.07.2021 16:35:33
Daniel
HI
letztes Wort von einem Text abschneiden geht bei Leerzeichen getrennten Wörtern so:

TextNeu = Left(TextAlt, InstrRev(TextAlt, " ") - 1)
InstrRev gibt dir wie Instr die Position einer kurzen Zeichenfolge innerhalb einer langen Zeichenfolge wieder, durchsucht aber den Text beginnen von rechts und nicht von links.
Gruß Daniel
Anzeige
AW: letztes Wort abschneiden - Korrektur
05.07.2021 17:45:07
Christian
Hallo Daniel,
das heißt, ich müsste aus

Cells(lngZeile, 1) = objDatei.Name

Cells(lngZeile, 1) = Left(objDatei.Name, InStrRev(objDatei.Name, " ") - 1)
machen? hat funktioniert, danke für deinen Tipp
Christian

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige