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 ?
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.

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!
Top
#4
(30.03.2018, 17: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ß
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
Top
#6
(30.03.2018, 18: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, 18: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.

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!
Top
#8
(30.03.2018, 18: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
Top
#9
(30.03.2018, 18: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
Top
#10
(31.03.2018, 03: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.

Top


Gehe zu:


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