Excel Zelleninhalt suchen und kopieren

ponsi

Grünschnabel
Hallo zusammen,
ich sitze gerade an einer Excel Liste und finde keine Lösung für mein Problem:
In einer Spalte habe ich Dateinamen, in einer anderen soll der Typ stehen, Beispiel: 20020515_A928259_C759474_O_6330400_P13E507C3D467D611A286005004F79488_Angebot___________633043.doc sollte beim Typ "Angebot" bekommen.

Ähnliche Zeichenketten habe ich auch für E-Mail, Fax, Brief etc.

Hat jemand eine Idee wie ich es hinbekomme?

Danke im Voraus!!
Grüße
Christisn
 
Sind die Dateinamen immer im folgenden Format?
[Irgendwas]_[TYP]___________[Irgendwas].doc

Am einfachsten lässt sich das mit RegExp verwirklichen. Dazu können wir eine eigene Funktion im Excel schreiben

Dazu kann man in den VB-Editor von Excel wechseln. Dann eine Referenz auf die Regulären Ausdrücke für VBScripts setzen. Die folgende Funktion in ein neues Modul kopieren und schon kann man die Funktion im Excel verwenden

Visual Basic:
'Referenz auf [Microsoft VBScript Regulare Expressions] motwendig
'Im der VB-Ansicht: Menü Tools->References
Private typeRegExp As RegExp

Public Function getType(ByVal iFileName As String) As String
    'Der RegExp wird lokal mit dem Pattern gespeichert damit dieser nur beim ersten AUfruf angelegt werden muss
    If typeRegExp Is Nothing Then
        Set typeRegExp = New RegExp
        typeRegExp.Pattern = "^.*_([^_]+)___________.*$"
    End If

    getType = typeRegExp.Replace(iFileName, "$1")

End Function

Und so sieht dann der Zelleninhalt im Excel aus:
Code:
=getType(A1)
 

Neue Beiträge

Zurück