Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Bestimmten Text in Zellen löschen
#1
Wink 
Hey Leute ,

und zwar verarbeite ich per VBA eine Excel Tabelle damit sie in eine WaWi importiert werden kann.
Jetzt habe ich das Problem das die Bilder etwa wie folgt angegeben sind:
Code:
/0/6/060-xxx.jpg
Sollen aber ( und wurden vorher immer per Hand ) in folgendes Format gebracht werden. 
Code:
060-xxx.jpg





Es sind auch nicht immer gleich lange Ordner namen oder Datei namen , es kann also auch so vorkommen:
Code:
/0/7/071-xxxb.jpg
Dachte zuerst einfach irgendwie die ersten 5 Zeichen löschen ( wo ich auch nicht weiß wie das geht  :s ) aber es kommen auch andere Ordner vor 
Code:
/w/i/datei_name.jpg





Gibt es eine Möglichkeit alles bis bzw inklusive zum Letzten "/" zu löschen ?
Antworten Top
#2
Hallo

Code:
=TEIL(A2;6;999)
=ERSETZEN(A2;1;5;"")

Oder als Oneliner in Power Query:
Code:
let
    WithoutFolders = Table.SelectColumns(Table.SplitColumn(Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content], "Bild", Splitter.SplitTextByDelimiter("/", QuoteStyle.Csv), {"Temp.1", "Temp.2", "Temp.3", "Bild"}),{"Bild"})
in
    WithoutFolders
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#3
@ shift-del

... das wird gewiss noch einige Zeit dauern, bis OO ein Äquivalent zum Power Query integriert. Vorher wäre dann ja gewiss LO dran.  Blush
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Antworten Top
#4
(30.03.2018, 16:39)shift-del schrieb: Hallo

Code:
=TEIL(A2;6;999)
=ERSETZEN(A2;1;5;"")

Oder als Oneliner in Power Query:
Code:
let
    WithoutFolders = Table.SelectColumns(Table.SplitColumn(Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content], "Bild", Splitter.SplitTextByDelimiter("/", QuoteStyle.Csv), {"Temp.1", "Temp.2", "Temp.3", "Bild"}),{"Bild"})
in
    WithoutFolders

Danke
Aber so wie ich das erkenne Löscht er jetzt nur 1-5 ? das passt zwar für viele Fälle, aber nicht für alle. 
Geht ja eher darum das alles vor dem letzten "/" gelöscht wird ?


ich hab das ganze jetzt in Excel 2007 in Visual Basic Code, also den Modulen stehen. Das was du geschrieben hast sieht nicht passend dafür aus  Undecided

EDIT: Sorry hatte wohl noch drinne stehen das ich Open Office benutze, habe für dieses Anliegen aber auf Excel gewechselt. Bin aber nicht ganz so reif was PowerQuery angeht ? falls mich jemand aufklären könnte ?
Gruß
Antworten Top
#5
Hallo,


Unten ein Beispielcode:

Code:
Sub test()
  With Cells(1, 1)
    Debug.Print Mid(.Value, InStrRev(.Value, "/") + 1)
  End With
End Sub



Vor zwei Tagen gab es schon mal eine ähnliche Anfrage hier, schau da auch mal rein.

Nachtrag: Code ausgetauscht, da Replace nicht nötig.
Gruß Atilla
Antworten Top
#6
(30.03.2018, 17:32)TheHydrogena schrieb: das passt zwar für viele Fälle, aber nicht für alle. 
Und diese Fälle sind geheim oder wie?

(30.03.2018, 17:32)TheHydrogena schrieb: EDIT: Sorry hatte wohl noch drinne stehen das ich Open Office benutze, habe für dieses Anliegen aber auf Excel gewechselt. Bin aber nicht ganz so reif was PowerQuery angeht ? falls mich jemand aufklären könnte ?
http://www.clever-excel-forum.de/thread-14899.html
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#7
Nun ja, Eggcel 2007 ist zwar eine deutliche Verbesserung gegenüber OO aber es reicht leider immer noch nicht für Power Query.  :22:
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Antworten Top
#8
(30.03.2018, 17:40)shift-del schrieb: Und diese Fälle sind geheim oder wie?

http://www.clever-excel-forum.de/thread-14899.html

nein, die habe ich doch oben rein gestellt :)
war darauf bezogen wenn z.B die Ordnernamen länger als 5 Zeichen sind   

Dann würde er ja bei manchen die richtige menge an Zeichen abschneiden, aber bei Fällen in denen 6 Zeichen weg müssten würde einer über bleiben, daher die Frage mit dem " Alles löschen bis zum letzten '/' "

PowerQuery gucke ich mir gleich eben an, aber wie es scheint bin ich mit Office 2007 eh zu alt dafür  :s
Antworten Top
#9
(30.03.2018, 17:34)atilla schrieb: Hallo,


Unten ein Beispielcode:

Code:
Sub test()
  With Cells(1, 1)
    Debug.Print Mid(.Value, InStrRev(.Value, "/") + 1)
  End With
End Sub



Vor zwei Tagen gab es schon mal eine ähnliche Anfrage hier, schau da auch mal rein.

Nachtrag: Code ausgetauscht, da Replace nicht nötig.

Danke der Artikel war gut , jetzt schneidet er natürlich genau das raus was ich haben möchte  :22: 
muss ich dann das InStrRev weglassen ? aber wenn Windows Excel standardmäßig von rechts nach links sucht müsste das doch richtig so rum sein oder häng ich irgendwo fest ?

Von der Idee her ganz gut das von rechts aus zu machen, aber kann man den Weggeschnittenen Part auch irgendwo speichern oder in eine Andere Zeile Setzten ? das Würde das Problem lösen das er anstatt das Letzte "/" von Links suchen muss einfach das erste von Rechts nimmt  Idea 
Das .Value beinhaltet ja nur das, was eigentlich weg kann ( Deshalb auch das Range("A2") , wollt wissen was im .Value ist)


Code:
Sub abc()
   Dim rngCell As Range
   For Each rngCell In Selection
       With rngCell
           .Value = Left(.Value, InStrRev(.Value, "/") - 1)
           Range("A2").Value = .Value
       End With
   Next rngCell
End Sub
Antworten Top
#10
(31.03.2018, 02:00)TheHydrogena schrieb: nein, die habe ich doch oben rein gestellt :)
war darauf bezogen wenn z.B die Ordnernamen länger als 5 Zeichen sind   
Du hast drei konkrete Beispiele genannt. Bei allen funktionieren die Formeln.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste