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

Dateiname in Einzelbestandteile umwandeln

Dateiname in Einzelbestandteile umwandeln
Axel
Hallo
ich habe folgendes Problem:
ich speichere eine Datei nach einer ganz bestimmten Syntax:
Projektnummer_Projektname_Dokument_1.xls
Wie kann ich aus dem abgespeicherten Namen (also aus activeworkbook.name) die einzelnen Bestandteile auslesen und als String wider ausgeben? (Speziell Projektnummer, Projektname). Ich habe mich schon mal an der Funktion Split versucht, komme aber nicht weiter.
Kann mir jemand helfen?
Gruß
Axel
SPLIT() ist genau richtig
24.08.2009 17:38:45
NoNet
Hallo Axel,
die Funktion SPLIT() ist dafür genau passend. Es kommt dann nur auf die weitere Verarbeitung an :
Sub DateinameSplitten()
Dim strName, strDateiname As String
strDateiname = "Projektnummer_Projektname_Dokument_1.xls """
strName = Split(strDateiname, "_")
strName(3) = Split(strName(3), ".")(0) 'Nr. nur bis Punkt
MsgBox strName(0) 'Projektnummer
MsgBox strName(1) 'Projektname
MsgBox strName(2) 'Dokumentenname
MsgBox strName(3) 'Nr.
End Sub

Gruß, NoNet
AW: SPLIT() ist genau richtig
25.08.2009 08:48:07
Axel
Hallo NoNet
vielen Dank. Ich habe es versucht, aber es klappt nicht so wie ich will! Es meldet Fehler beim Kompilieren, erwartet Datenfeld.
Hier mein Code
Sub Dateiname_splitten()
Dim strName As String, strDateiname As String, Projektname As String, Projektnummer As String
strDateiname = ActiveWorkbook.name
strName = Split(strDateiname, "_")
Projektname = strName(0)
Projektnummer = strName(1)
MsgBox Projektname
End Sub
Kannst Du mir sagen, was ich falsch mache?
Gruß
Axel
Anzeige
strName NICHT als String deklarieren
25.08.2009 17:07:03
NoNet
Hallo Axel,
Du kennst sicherlich den Film
das galt (zumindest in DIESEM Fall) nicht für mich, sondern leider für Dich ;-)
Ich wusste genau, weshalb ich strName NICHT "as String" deklariert habe, sondern typenlos (also "as Variant") : Mit einer Typendeklaration kannst Du die Variable nicht mehr mit einem ARRAY (Datenfeld) befüllen.
Übernehme den Code also zunächst mal 1:1 wie von mir gepostet und Du wirst "wissen, was Du tust" ;-)
Gruß, NoNet
...immer diese besserwisserischen Schlaumeier,...
25.08.2009 19:06:09
Luc:-?
...NoNet,
ein wahres Kreuz... ;-)
Gruß Luc :-?
Nöööö : abgelehnt ;-)
25.08.2009 19:29:48
NoNet
Hey Luc,
ich wusste es zwar in diesem Fall tatsächlich besser (besserwisser lasse ich daher gerade noch gelten), aber ein Schlaumeier bin ich deshalb trotzdem nicht.
Außerdem kann ich Wörter mit mehr als 12 Buchstaben (zumal aus Deiner "Feder") nicht richtig lesen
Gruß, NoNet
Anzeige
Meinst du denn, ich hätte dich gemeint,...
25.08.2009 21:30:34
Luc:-?
...die Jacke ist dir doch viel zu eng, NoNet,
kein Wunder auch bei der... ;->> *diabolisch*
Übrigens, was heißt hier "Feder", das ist ein grünes Blatt, das meine Frau da als Cursor eingestellt hat... ;-)
Gruß Luc :-?
Kannst gerne "Wampe" schreiben - Bäääh ! ;->
26.08.2009 00:08:09
NoNet
...und das "grüne" da auf Deinem Bildschirm ist das EXCEL-Logo (falls Du das kennst :-D ) und das "Blatt" nennt sich "Sheet"
PS: Ich ziehe ohnehin äußerst selten "Jacken" an- selbst im Winter ist es mir dazu oftmals zu warm...
Salut...
Nee, nee, das ist schon der Cursor,...
26.08.2009 00:32:43
Luc:-?
...NoNet,
und du hast dann offensichtlich den Klimawandel nicht erfunden, aber viell "verbrochen", bei der inneren Hitze... ;-)
Hatte mal 'nen Kollegen, der kam bis weit in den November kurzärmlig und barfuß in Latschen... Und der Oberboss meiner Frau geht gleich stets barfuß...
Gute Nacht! Luc :-?
Anzeige
Alternative mit TYPE
24.08.2009 17:51:50
NoNet
Hallo Axel,
nur als Ergänzung : so funktioniert das auch mit einer TYPE-Deklaration :
VBA-Code:
'TYPE-Deklaration in einem MODUL - ausserhalb eines SUBs !
Type typDateiname
    strPrNr     As String
    strPrName   As String
    strDokName  As String
    strNr       As String
End Type
Sub DateinameSplittenMitType()
    Dim strDateiname As String, strTemp
    Dim strName As typDateiname
    strDateiname = "Projektnummer_Projektname_Dokument_1.xls """
    strTemp = Split(strDateiname, "_")
    strTemp(3) = Split(strTemp(3), ".")(0) 'Nr. nur bis Punkt
    strName.strPrNr = strTemp(0)
    strName.strPrName = strTemp(1)
    strName.strDokName = strTemp(2)
    strName.strNr = strTemp(3)
    MsgBox strName.strPrNr      'Projektnummer
    MsgBox strName.strPrName    'Projektname
    MsgBox strName.strDokName   'Dokumentenname
    MsgBox strName.strNr        'Nr.
End Sub
Gruß, NoNet
Anzeige

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige